- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
- ;;
- (hpux[7-8]*)
- # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='+Z'
- fi
- MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $@'
- INSTALL_LIB="-m 555"
- ;;
- (hpux*)
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
- LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
- else
- CC_SHARED_OPTS='+Z'
- LD_SHARED_OPTS='-Wl,+b,${libdir}'
- fi
- MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $@'
- # HP-UX shared libraries must be executable, and should be
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
- (interix*)
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_shared_soname='`basename $@`'
- fi
- CC_SHARED_OPTS=
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
- ;;
- (irix*)
- if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $@` -o $@'
- else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $@` -o $@'
- fi
- cf_cv_rm_so_locs=yes
- ;;
- (linux*|gnu*|k*bsd*-gnu)
- if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_cv_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
- ;;
- (mingw*msvc*)
- cf_cv_shlib_version=msvcdll
- cf_cv_shlib_version_infix=msvcdll
- shlibdir=$bindir
- MAKE_DLLS=
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-link -dll"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS=
- MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${LD} ${CFLAGS}'
- RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
- cat >mk_shared_lib.sh <<-CF_EOF
- #!$SHELL
- SHARED_LIB=\$1
- IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.lib/'\`
- shift
- my_ld=\$1
- shift
- cat <<-EOF
- Linking shared library
- ** SHARED LIB \$SHARED_LIB
- ** IMPORT_LIB \$IMPORT_LIB
-EOF
- args=\$(echo \$* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
- exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
- mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
-CF_EOF
- chmod +x mk_shared_lib.sh
- cat >mk_prog.sh <<-CF_EOF
- #!$SHELL
- shift
- # Ignore first argument (compiler) and use LD (link.exe) unconditionally
- LD="$LD"
- clopts=()
- ldopts=("/subsystem:console")
- libs=()
- isdll=0
- while test \$# -gt 0; do
- case "\$1" in
- -link)
- # ignore -link argument
- ;;
- -M[TD] | -M[TD]d)
- # ignore runtime-library option
- ;;
- -dll)
- isdll=1
- ;;
- -W* | -w*)
- # ignore warnings
- ;;
- -D*)
- clopts+=("\$1")
- ;;
- -I*)
- clopts+=("\$1")
- ;;
- -l*)
- libs+=("\`echo \"\$1\" | sed \"s/^-l//\"\`")
- ;;
- -L*)
- ldopts+=("\`echo \"\$1\" | sed \"s/^-L/-LIBPATH:/\"\`")
- ;;
- *.obj | *.o)
- ldopts+=("\$1")
- ;;
- -Wl,*)
- for linkarg in \`echo '\$1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
- ldopts+=("\${linkarg}")
- done
- ;;
- *.lib)
- ldopts+=("\$1")
- ;;
- -o)
- shift
- ldopts+=("-out:\$1")
- ;;
- *)
- clopts+=("\$1")
- ldopts+=("\$1")
- ;;
- esac
- shift
- done
- if [ "\$isdll" -ne 0 ]; then
- for lib in \${libs[*]}; do
- ldopts+=("\$lib.dll.lib")
- done
- else
- for lib in \${libs[*]}; do
- ldopts+=("\$lib.lib")
- done
- fi
- cat <<-EOF
- Creating program
- ** ld options: "\${ldopts[@]}"
-EOF
- exec \$LD \${ldopts[@]}
-CF_EOF
- chmod +x mk_prog.sh
- LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
- LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
- ;;
- (mingw*)
- cf_cv_shlib_version=mingw
- cf_cv_shlib_version_infix=mingw
- shlibdir=$bindir
- MAKE_DLLS=
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,--enable-auto-import"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS=
- MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
- RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
- cat >mk_shared_lib.sh <<-CF_EOF
- #!$SHELL
- SHARED_LIB=\$1
- IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\`
- shift
- cat <<-EOF
- Linking shared library
- ** SHARED_LIB \$SHARED_LIB
- ** IMPORT_LIB \$IMPORT_LIB
-EOF
- exec \$* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
-CF_EOF
- chmod +x mk_shared_lib.sh
- ;;
- (openbsd[2-9].*|mirbsd*)
- if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_cv_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
- ;;
- (nskJ*)
- CC_SHARED_OPTS=
- MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $@'
- ;;
- (nskL*)
- CC_SHARED_OPTS=
- MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $@'
- ;;
- (nto-qnx*|openbsd*|freebsd[12].*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- (dragonfly*|freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_cv_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
- ;;
- (netbsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
- else
- cf_cv_shlib_version=rel
- fi
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_cv_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@'
- else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $@'
- fi
- ;;
- (osf*|mls+*)
- # tested with OSF/1 V3.2 and 'cc'
- # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
- # link with shared libs).
- MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $@`'
- case "$host_os" in
- (osf4*)
- MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
- ;;
- esac
- MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@'
- if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- cf_cv_rm_so_locs=yes
- ;;
- (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98
- # tested with osr5.0.5
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-belf -KPIC'
- fi
- MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $@ .${REL_VERSION}`.${ABI_VERSION} -o $@'
- if test "$cf_cv_enable_rpath" = yes ; then
- # only way is to set LD_RUN_PATH but no switch for it
- RUN_PATH=$libdir
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- LINK_PROGS='LD_RUN_PATH=${libdir}'
- LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
- ;;
- (sunos4*)
- # tested with SunOS 4.1.1 and gcc 2.7.0
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- (solaris2*)
- # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
- # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_cv_shared_soname='`basename $@`'
- fi
-
- if test "$GCC" != yes; then
- cf_save_CFLAGS="$CFLAGS"
- for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
- do
- CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 6628 "configure"