diff --git a/configure b/configure index 903342e2..69d20726 100755 --- a/configure +++ b/configure @@ -2576,7 +2576,7 @@ case "$target" in ;; *darwin*) SHLPST=".dylib" - MODPST=".so" + MODPST=".dylib" ;; esac @@ -2600,11 +2600,12 @@ BASE_INSTALL="installbase" BASE_BINARY="binarybase" SHLPRE="lib" LD_RXLIB1="" +LD_RXTRANSLIB1="$LD_RXLIB1" CAN_USE_ABI="no" -BUNDLE="" -# If the build OS can handle version numbers in the shared library name, -# and the user requests it, then set SHL_BASE="${SHLPRE}${SHLFILE}${SHLPST}.\$(ABI)" -SHL_BASE="${SHLPRE}${SHLFILE}${SHLPST}" +LIBEXE="ar" +LIBFLAGS="cr" +LIBPRE="lib" +LIBPST=".a" # OTHER_INSTALLS is set to install a non-version numbered shared library # by default; ie. no .\$(ABI) suffix. If the regina executable is not built, # then there is no shared library. Set OTHER_INSTALLS="installabilib" if you @@ -2618,6 +2619,7 @@ case "$target" in SYS_DEFS="-D_HPUX_SOURCE" EEXTRA="-Wl,-E" LD_RXLIB1="ld -b -q -n" + LD_RXTRANSLIB1="$LD_RXLIB1" DYNAMIC_LDFLAGS="-Wl,+s" ;; *ibm-aix*) @@ -2631,6 +2633,7 @@ case "$target" in DYN_COMP="-DDYNAMIC" STATIC_LDFLAGS="-bnso -bI:/lib/syscalls.exp" LD_RXLIB1="ld $mh_entry -bM:SRE" + LD_RXTRANSLIB1="$LD_RXLIB1" RXPACKEXPORTS="-bE:$SHLFILE.exp" RXPACKEXP="$SHLFILE.exp" ;; @@ -2641,57 +2644,65 @@ case "$target" in SYS_DEFS="-D_POSIX_SOURCE -D_XOPEN_SOURCE -Olimit 800" fi LD_RXLIB1="ld -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *sequent-dynix*) LD_RXLIB1="ld -G" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *solaris*) if test "$ac_cv_prog_CC" = "gcc"; then LD_RXLIB1="gcc -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" else LD_RXLIB1="ld -G" + LD_RXTRANSLIB1="$LD_RXLIB1" fi ;; *esix*) LD_RXLIB1="ld -G" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *dgux*) LD_RXLIB1="ld -G" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; sparc*sunos*) SYS_DEFS="-DSUNOS -DSUNOS_STRTOD_BUG" LD_RXLIB1="ld" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *linux*) LD_RXLIB1="${CC} -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" CAN_USE_ABI="yes" if test "$USE_ABI" = "yes"; then OTHER_INSTALLS="installabilib" - SHL_BASE="${SHLPRE}${SHLFILE}${SHLPST}.\$(ABI)" fi ;; *atheos*) LD_RXLIB1="${CC} -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *freebsd*) LD_RXLIB1="ld -Bdynamic -Bshareable" - ;; - *nto-qnx*) - LD_RXLIB1="${CC} -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *pc-sco*) LD_RXLIB1="ld -dy -G" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *beos*) LD_RXLIB1="${CC} -Wl,-shared -nostart -Xlinker -soname=\$(@)" + LD_RXTRANSLIB1="$LD_RXLIB1" BEOS_DYN="yes" BASE_INSTALL="beosinstall" BASE_BINARY="beosbinary" OTHER_INSTALLS="" ;; - *apple-darwin*) - LD_RXLIB1="${CC} -dynamiclib -install_name=\$(prefix)/lib/\$(@)" - DYN_COMP="-fno-common" + *nto-qnx*) + LD_RXLIB1="${CC} -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *qnx*) LIBPRE="" @@ -2707,16 +2718,20 @@ case "$target" in DYN_COMP="-DDYNAMIC" LIBPST=".a" EXE=".exe" - LD_RXLIB1="dllwrap --def \$(srcdir)/\$(basename \$(@))w32.def --output-lib ${LIBPRE}\$(basename \$(@))${LIBPST} --target i386-cygwin32 --dllname \$(@)" +# Only for Rexx/Trans do we produce an import library for the DLL we are +# building + LD_RXLIB1="dllwrap --def \$(srcdir)/\$(basename \$(@))w32.def --target i386-cygwin32 --dllname \$(@)" + LD_RXTRANSLIB1="dllwrap --def \$(srcdir)/\$(basename \$(@))w32.def --output-lib ${LIBPRE}\$(basename \$(@))${LIBPST} --target i386-cygwin32 --dllname \$(@)" BASE_INSTALL="cygwininstall" BASE_BINARY="cygwinbinary" +# cygwininstall target MUST install the shared library itself because +# it puts it into $(bindir) not $(libdir) as all other platforms + OTHER_INSTALLS="" ;; *darwin*) DYN_COMP="-fno-common" - BUNDLE=".so" - LD_RXLIB1="${CC} -shared" - EXTRATARGET="librexxtrans$BUNDLE" - OTHER_INSTALLS="installmacosx" + LD_RXLIB1="${CC} -dynamiclib -install_name=\$(@)" + LD_RXTRANSLIB1="$LD_RXLIB1" ;; *) ;; @@ -2724,10 +2739,10 @@ esac if test "$DYN_COMP" = ""; then echo $ac_n "checking compiler flags for a dynamic object""... $ac_c" 1>&6 -echo "configure:2728: checking compiler flags for a dynamic object" >&5 +echo "configure:2743: checking compiler flags for a dynamic object" >&5 cat > conftest.$ac_ext <&5; (eval $mh_compile) 2>&5; }; then + if { (eval echo configure:2758: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; }; then DYN_COMP="" else slash="\\" @@ -2760,17 +2775,18 @@ EOF mh_compile='${CC-cc} -c $DYN_COMP conftest.$ac_ext 1>&5' cat > conftest.$ac_ext <&5; (eval $mh_compile) 2>&5; } && test -s conftest.o; then +if { (eval echo configure:2785: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; } && test -s conftest.o; then mh_dyn_link='ld -shared -o conftest.rxlib conftest.o -lc 1>&5' # mh_dyn_link='${CC} -Wl,-shared -o conftest.rxlib conftest.o -lc 1>&AC_FD_CC' - if { (eval echo configure:2773: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then + if { (eval echo configure:2788: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then LD_RXLIB1="ld -shared" + LD_RXTRANSLIB1="$LD_RXLIB1" # LD_RXLIB1="${CC} -Wl,-shared" LD_RXLIB2="${REXX_LIBS}" SHLPRE="lib" @@ -2779,8 +2795,9 @@ if { (eval echo configure:2770: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; else mh_dyn_link='ld -G -o conftest.rxlib conftest.o 1>&5' # mh_dyn_link='${CC} -Wl,-G -o conftest.rxlib conftest.o 1>&AC_FD_CC' - if { (eval echo configure:2783: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then + if { (eval echo configure:2799: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then LD_RXLIB1="ld -G" + LD_RXTRANSLIB1="$LD_RXLIB1" # LD_RXLIB1="${CC} -Wl,-G" LD_RXLIB2="${REXX_LIBS}" SHLPRE="lib" @@ -2788,6 +2805,7 @@ if { (eval echo configure:2770: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; RXLIBLEN="6" else LD_RXLIB1="" + LD_RXTRANSLIB1="$LD_RXLIB1" LD_RXLIB2="" SHLPRE="" SHLPST="" @@ -2802,8 +2820,12 @@ rm -f conftest* rm -f conftest.* fi + +aix_exports="config.exports.aix" +echo "" > $aix_exports if test "$ac_cv_header_dl_h" = "yes" -o "$ac_cv_header_dlfcn_h" = "yes" -o "$AIX_DYN" = "yes" -o "$BEOS_DYN" = "yes" -o "$DLFCNINCDIR" != "" -o "$DLFCNLIBDIR" != ""; then if test "$with_rexx" = "rexxtrans" -o "$with_rexx" = "regina" -o "$with_rexx" = "objrexx" -o "$with_rexx" = "rexx6000"; then + EXPS="1,2,3,4,5,6,7,8,9" SHL_TARGETS="" for a in $SHLFILES do @@ -2812,6 +2834,15 @@ if test "$ac_cv_header_dl_h" = "yes" -o "$ac_cv_header_dlfcn_h" = "yes" -o "$AIX else SHL_TARGETS="${SHL_TARGETS} ${SHLPRE}${a}${SHLPST}" fi + this=`echo $EXPS | cut -d, -f1` + EXPS=`echo $EXPS | cut -d, -f2-` + if test "$AIX_DYN" = "yes"; then + echo "RXPACKEXP$this=$a.exp" >> $aix_exports + echo "RXPACKEXPORTS$this=-bE:$a.exp" >> $aix_exports + else + echo "RXPACKEXP$this=" >> $aix_exports + echo "RXPACKEXPORTS$this=" >> $aix_exports + fi done else SHL_TARGETS="" @@ -2844,6 +2875,10 @@ fi + + + + @@ -3015,6 +3050,8 @@ s%@x11type@%$x11type%g s%@PURIFY@%$PURIFY%g s%@SHLPST@%$SHLPST%g s%@MODPST@%$MODPST%g +/@aix_exports@/r $aix_exports +s%@aix_exports@%%g s%@EEXTRA@%$EEXTRA%g s%@CEXTRA@%$CEXTRA%g s%@OSAVE@%$OSAVE%g @@ -3024,9 +3061,12 @@ s%@GETOPT@%$GETOPT%g s%@DYN_COMP@%$DYN_COMP%g s%@SHLIBS@%$SHLIBS%g s%@LD_RXLIB1@%$LD_RXLIB1%g +s%@LD_RXTRANSLIB1@%$LD_RXTRANSLIB1%g s%@SHLPRE@%$SHLPRE%g s%@LIBPST@%$LIBPST%g s%@LIBPRE@%$LIBPRE%g +s%@LIBEXE@%$LIBEXE%g +s%@LIBFLAGS@%$LIBFLAGS%g s%@DYNAMIC_LDFLAGS@%$DYNAMIC_LDFLAGS%g s%@STATIC_LDFLAGS@%$STATIC_LDFLAGS%g s%@SHL_TARGETS@%$SHL_TARGETS%g