libtool
[Top][All Lists]
Advanced

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

Re: shrext_cmds get passed literally into user code


From: Eric Gallager
Subject: Re: shrext_cmds get passed literally into user code
Date: Sat, 5 Aug 2023 18:10:42 -0400

On Mon, Jul 31, 2023 at 7:18 PM Eric Gallager <egall@gwmail.gwu.edu> wrote:
>
> I am on Darwin, where libtool sets shrext_cmds to `test .$module =
> .yes && echo .so || echo .dylib`. In the project's configure.ac, there
> is code that does this:
>
> AC_DEFINE_UNQUOTED([SHARED_LIB_EXT],["${shrext_cmds}"],
>                    [Extension of a shared library])dnl
>
> This preprocessor macro, SHARED_LIB_EXT, then gets used in calls to
> dlopen(), but unfortunately this leads to errors like this:
>
> Impossible to load libscifunctions`test .$module = .yes && echo .so ||
> echo .dylib` library:
> dlopen(/Users/ericgallager/scilab/scilab/modules/functions/.libs/libscifunctions`test
> .$module = .yes && echo .so || echo .dylib`, 10): image not found
>
> As you can see, shrext_cmds have been passed as a string literal into
> the code using it. Is there a way that I can get the variable to be
> evaluated first before substituting it? i.e. I want the result of
> running the command, not the literal string for the command itself.
> Sorry if this is an extremely beginner-level question; all my
> experience with shells and such is self-taught, and I never really
> learned the basics properly.
> Thanks,
> Eric Gallager

...never mind, I figured out the proper usage of eval to get the
result that I wanted. Perhaps libtool could provide two versions of
the shrext_cmds variable, one that has been run through eval, and one
that hasn't, so that users don't have to do this ourselves? Just a
suggestion.
Thanks,
Eric Gallager



reply via email to

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