bug-automake
[Top][All Lists]
Advanced

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

Re: LTLIBOBJS not built when using AC_REPLACE_FUNCS without AC_CONFIG_LI


From: Ralf Wildenhues
Subject: Re: LTLIBOBJS not built when using AC_REPLACE_FUNCS without AC_CONFIG_LIBOBJ_DIR
Date: Tue, 23 Dec 2008 07:54:46 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Hi Chris,

* Chris Pickett wrote on Tue, Dec 23, 2008 at 07:00:08AM CET:
>
> I'm trying to use AC_REPLACE_FUNCS to provide strsignal.  However, when  
> I run make it doesn't build a strsignal.lo for me, and libtool complains  
> "link: `strsignal.lo' is not a valid libtool object".  This is using the  
> latest versions of the Autotools on MinGW/MSYS.

Hmm.  I can only say "works for me", see the example below.

> The Automake manual says, "The AC_CONFIG_LIBOBJ_DIR tells Autoconf that  
> the source files of these object files are to be found in the lib/  
> directory. Automake can also use this information, otherwise it expects  
> the source files are to be in the directory where the ‘$(LIBOBJS)’ and  
> ‘$(ALLOCA)’ variables are used."
>
> My problem is that I do have the strsignal.c source in the same  
> directory as the src/Makefile.am but it isn't apparently getting built.  
> Is this an Automake bug or is it my fault, and if it is my fault, what  
> am I doing wrong?  Relevant files/file snippets follow.

Not sure; please compare what you are doing differently.

> Side question: is the form of strsignal.c correct?  For example, is the  
> strsignal prototype in the right place?  I'm a bit sleepy / confused.

Looks OK to me.  To use it in other files, you may want to declare it in
a header though.  To ensure you use the system declaration (and
definition) if available you should be including string.h and defining
_GNU_SOURCE.

Cheers,
Ralf

mkdir src
cat >configure.ac <<\END
AC_INIT(a,1)
AM_INIT_AUTOMAKE(foreign)
AC_CONFIG_FILES(Makefile src/Makefile)
AC_PROG_CC
AC_PROG_LIBTOOL
AC_REPLACE_FUNCS([strsignal])
AC_OUTPUT
END
echo 'SUBDIRS = src' > Makefile.am
cat >src/Makefile.am <<\END
libcheck_la_LIBADD      = @LTLIBOBJS@
libcheckinternal_la_LIBADD      = @LTLIBOBJS@
lib_LTLIBRARIES = libcheck.la libcheckinternal.la
END
touch src/libcheck.c src/libcheckinternal.c

autoreconf -vif  # will error out unless src/strsignal.c exists

./configure ac_cv_func_strsignal=no  # to fake nonexistent function
make             # will build and link strsignal.lo




reply via email to

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