2 To support special compiler and OS combinations like the Portland
3 compilers on Linux/x86, Compaq compilers on Linux/Alpha, and enable
4 shared libraries when using wrapper scripts like mpcc we are using
5 a prerelease version of libtool (1.4e), and the libtool.m4 script has been
6 patched and included at the end of acinclude.m4.
8 PLEASE NOTE - You NEVER have to install libtool, and autoconf/automake
9 are only necessary for developers who change the Makefile.in's. You can
10 find the software at ftp.gromacs.org/developers.
12 This file summarizes the patches/extensions we made so we can check it
13 if we ever update the files in GROMACS:
17 **********************************************************************
19 B. Changes in libtool-1.4e:
20 All these changes should go in libtool.m4. This file is included
21 in the GROMACS acinclude.m4 to make sure we use the right version.
23 1. I have implemented Fortran 77 support in libtool, which hopefully
24 will make its way into the main distribution. This involves
25 the AC_LIBTOOL_LANG_F77_CONFIG macro, and all supporting routines
26 with "F77" in the name :-)
27 Since a couple of f77 compilers (ibm xlf notably) dont accept -DPIC
28 I also separated the compiler flag test into one for -fPIC and
29 a separate one for -DPIC.
30 I have changed echo to printf for the lt_simple.. variables, to
31 get the fortran formatting right.
33 There is one specific Gromacs-related change that won't be a
34 part of the main libtool distribution:
36 I removed the --with-tags argument from _LT_AC_TAGCONFIG,
37 to fix libtool always creating the F77 and CXX macros,
38 and replaced it with a check for ac_cv_prog_**_g to determine
39 whether we should use CXX and/or F77. Don't care about GCJ...
40 To avoid AC_PROG_CXX always being expanded, I introduced the macro
41 inside an always-false test in our configure.ac.
43 2. To support dynamic libraries on Alpha/Linux with the Compaq Compilers,
44 I have added some flag specifications in the non-gcc compiler section
45 of the AC_LIBTOOL_PROG_COMPILER_PIC macro. I added the linux*) case:
47 =============================================================
48 irix5* | irix6* | nonstopux*)
49 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
50 # PIC (with -KPIC) is the default.
51 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
55 + # Check flags for non-gnu compilers on Linux
58 + # The only non-gnu compiler on Linux/Alpha is the Compaq one:
59 + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
60 + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
64 + # Intel icc compiler
65 + if $CC -V 2>&1 | grep 'Intel Corporation' > /dev/null 2>&1; then
66 + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption,link,'
67 + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
69 + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
74 + # Intel icc compiler
75 + if $CC -V 2>&1 | grep 'Intel Corporation' > /dev/null 2>&1; then
76 + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption,link,'
77 + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
79 + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
84 + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
90 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
91 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
95 =====================================================================
96 The intel compilers echoes stupid stuff to stderr, which is interpreted
97 as errors when libtool checks for supported flags. As a workaround we
98 only grep for the actual flag tried, or the words "flag" or "option".
99 The modified versions of the macros are:
102 # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
103 # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
104 # ----------------------------------------------------------------
105 # Check whether the given compiler option works
106 AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
107 [AC_CACHE_CHECK([$1], [$2],
109 ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
110 save_CFLAGS="$CFLAGS"
112 printf "$lt_simple_compile_test_code" > conftest.$ac_ext
113 if (eval $ac_compile 2>conftest.err) && test -s $ac_outfile; then
114 # Modified by Erik Lindahl:
115 # Some compilers (icc, pgcc) echo stupid stuff to stderr.
116 # To avoid this being interpreted as errors we check the output
117 # and only fail the test if the option is present, or one of the
118 # words 'option' or 'flag'.
119 if test -n "$3" && grep "$3" conftest.err > /dev/null 2>&1 || grep "option" conftest.err > /dev/null 2>&1 || grep "flag" conftest.err > /dev/null 2>&1 ; then
120 # Append any errors to the config.log.
121 cat conftest.err 1>&AS_MESSAGE_LOG_FD
127 CFLAGS="$save_CFLAGS"
130 if test x"[$]$2" = xyes; then
131 ifelse([$5], , :, [$5])
133 ifelse([$6], , :, [$6])
135 ])# AC_LIBTOOL_COMPILER_OPTION
138 # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
139 # [ACTION-SUCCESS], [ACTION-FAILURE])
140 # ------------------------------------------------------------
141 # Check whether the given compiler option works
142 AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
143 [AC_CACHE_CHECK([$1], [$2],
145 save_LDFLAGS="$LDFLAGS"
146 LDFLAGS="$LDFLAGS $3"
147 printf "$lt_simple_link_test_code" > conftest.$ac_ext
148 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
149 # The compiler can only warn and ignore the option if not recognized
150 # So say no if there are warnings
151 if test -n "$3" && grep "$3" conftest.err > /dev/null 2>&1 || grep "option" conftest.err > /dev/null 2>&1 || grep "flag" conftest.err > /dev/null 2>&1 ; then
152 # Append any errors to the config.log.
153 cat conftest.err 1>&AS_MESSAGE_LOG_FD
159 LDFLAGS="$save_LDFLAGS"
162 if test x"[$]$2" = xyes; then
163 ifelse([$4], , :, [$4])
165 ifelse([$5], , :, [$5])
167 ])# AC_LIBTOOL_LINKER_OPTION
171 ===============================================================
173 That's it. I've submitted most patches and extensions to
174 automake/libtool mailing lists, so hopefully the next release will be
175 easier if they are included in future versions :-)
177 Erik Lindahl <lindahl@gromacs.org>, 2002-01-23