blob: 3dabdf7b8793e8f5565a38bf832c41b470521062 [file] [log] [blame]
Misha Brukmanb3a734a2004-10-13 01:07:55 +00001Upgrading Libtool
Reid Spencer8baa7752004-11-29 12:28:47 +00002===============================================================================
Misha Brukmanb3a734a2004-10-13 01:07:55 +00003
4If you are in the mood to upgrade libtool, you must do the following:
5
Reid Spencer8baa7752004-11-29 12:28:47 +00006 1. Get the new version of libtool and put it in <SRC>
7 2. configure/build/install libtool with --prefix=<PFX>
8 3. Copy <SRC>/ltdl.m4 to llvm/autoconf/m4
9 4. Copy <PFX>/share/aclocal/libtool.m4 to llvm/autoconf/m4/libtool.m4
10 5. Copy <PFX>/share/libtool/ltmain.sh to llvm/autoconf/ltmain.sh
Reid Spencera773bd52006-08-04 18:18:08 +000011 6. Copy <PFX>/share/libtool/libltdl/ltdl.c to llvm/lib/System
12 7. Copy <PFX>/share/libtool/libltdl/ltdl.h to llvm/lib/System
13 8. Edit the ltdl.h file to #include "llvm/Config/config.h" at the very top. You
14 might also need to resolve some compiler warnings (typically about
15 comparison of signed vs. unsigned values). But, you won't find out about
16 those until you build LLVM (step 13).
17 9. Edit the llvm/autoconf/m4/libtool.m4 file so that:
18 a) in AC_PROB_LIBTOOL macro, the value of LIBTOOL is set to
19 $(top_builddir)/mklib, not $(top_builddir)/libtool
20 b) in AC_LIBTOOL_SETUP macro, the variable default_ofile is set to
21 "mklib" instead of "libtool"
22 c) s/AC_ENABLE_SHARED_DEFAULT/enable_shared_default/g
23 d) s/AC_ENABLE_STATIC_DEFAULT/enable_static_default/g
24 e) s/AC_ENABLE_FAST_INSTALL_DEFAULT/enable_fast_install_default/g
Reid Spencere32beb72004-12-24 00:15:20 +00002510. Run "autoupdate libtool.m4 ltdl.m4" in the llvm/autoconf/m4 directory.
Reid Spencer8baa7752004-11-29 12:28:47 +000026 This should correctly update the macro definitions in the libtool m4
27 files to match the version of autoconf that LLVM uses. This converts
28 AC_HELP_STRING to AS_HELP_STRING and AC_TRY_LINK to AC_LINK_IFELSE, amongst
29 other things. You may need to manually adjust the files.
Reid Spencere32beb72004-12-24 00:15:20 +00003011. Run AutoRegen.sh to get the new macros into configure script
Reid Spencera773bd52006-08-04 18:18:08 +00003112. If there are any warnings from AutoRegen.sh, go to step 9.
3213. Rebuild LLVM, making sure it reconfigures
Reid Spencere32beb72004-12-24 00:15:20 +00003314. Test the JIT which uses libltdl
3415. If it all works, only THEN commit the changes.
Reid Spencer8baa7752004-11-29 12:28:47 +000035
36Upgrading autoconf
37===============================================================================
38
39If you are in the mood to upgrade autoconf, you should:
40
41 1. Consider not upgrading.
42 2. No really, this is a hassle, you don't want to do it.
43 3. Get the new version of autoconf and put it in <SRC>
44 4. configure/build/install autoconf with --prefix=<PFX>
45 5. Run autoupdate on all the m4 macros in llvm/autoconf/m4
46 6. Run autoupdate on llvm/autoconf/configure.ac
47 7. Regenerate configure script with AutoRegen.sh
Reid Spencera773bd52006-08-04 18:18:08 +000048 8. If there are any warnings from AutoRegen.sh, fix them and go to step 7.
Reid Spencer8baa7752004-11-29 12:28:47 +000049 9. Test, test, test.