[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ax_prog_csc / Re: C# support for automake

From: Guido Draheim
Subject: ax_prog_csc / Re: C# support for automake
Date: Wed, 21 Dec 2005 11:26:04 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050921

by the way,

I have recently used a combination of mono and automake to
create a .NET wrappers for the linux dvb kernel api. It does
work - getting libtool to compile a native shared library
being called from a managed dll that imports symbols from it.

You will find an autoconf macro AX_PROG_CSC attached to this
mail that will autodetect a C# compiler in the system and
create a little wrapper script to call it for compilation.
Both parts are partially derived from the gettext variants
even that I had to expand on it quite a bit.

Now, it is simple to create a C# dll (tested on Linux):
* add
AX_PROG_CSC(2.0)     # will pick gmcs on most linux stations
* add
pkglib_PROGRAMS = LinuxDVB.dll
LinuxDVB_dll_LDFLAGS = -l Mono.Posix
LinuxDVB_dll_SOURCES = linuxdvb.cs assemblyinfo.cs
LinuxDVB.dll : $(LinuxDVB_dll_SOURCES)
        $(CSC) $(LinuxDVB_dll_LDFLAGS) $^ -o $@

it seems there is a little difference in installation paths for
linux vs windows - it is common practice in unix to install
all the *.dll / *.exe into $(pkglibdir) aka /usr/lib/pkg/
plus a bin_SCRIPT that does call the real exe over there.
... I guess that is different on windows where everything
will go directly to $(bindir) not using any wrapper script.
So far I am using a definition dlldir = $(pkglibdir) and
dll_PROGRAMS to make this configurable but it feels suboptimal.

-- have fun, Guido

Jirka Hanika wrote:
>>> Are inter-library dependencies specified?
>> As far as I know, inter-library dependencies are handled automatically.
> Not all implementations are as clever as this, although they are
> permitted (not required) to be by the ECMA standard.  

Attachment: ax_prog_csc.m4
Description: application/text

reply via email to

[Prev in Thread] Current Thread [Next in Thread]