[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: C# support for automake
From: |
Ralf Wildenhues |
Subject: |
Re: C# support for automake |
Date: |
Mon, 5 Dec 2005 21:19:37 +0100 |
User-agent: |
Mutt/1.5.9i |
Hi Bruno,
* Bruno Haible wrote on Mon, Dec 05, 2005 at 08:38:43PM CET:
> > > Object code libraries are files with suffix ".dll". They are installed
> > > under $prefix/lib.
> >
> > Is it reasonable to assume that programs will link against these
> > libraries, which are
> > - not built in the same package as the dll
>
> Yes. Making code available for use by other programs is one of the main
> purposes of object code libraries.
:)
> You certainly want to know about library versioning :-)
:)
> Every library and every executable has a version attached. It can be
> set through a particular kind of statement inside a C# source file,
> like this:
> [assembly: AssemblyVersion("1.0.0")]
> So, every object code library and every executable is assigned a so-called
> "strong name". The strong names of the dependencies are stored by the
> linker inside every library or executable.
Interesting. Is there an API/command line tool to extract this version?
> > - which do not contain C# code, and are not built or run with one of the
> > tools below?
>
> No. Such a use of C# libraries is certainly not mainstream.
So no need to bring libtool into play here, good. :)
> > > sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g'
> >
> > If you encounter options with backslashes frequently (even on non-w32
> > hosts), you may want to parameterize use of echo.
>
> The problem was not 'echo'; I wanted to be able to define this sed
> expression outside of backslashes.
Hmm. I don't understand your statement -- maybe we both misunderstood
each other. What I meant was:
Later in this script, you often use
foo="$foo"`echo "$arg" | sed "$sed_quote_subst"`
^^^^
Problem is, this echo may kill strings of the form `\t' in $arg.
To prevent this, you could parameterize it.
It may very well be the case that you'll only likely encounter arguments
containing `\t' (and the like) on w32 systems. AFAIK there all commonly
used shells have been adjusted so that their builtin `echo' does not
interpret backslashes. So in that case you could leave things as they
are.
> > How does the installed program find its libraries?
> > How the uninstalled?
>
> In both cases: through the -L option passed to csharpexec.sh. Inside
> csharpexec.sh, for some C# engines, the -L option translates into options;
> for others, it translates into the setting of an environment variable.
Hmm, so somebody still has to play the 'gimme the uninstalled paths'.
At least I don't see that it is done automatically. In the case
proggie_exe_LDADD = -L ../libs -lfoobar
so maybe you want the Makefile to create (uninstalled!) proggie with
exec $top_builddir/csharpexec.sh -L ../libs -lfoobar proggie.exe
in it?
Are inter-library dependencies specified? (This is the question I'm
really interested in. If yes, I see little chance to create above in
very few lines of code. Depends on the dependency model though.)
Cheers,
Ralf
- C# support for automake, Bruno Haible, 2005/12/05
- Re: C# support for automake, Tim Van Holder, 2005/12/05
- Re: C# support for automake, Simon Josefsson, 2005/12/05
- Re: C# support for automake, Ralf Wildenhues, 2005/12/05
- Re: C# support for automake, Bruno Haible, 2005/12/05
- Re: C# support for automake, Jirka Hanika, 2005/12/11
- ax_prog_csc / Re: C# support for automake, Guido Draheim, 2005/12/21
- Re: ax_prog_csc / Re: C# support for automake, Bruno Haible, 2005/12/21
- Re: ax_prog_csc / Re: C# support for automake, Guido Draheim, 2005/12/21
- Re: ax_prog_csc / Re: C# support for automake, Guido Draheim, 2005/12/21
- Re: C# support for automake, Tim Van Holder, 2005/12/05