Hi Ralf, thanks for your fast reply.
> > This might be a very common question ; I checked the archives, but > > didn't find anything relevant, unfortunately. > > Hmm, don't know. The problem is under-determined (read: we need more > information to give an answer). Yes sorry. > > I'm trying to build both a static and a shared library. This used to > > work fine with libtool-1.4, but since I upgraded to libtool-1.5, I can't > > build a static library any more. I gave a try to the Changelog, but it > > is too heavy, IMO. > > Which exact libtool version, on which system, what does configure > output, what's in config.log, how does the `libtool --mode=link' line > look like and what does it output? With all this information, we might > be able to say where the problem is. You may pack (bzip2, gzip) long > files. > > In general, it should be possible to build both static and shared with > branch-1-5 as well; I do it all the time. :) I'm sure it possible and I'm currently missing something. I don't use autotools, I just use libtool manually, as explained in the documentation. I attached my Makefile, I hope this mailing-list doesn't get rid of MIME attachement. Here is the output with libtool-1.4.3 : %%% droopy:Sitalibs-C$ make libtool --mode=compile cc -c -W -Werror -Wall -std=c99 -posix -g -o socket.o socket.c rm -f .libs/socket.lo cc -c -W -Werror -Wall -std=c99 -posix -g socket.c -fPIC -DPIC -o socket.o mv -f socket.o .libs/socket.lo cc -c -W -Werror -Wall -std=c99 -posix -g socket.c -o socket.o >/dev/null 2>&1 mv -f .libs/socket.lo socket.lo libtool --mode=compile cc -c -W -Werror -Wall -std=c99 -posix -g -o strl.o strl.c rm -f .libs/strl.lo cc -c -W -Werror -Wall -std=c99 -posix -g strl.c -fPIC -DPIC -o strl.o mv -f strl.o .libs/strl.lo cc -c -W -Werror -Wall -std=c99 -posix -g strl.c -o strl.o >/dev/null 2>&1 mv -f .libs/strl.lo strl.lo libtool --mode=link cc -o libsitalibs.a socket.o strl.o Makefile -static ar cru libsitalibs.a socket.o strl.o ranlib libsitalibs.a libtool --mode=link cc -o libsitalibs.la socket.lo strl.lo Makefile -version-number 1 -rpath /usr/lib rm -fr .libs/libsitalibs.la .libs/libsitalibs.* .libs/libsitalibs.* gcc -shared socket.lo strl.lo -Wl,-soname -Wl,libsitalibs.so.0 -o .libs/libsitalibs.so.0.0.0 (cd .libs && rm -f libsitalibs.so.0 && ln -s libsitalibs.so.0.0.0 libsitalibs.so.0) (cd .libs && rm -f libsitalibs.so && ln -s libsitalibs.so.0.0.0 libsitalibs.so) ar cru .libs/libsitalibs.a socket.o strl.o ranlib .libs/libsitalibs.a creating libsitalibs.la (cd .libs && rm -f libsitalibs.la && ln -s ../libsitalibs.la libsitalibs.la) %%% And the output with libtool-1.5.6 : %%% libtool --mode=compile cc -c -W -Werror -Wall -std=c99 -posix -g -o socket.o socket.c cc -c -W -Werror -Wall -std=c99 -posix -g socket.c mv -f socket.o .libs/socket.o cc -c -W -Werror -Wall -std=c99 -posix -g socket.c >/dev/null 2>&1 libtool --mode=compile cc -c -W -Werror -Wall -std=c99 -posix -g -o strl.o strl.c cc -c -W -Werror -Wall -std=c99 -posix -g strl.c mv -f strl.o .libs/strl.o cc -c -W -Werror -Wall -std=c99 -posix -g strl.c >/dev/null 2>&1 libtool --mode=link cc -o libsitalibs.a socket.o strl.o Makefile -static libtool --mode=link cc -o libsitalibs.la socket.lo strl.lo Makefile -version-number 1 -rpath /usr/lib rm -fr .libs/libsitalibs.la .libs/libsitalibs.lai .libs/libsitalibs.so .libs/libsitalibs.so.1 .libs/libsitalibs.so.1.0.0 cc -shared .libs/socket.o .libs/strl.o -Wl,-soname -Wl,libsitalibs.so.1 -o .libs/libsitalibs.so.1.0.0 (cd .libs && rm -f libsitalibs.so.1 && ln -s libsitalibs.so.1.0.0 libsitalibs.so.1) (cd .libs && rm -f libsitalibs.so && ln -s libsitalibs.so.1.0.0 libsitalibs.so) creating libsitalibs.la (cd .libs && rm -f libsitalibs.la && ln -s ../libsitalibs.la libsitalibs.la) %%% As you can see, no command is issued when I'm trying to build libsitalibs.a with libtool-1.5.6. (Note that I have recently added the "-static" argument, while trying to make libtool-1.5 behave correctly). Thank you. Regards, -- Jeremie LE HEN aka TtZ/TataZ [EMAIL PROTECTED] [EMAIL PROTECTED] Q: Because it reverses the logical flow of conversation. A: Why is putting a reply at the top of the message frowned upon?
.PHONY: all clean test install # Add .lo to the list of implicit rules suffixes. .SUFFIXES: .lo LIBNAME= sitalibs VERSION= 1 DESTDIR?= SRCS= socket.c strl.c INCLS= socket.h strl.h DEBUG?= -g CFLAGS?= -W -Werror -Wall -std=c99 -posix INSTALLFLAGS?= -o root -g root CFLAGS+= ${DEBUG} LIB_A= lib${LIBNAME}.a LIB_SO= lib${LIBNAME}.la OBJS_A= ${SRCS:.c=.o} OBJS_SO= ${SRCS:.c=.lo} OBJS= ${LIB_A} ${LIB_SO} ${OBJS_A} ${OBJS_SO} all: ${LIB_A} ${LIB_SO} clean: libtool --mode=clean /bin/rm rm -f ${OBJS} test: ${LIB_A} make -C tests install: ${LIB_A} ${LIB_SO} mkdir -p ${DESTDIR}/usr/lib chmod 755 ${DESTDIR}/usr/lib mkdir -p ${DESTDIR}/usr/include/${LIBNAME} chmod 755 ${DESTDIR}/usr/include/${LIBNAME} for lib in ${LIB_A} ${LIB_SO} ; do \ libtool --mode=install install ${INSTALLFLAGS} -m 644 $$lib ${DESTDIR}/usr/lib ;\ done for incl in ${INCLS} ; do \ libtool --mode=install install ${INSTALLFLAGS} -m 644 $$incl ${DESTDIR}/usr/include/${LIBNAME} ;\ done # Common dependency for all generated files. ${OBJS}: Makefile ${LIB_A}: ${OBJS_A} libtool --mode=link ${CC} -o $@ $^ -static # -rpath is mandatory, libtool --mode=install will fail otherwise. ${LIB_SO}: ${OBJS_SO} libtool --mode=link ${CC} -o $@ $^ -version-number ${VERSION} -rpath ${DESTDIR}/usr/lib %.o %.lo : %.c %.h libtool --mode=compile ${CC} -c ${CPPFLAGS} ${CFLAGS} -o $@ $<
_______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool