Patch libltdl/ltdl.c to avoid a nasty bug in libtool-1.4.2.
[bpt/guile.git] / autogen.sh
index 7d03820..a41df11 100755 (executable)
@@ -21,15 +21,23 @@ fi
 : found workbook at $workbook
 workbook=`(cd $workbook ; pwd)`
 
-workbookdistfiles="ANON-CVS HACKING INSTALL SNAPSHOTS"
+workbookdistfiles="ANON-CVS HACKING SNAPSHOTS"
 for f in $workbookdistfiles ; do
     rm -f $f
     ln -s $workbook/build/dist-files/$f $f
 done
 rm -f examples/example.gdbinit
 ln -s $workbook/build/dist-files/.gdbinit examples/example.gdbinit
+
+# TODO: This should be moved to dist-guile
+mscripts=../guile-scripts
+rm -f BUGS
+$mscripts/render-bugs > BUGS
+
 ######################################################################
 
+# Make sure this matches the ACLOCAL invokation in Makefile.am
+
 ./guile-aclocal.sh
 
 ######################################################################
@@ -39,20 +47,58 @@ ln -s $workbook/build/dist-files/.gdbinit examples/example.gdbinit
 rm -rf libltdl
 libtoolize --force --copy --automake --ltdl
 
+# Fix older versions of libtool.
 # Make sure we use a ./configure.in compatible autoconf in ./libltdl/
-mv libltdl/configure.in libltdl/configure.tmp
-echo 'AC_PREREQ(2.50)' > libltdl/configure.in
-cat libltdl/configure.tmp >> libltdl/configure.in
-rm libltdl/configure.tmp
+if [ -f libltdl/configure.in ]; then
+       mv libltdl/configure.in libltdl/configure.tmp
+       echo 'AC_PREREQ(2.50)' > libltdl/configure.in
+       cat libltdl/configure.tmp >> libltdl/configure.in
+       rm libltdl/configure.tmp
+fi
+
+# Maybe patch ltdl.c.  This is only needed for 1.4.2 and earlier.
+if patch libltdl/ltdl.c <<EOP
+--- ltdl.c~    Fri Apr 12 18:52:48 2002
++++ ltdl.c     Tue Jul  9 14:12:47 2002
+@@ -2246,15 +2246,15 @@
+ static int
+ find_handle_callback (filename, data, ignored)
+      char *filename;
+      lt_ptr data;
+      lt_ptr ignored;
+ {
+   lt_dlhandle  *handle        = (lt_dlhandle *) data;
+-  int         found   = access (filename, R_OK);
++  int         found   = !access (filename, F_OK);
+   /* Bail out if file cannot be read...  */
+   if (!found)
+     return 0;
+   /* Try to dlopen the file, but do not continue searching in any
+      case.  */
+EOP
+then true
+else
+   echo "WARNING: could not patch libltdl, but this is probably OK."
+fi
+
 ######################################################################
 
 autoheader
 autoconf
+
+# Automake has a bug that will let it only add one copy of a missing
+# file.  We need two mdate-sh, tho, one in doc/ref/ and one in
+# doc/tutorial/.  We run automake twice as a workaround.
+
+automake --add-missing
 automake --add-missing
 
 # Make sure that libltdl uses the same autoconf version as the rest.
 #
 echo "libltdl..."
+(cd libltdl && aclocal)
 (cd libltdl && autoconf)
 (cd libltdl && automake --gnu --add-missing)