From: Peter B. <cl...@pe...> - 2002-06-03 22:29:49
|
Using current CVS, though this problem has been around since at least middle of May. There appears to be a problem with the generated libtool in that it does not use the correct switches when building dlls. This causes the build to terminate - see below. Upon investigation it seems that the autoconf generated libcharset/configure does not include the bits from libcharset/m4/libtool.m4 that determine how to build dlls. Now, I really know next to nothing about autoconf and friends, but I have made a small patch to libcharset/configure.in which allows the clisp build process to continue. I have looked on autoconf, libtool and cygwin mail lists, but I cannot find a mention of this problem with libtool. Perhaps you can shed some light on it and comment on my patch below? Peter bash-2.05a$ ./configure bash-2.05a$ cd src bash-2.05a$ ./makemake --with-readline --with-gettext --with-dynamic-ffi > Makefile bash-2.05a$ make lispinit.mem ... builddir="`pwd`"; cd libcharset && make && make install-lib libdir="$builddir" includedir="$builddir" make[1]: Entering directory `/cygdrive/d/home/clisp/bld/clisp/src/libcharset' if [ ! -d include ] ; then mkdir include ; fi cp ../../libcharset/include/libcharset.h.in include/libcharset.h cd lib && make all make[2]: Entering directory `/cygdrive/d/home/clisp/bld/clisp/src/libcharset/lib' /bin/sh ../libtool --mode=compile gcc -I. -I../../../libcharset/lib -I.. -I../../../libcharset/lib/.. -g -O2 -DHAVE_CONFIG_H -DLIBDIR=\"/usr/local/lib\" -c ../../../libcharset/lib/localcharset.c mkdir .libs gcc -I. -I../../../libcharset/lib -I.. -I../../../libcharset/lib/.. -g -O2 -DHAVE_CONFIG_H -DLIBDIR=\"/usr/local/lib\" -c ../../../libcharset/lib/localcharset.c -DDLL_EXPORT -DPIC -o localcharset.o mv -f localcharset.o .libs/localcharset.lo gcc -I. -I../../../libcharset/lib -I.. -I../../../libcharset/lib/.. -g -O2 -DHAVE_CONFIG_H -DLIBDIR=\"/usr/local/lib\" -c ../../../libcharset/lib/localcharset.c -o localcharset.o >/dev/null 2>&1 mv -f .libs/localcharset.lo localcharset.lo /bin/sh ../libtool --mode=link gcc -o libcharset.la -rpath /usr/local/lib -version-info 1:0:0 -no-undefined localcharset.lo rm -fr .libs/libcharset.la .libs/libcharset.* .libs/libcharset.* generating symbol list for `libcharset.la' dlltool --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 --output-def .libs/cygcharset-1.dll-def localcharset.lo sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < .libs/cygcharset-1.dll-def > .libs/libcharset.exp if test "x`head -1 .libs/libcharset.exp`" = xEXPORTS; then cp .libs/libcharset.exp .libs/cygcharset-1.dll-def; else echo EXPORTS > .libs/cygcharset-1.dll-def; _lt_hint=1; cat .libs/libcharset.exp | while read symbol; do set dummy $symbol; case $# in 2) echo " $2 @ $_lt_hint ; " >> .libs/cygcharset-1.dll-def;; *) echo " $2 @ $_lt_hint $3 ; " >> .libs/cygcharset-1.dll-def;; esac; _lt_hint=`expr 1 + $_lt_hint`; done; fi gcc -Wl,--base-file,.libs/cygcharset-1.dll-base -Wl,-e,__cygwin_dll_entry@12 -o .libs/cygcharset-1.dll localcharset.lo /usr/lib/libcygwin.a(libcmain.o)(.text+0x6a): undefined reference to `WinMain@16' collect2: ld returned 1 exit status make[2]: *** [libcharset.la] Error 1 make[2]: Leaving directory `/cygdrive/d/home/clisp/bld/clisp/src/libcharset/lib' make[1]: *** [all] Error 2 make[1]: Leaving directory `/cygdrive/d/home/clisp/bld/clisp/src/libcharset' make: *** [libcharset.h] Error 2 bash-2.05a$ cvs diff -u2 libcharset/configure.in Index: libcharset/configure.in =================================================================== RCS file: /cvsroot/clisp/clisp/libcharset/configure.in,v retrieving revision 1.1 diff -u -2 -r1.1 configure.in --- libcharset/configure.in 10 May 2002 20:18:06 -0000 1.1 +++ libcharset/configure.in 3 Jun 2002 21:53:40 -0000 @@ -53,4 +53,6 @@ dnl check for build configuration +AC_LIBTOOL_DLOPEN +AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL |