| Misha Brukman | ac00eb4 | 2004-10-13 01:07:55 +0000 | [diff] [blame] | 1 | Upgrading Libtool | 
| Reid Spencer | 7905a70 | 2004-11-29 12:28:47 +0000 | [diff] [blame] | 2 | =============================================================================== | 
| Misha Brukman | ac00eb4 | 2004-10-13 01:07:55 +0000 | [diff] [blame] | 3 |  | 
|  | 4 | If you are in the mood to upgrade libtool, you must do the following: | 
|  | 5 |  | 
| Reid Spencer | 7905a70 | 2004-11-29 12:28:47 +0000 | [diff] [blame] | 6 | 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 Spencer | 0b52e2f | 2006-08-04 18:18:08 +0000 | [diff] [blame] | 11 | 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 Spencer | 657b734 | 2004-12-24 00:15:20 +0000 | [diff] [blame] | 25 | 10. Run "autoupdate libtool.m4 ltdl.m4" in the llvm/autoconf/m4 directory. | 
| Reid Spencer | 7905a70 | 2004-11-29 12:28:47 +0000 | [diff] [blame] | 26 | 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 Spencer | 657b734 | 2004-12-24 00:15:20 +0000 | [diff] [blame] | 30 | 11. Run AutoRegen.sh to get the new macros into configure script | 
| Reid Spencer | 0b52e2f | 2006-08-04 18:18:08 +0000 | [diff] [blame] | 31 | 12. If there are any warnings from AutoRegen.sh, go to step 9. | 
|  | 32 | 13. Rebuild LLVM, making sure it reconfigures | 
| Reid Spencer | 657b734 | 2004-12-24 00:15:20 +0000 | [diff] [blame] | 33 | 14. Test the JIT which uses libltdl | 
|  | 34 | 15. If it all works, only THEN commit the changes. | 
| Reid Spencer | 7905a70 | 2004-11-29 12:28:47 +0000 | [diff] [blame] | 35 |  | 
|  | 36 | Upgrading autoconf | 
|  | 37 | =============================================================================== | 
|  | 38 |  | 
|  | 39 | If 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 Spencer | 0b52e2f | 2006-08-04 18:18:08 +0000 | [diff] [blame] | 48 | 8. If there are any warnings from AutoRegen.sh, fix them and go to step 7. | 
| Reid Spencer | 7905a70 | 2004-11-29 12:28:47 +0000 | [diff] [blame] | 49 | 9. Test, test, test. |