libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Re: soext link option


From: Robert Boehne
Subject: [PATCH] Re: soext link option
Date: Thu, 19 Dec 2002 23:26:08 -0600

Oops, Did I forget the patch?

Robert

Robert Boehne wrote:
> 
> Ralph,
> 
> I've heavily modified your patch for CVS Libtool and tested it
> extensively.  I changed the option to "-shrext" because -SOext
> seems like an oxymoron.  In addition, one instance where this is
> needed is Mac OS X with Jave JNI libraries that must be modules.
> Under OS X, the original patch would not change the name of a module,
> and X's Java won't load a module named *.dylib.  I don't see why
> this can't be used under Cyg/Ming/win & pw32, so I removed the
> references that stated it was not supported there.  I can't say
> that it will work there, is there some OS restriciton that prevents it?
> 
> 2002-12-20  Ralph Schleicher  <address@hidden>
> 
>         Rework by Robert Boehne <address@hidden>
>         * ltmain.in: New link option -shrext.
>         * libtool.m4 (AC_LIBTOOL_CONFIG): New libtool variable shrext.
>         (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Replace all hard coded shared
>         library file name extensions in library_names_spec and soname_spec
>         by $shrext.
>         * doc/libtool.texi (Link mode): Document it.
> 
> Ok to commit?
> 
> Robert
> 
> "Schleicher Ralph (LLI)" wrote:
> >
> > Hi,
> >
> > please find attached my patch for setting the file name extension of
> > shared libraries.
> >
> >   ------------------------------------------------------------------------
> >                                  Name: libtool-1.4d.soext.diff
> >    libtool-1.4d.soext.diff       Type: unspecified type 
> > (application/octet-stream)
> >                              Encoding: base64
> >                           Description: libtool-1.4d.soext.diff
> >
> >                       Name: ATT00149.ATT
> >    ATT00149.ATT       Type: Plain Text (text/plain)
> >                   Encoding: base64
> >                Description: ATT00149.ATT
> 
> _______________________________________________
> Libtool-patches mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/libtool-patches
Index: libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/libtool.m4,v
retrieving revision 1.281
diff -u -r1.281 libtool.m4
--- libtool.m4  18 Dec 2002 21:04:45 -0000      1.281
+++ libtool.m4  20 Dec 2002 04:11:28 -0000
@@ -1044,6 +1044,7 @@
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
+shrext="so"
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -1077,11 +1078,11 @@
 case $host_os in
 aix3*)
   version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix $libname.a'
+  library_names_spec='${libname}${release}.${shrext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}.so$major'
+  soname_spec='${libname}${release}.${shrext}$major'
   ;;
 
 aix4* | aix5*)
@@ -1091,7 +1092,7 @@
   hardcode_into_libs=yes
   if test "$host_cpu" = ia64; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}.so$major 
${libname}${release}.so$versuffix $libname.so'
+    library_names_spec='${libname}${release}.${shrext}$major 
${libname}${release}.${shrext}$versuffix $libname.${shrext}'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
@@ -1117,12 +1118,12 @@
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
+      library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
     else
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
       library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}.so$major'
+      soname_spec='${libname}${release}.${shrext}$major'
     fi
     shlibpath_var=LIBPATH
   fi
@@ -1135,7 +1136,7 @@
   ;;
 
 beos*)
-  library_names_spec='${libname}.so'
+  library_names_spec='${libname}.${shrext}'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -1143,8 +1144,8 @@
 bsdi4*)
   version_type=linux
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib 
/usr/local/lib"
@@ -1176,12 +1177,12 @@
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | $SED -e 's/^lib/cyg/'``echo ${release} | 
$SED -e 's/[[.]]/-/g'`${versuffix}.dll'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | 
$SED -e 's/[[.]]/-/g'`${versuffix}.${shrext}'
       sys_lib_search_path_spec="/lib /lib/w32api /usr/lib /usr/local/lib"
       ;;
     mingw*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 
's/[[.]]/-/g'`${versuffix}.dll'
+      soname_spec='${libname}`echo ${release} | $SED -e 
's/[[.]]/-/g'`${versuffix}.${shrext}'
       sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | 
$SED -e "s/^libraries://" -e "s,=/,/,g"`
       if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; 
then
         # It is most probably a Windows format PATH printed by
@@ -1197,13 +1198,13 @@
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | $SED -e 's/^lib/pw/'``echo 
${release} | $SED -e 's/[.]/-/g'`${versuffix}.dll'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo 
${release} | $SED -e 's/[.]/-/g'`${versuffix}.${shrext}'
       ;;
     esac
     ;;
 
   *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 
's/[[.]]/-/g'`${versuffix}.dll $libname.lib'
+    library_names_spec='${libname}`echo ${release} | $SED -e 
's/[[.]]/-/g'`${versuffix}.${shrext} $libname.lib'
     ;;
   esac
   dynamic_linker='Win32 ld.exe'
@@ -1219,18 +1220,19 @@
   # FIXME: Relying on posixy $() will cause problems for
   #        cross-compilation, but unfortunately the echo tests do not
   #        yet detect zsh echo's removal of \ escapes.
-  library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes 
&& echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes 
&& echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo 
dylib)'
-  soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so 
|| echo dylib)'
+  library_names_spec='${libname}${release}${versuffix}.$shrext 
${libname}${release}${major}.$shrext ${libname}.$shrext'
+  soname_spec='${libname}${release}${major}.$shrext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo so || echo dylib)'
   ;;
 
 dgux*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.$shrext'
+  soname_spec='${libname}${release}.${shrext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -1243,12 +1245,12 @@
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so $libname.so'
+      library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext} $libname.${shrext}'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}.so$versuffix 
$libname.so$versuffix'
+      library_names_spec='${libname}${release}.${shrext}$versuffix 
$libname.${shrext}$versuffix'
       need_version=yes
       ;;
   esac
@@ -1272,8 +1274,8 @@
   version_type=linux
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so${major} ${libname}.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}${major} ${libname}.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   hardcode_into_libs=yes
   ;;
@@ -1289,8 +1291,8 @@
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-    soname_spec='${libname}${release}.so$major'
+    library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+    soname_spec='${libname}${release}.${shrext}$major'
     if test "X$HPUX_IA64_MODE" = X32; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 
/usr/local/lib"
     else
@@ -1301,8 +1303,9 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}.sl$versuffix 
${libname}${release}.sl$major $libname.sl'
-    soname_spec='${libname}${release}.sl$major'
+    library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+    soname_spec='${libname}${release}.${shrext}$major'
+    shrext="sl"
   fi
   # HP-UX runs *really* slowly unless shared libraries are mode 555.
   postinstall_cmds='chmod 555 $lib'
@@ -1315,8 +1318,8 @@
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major ${libname}${release}.so $libname.so'
+  soname_spec='${libname}${release}.${shrext}$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major ${libname}${release}.${shrext} 
$libname.${shrext}'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -1343,11 +1346,12 @@
 
 # This must be Linux ELF.
 linux*)
+  shrext="so"
   version_type=linux
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -1370,12 +1374,12 @@
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}.so$versuffix 
${libname}.so$versuffix'
+    library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}.${shrext}$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
-    soname_spec='${libname}${release}.so$major'
+    library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major ${libname}${release}.${shrext} 
${libname}.${shrext}'
+    soname_spec='${libname}${release}.${shrext}$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -1385,7 +1389,7 @@
 
 newsos6)
   version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -1394,8 +1398,8 @@
   version_type=linux
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -1404,7 +1408,7 @@
   version_type=sunos
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}.so$versuffix'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}.${shrext}$versuffix'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test 
"$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
@@ -1423,8 +1427,9 @@
 
 os2*)
   libname_spec='$name'
+  shrext="dll"
   need_lib_prefix=no
-  library_names_spec='$libname.dll $libname.a'
+  library_names_spec='$libname.${shrext} $libname.a'
   dynamic_linker='OS/2 ld.exe'
   shlibpath_var=LIBPATH
   ;;
@@ -1433,8 +1438,8 @@
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.${shrext}$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc 
/usr/lib /usr/local/lib /var/shlib"
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
@@ -1442,8 +1447,8 @@
 
 sco3.2v5*)
   version_type=osf
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.${shrext}$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -1451,8 +1456,8 @@
   version_type=linux
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
@@ -1462,7 +1467,7 @@
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}.so$versuffix'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}.${shrext}$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -1474,8 +1479,8 @@
 
 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
   version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
@@ -1499,16 +1504,16 @@
 sysv4*MP*)
   if test -d /usr/nec ;then
     version_type=linux
-    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
-    soname_spec='$libname.so.$major'
+    library_names_spec='$libname.${shrext}.$versuffix 
$libname.${shrext}.$major $libname.${shrext}'
+    soname_spec='$libname.${shrext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 uts4*)
   version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix 
${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.${shrext}$versuffix 
${libname}${release}.${shrext}$major $libname.${shrext}'
+  soname_spec='${libname}${release}.${shrext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -2488,10 +2493,10 @@
 _LT_AC_TAGVAR(postdeps, $1)=
 _LT_AC_TAGVAR(compiler_lib_search_path, $1)=
 
-# Source file extension for C test sources.
+# Source file extension for C++ test sources.
 ac_ext=cc
 
-# Object file extension for compiled C test sources.
+# Object file extension for compiled C++ test sources.
 objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
@@ -2850,9 +2855,8 @@
        # KCC will only create a shared library if the output file
        # ends with ".so" (or ".sl" for HP-UX), so rename the library
        # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects 
$compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects 
$compiler_flags --soname $soname -o \$templib 
${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-
+       _LT_AC_TAGVAR(archive_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.${shrext}\..*/\.${shrext}/"`; $CC $predep_objects $libobjs $deplibs 
$postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib 
$lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.${shrext}\..*/\.${shrext}/"`; $CC $predep_objects $libobjs $deplibs 
$postdep_objects $compiler_flags --soname $soname -o \$templib 
${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
        # Commands to make compiler produce verbose output that lists
        # what "hidden" libraries, object files and flags are used when
        # linking a shared library.
@@ -2861,7 +2865,7 @@
        # explicitly linking system object files so we need to strip them
        # from the output so that they don't get included in the library
        # dependencies.
-       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o 
libconftest.so 2>&1 | grep "ld"`; rm -f libconftest.so; list=""; for z in 
$templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) 
list="$list $z";;esac; done; echo $list'
+       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o 
libconftest.$shrext 2>&1 | grep "ld"`; rm -f libconftest.$shrext; list=""; for 
z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; 
*) list="$list $z";;esac; done; echo $list'
 
        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
        _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -2940,7 +2944,7 @@
        # KCC will only create a shared library if the output file
        # ends with ".so" (or ".sl" for HP-UX), so rename the library
        # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects 
$compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+       _LT_AC_TAGVAR(archive_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.${shrext}\..*/\.${shrext}/"`; $CC $predep_objects $libobjs $deplibs 
$postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib 
$lib'
 
        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
        _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -3000,7 +3004,7 @@
        # KCC will only create a shared library if the output file
        # ends with ".so" (or ".sl" for HP-UX), so rename the library
        # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.so\..*/\.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects 
$compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+       _LT_AC_TAGVAR(archive_cmds, $1)='templib=`echo $lib | $SED -e 
"s/\.${shrext}\..*/\.${shrext}/"`; $CC $predep_objects $libobjs $deplibs 
$postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib 
$lib'
 
        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
        _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -3460,10 +3464,10 @@
 AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
 [AC_LANG_SAVE
 
-# Source file extension for C test sources.
+# Source file extension for Java test sources.
 ac_ext=java
 
-# Object file extension for compiled C test sources.
+# Object file extension for compiled Java test sources.
 objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
@@ -3767,6 +3771,9 @@
 # Old archive suffix (normally "a").
 libext="$libext"
 
+# Shared library suffix (normally "so").
+shrext="$shrext"
+
 # Executable file suffix (normally "").
 exeext="$exeext"
 
@@ -3917,7 +3924,7 @@
 # Whether we need a single -rpath flag with a separated argument.
 hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
 
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# Set to yes if using DIR/libNAME.${shrext} during linking hardcodes DIR into 
the
 # resulting binary.
 hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
 
@@ -4986,6 +4993,8 @@
       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
       # Tell ltmain to make .lib files, not .a files.
       libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext="dll"
       # FIXME: Setting linknames here is a bad hack.
       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags 
`echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
       # The linker will automatically build a .lib file if we build a DLL.
Index: ltmain.in
===================================================================
RCS file: /cvsroot/libtool/libtool/ltmain.in,v
retrieving revision 1.315
diff -u -r1.315 ltmain.in
--- ltmain.in   11 Dec 2002 16:05:24 -0000      1.315
+++ ltmain.in   20 Dec 2002 04:11:33 -0000
@@ -1306,6 +1306,11 @@
         continue
         ;;
 
+      -shrext)
+       prev=shrext
+       continue
+       ;;
+
       -no-fast-install)
        fast_install=no
        continue
Index: doc/libtool.texi
===================================================================
RCS file: /cvsroot/libtool/libtool/doc/libtool.texi,v
retrieving revision 1.131
diff -u -r1.131 libtool.texi
--- doc/libtool.texi    19 Nov 2002 09:42:39 -0000      1.131
+++ doc/libtool.texi    20 Dec 2002 04:11:39 -0000
@@ -1282,6 +1282,13 @@
 @var{libdir}.  If @var{output-file} is a program, add @var{libdir} to
 the run-time path of the program.
 
address@hidden -shrext @var{suffix}
+If @var{output-file} is a libtool library, replace the system's standard
+file name extension for shared libraries with @var{suffix} (most systems
+use @file{so} here).  This option is helpful in certain cases where an
+application requires that shared libraries (typically modules) have an
+extension other than the default one.
+
 @item -R @var{libdir}
 If @var{output-file} is a program, add @var{libdir} to its run-time
 path.  If @var{output-file} is a library, add address@hidden to its

reply via email to

[Prev in Thread] Current Thread [Next in Thread]