193 lines
4.8 KiB
Plaintext
193 lines
4.8 KiB
Plaintext
dnl
|
|
dnl $Id: shared-libs.m4,v 1.4.14.3 2000/12/07 18:03:00 bg Exp $
|
|
dnl
|
|
dnl Shared library stuff has to be different everywhere
|
|
dnl
|
|
|
|
AC_DEFUN(AC_SHARED_LIBS, [
|
|
|
|
dnl Check if we want to use shared libraries
|
|
AC_ARG_ENABLE(shared,
|
|
[ --enable-shared create shared libraries for Kerberos])
|
|
|
|
AC_SUBST(CFLAGS)dnl
|
|
AC_SUBST(LDFLAGS)dnl
|
|
|
|
case ${enable_shared} in
|
|
yes ) enable_shared=yes;;
|
|
no ) enable_shared=no;;
|
|
* ) enable_shared=no;;
|
|
esac
|
|
|
|
# NOTE: Building shared libraries may not work if you do not use gcc!
|
|
#
|
|
# OS $SHLIBEXT
|
|
# HP-UX sl
|
|
# Linux so
|
|
# NetBSD so
|
|
# FreeBSD so
|
|
# OSF so
|
|
# SunOS5 so
|
|
# SunOS4 so.0.5
|
|
# Irix so
|
|
#
|
|
# LIBEXT is the extension we should build (.a or $SHLIBEXT)
|
|
LINK='$(CC)'
|
|
AC_SUBST(LINK)
|
|
lib_deps=yes
|
|
REAL_PICFLAGS="-fpic"
|
|
LDSHARED='$(CC) $(PICFLAGS) -shared'
|
|
LIBPREFIX=lib
|
|
build_symlink_command=@true
|
|
install_symlink_command=@true
|
|
install_symlink_command2=@true
|
|
REAL_SHLIBEXT=so
|
|
changequote({,})dnl
|
|
SHLIB_VERSION=`echo $VERSION | sed 's/\([0-9.]*\).*/\1/'`
|
|
SHLIB_SONAME=`echo $VERSION | sed 's/\([0-9]*\).*/\1/'`
|
|
changequote([,])dnl
|
|
case "${host}" in
|
|
*-*-hpux*)
|
|
REAL_SHLIBEXT=sl
|
|
REAL_LD_FLAGS='-Wl,+b$(libdir)'
|
|
if test -z "$GCC"; then
|
|
LDSHARED="ld -b"
|
|
REAL_PICFLAGS="+z"
|
|
fi
|
|
lib_deps=no
|
|
;;
|
|
*-*-linux*)
|
|
LDSHARED='$(CC) -shared -Wl,-soname,$(LIBNAME).so.'"${SHLIB_SONAME}"
|
|
REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
build_symlink_command='$(LN_S) -f [$][@] $(LIBNAME).so'
|
|
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
|
|
install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
|
|
;;
|
|
changequote(,)dnl
|
|
*-*-freebsd[345]* | *-*-freebsdelf[345]*)
|
|
changequote([,])dnl
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
REAL_LD_FLAGS='-Wl,-R$(libdir)'
|
|
build_symlink_command='$(LN_S) -f [$][@] $(LIBNAME).so'
|
|
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
|
|
install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
|
|
;;
|
|
*-*-*bsd*)
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
LDSHARED='ld -Bshareable'
|
|
REAL_LD_FLAGS='-Wl,-R$(libdir)'
|
|
;;
|
|
*-*-osf*)
|
|
REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
|
|
REAL_PICFLAGS=
|
|
LDSHARED='ld -shared -expect_unresolved \*'
|
|
;;
|
|
*-*-solaris2*)
|
|
LDSHARED='$(CC) -shared -Wl,-h$(LIBNAME).so.'"${SHLIB_SONAME}"
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
build_symlink_command='$(LN_S) [$][@] $(LIBNAME).so'
|
|
install_symlink_command='$(LN_S) $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
|
|
install_symlink_command2='$(LN_S) $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
|
|
REAL_LD_FLAGS='-Wl,-R$(libdir)'
|
|
if test -z "$GCC"; then
|
|
LDSHARED='$(CC) -G -h$(LIBNAME).so.'"${SHLIB_SONAME}"
|
|
REAL_PICFLAGS="-Kpic"
|
|
fi
|
|
;;
|
|
*-fujitsu-uxpv*)
|
|
REAL_LD_FLAGS='' # really: LD_RUN_PATH=$(libdir) cc -o ...
|
|
REAL_LINK='LD_RUN_PATH=$(libdir) $(CC)'
|
|
LDSHARED='$(CC) -G'
|
|
REAL_PICFLAGS="-Kpic"
|
|
lib_deps=no # fails in mysterious ways
|
|
;;
|
|
*-*-sunos*)
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
REAL_LD_FLAGS='-Wl,-L$(libdir)'
|
|
lib_deps=no
|
|
;;
|
|
*-*-irix*)
|
|
libdir="${libdir}${abilibdirext}"
|
|
REAL_LD_FLAGS="${abi} -Wl,-rpath,\$(libdir)"
|
|
LD_FLAGS="${abi} -Wl,-rpath,\$(libdir)"
|
|
LDSHARED="\$(CC) -shared ${abi}"
|
|
REAL_PICFLAGS=
|
|
CFLAGS="${abi} ${CFLAGS}"
|
|
;;
|
|
*-*-os2*)
|
|
LIBPREFIX=
|
|
EXECSUFFIX='.exe'
|
|
RANLIB=EMXOMF
|
|
LD_FLAGS=-Zcrtdll
|
|
REAL_SHLIBEXT=nobuild
|
|
;;
|
|
*-*-cygwin32*)
|
|
EXECSUFFIX='.exe'
|
|
REAL_SHLIBEXT=nobuild
|
|
;;
|
|
*) REAL_SHLIBEXT=nobuild
|
|
REAL_PICFLAGS=
|
|
;;
|
|
esac
|
|
|
|
if test "${enable_shared}" != "yes" ; then
|
|
PICFLAGS=""
|
|
SHLIBEXT="nobuild"
|
|
LIBEXT="a"
|
|
build_symlink_command=@true
|
|
install_symlink_command=@true
|
|
install_symlink_command2=@true
|
|
else
|
|
PICFLAGS="$REAL_PICFLAGS"
|
|
SHLIBEXT="$REAL_SHLIBEXT"
|
|
LIBEXT="$SHLIBEXT"
|
|
AC_MSG_CHECKING(whether to use -rpath)
|
|
case "$libdir" in
|
|
/lib | /usr/lib | /usr/local/lib)
|
|
AC_MSG_RESULT(no)
|
|
REAL_LD_FLAGS=
|
|
LD_FLAGS=
|
|
;;
|
|
*)
|
|
LD_FLAGS="$REAL_LD_FLAGS"
|
|
test "$REAL_LINK" && LINK="$REAL_LINK"
|
|
AC_MSG_RESULT($LD_FLAGS)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if test "$lib_deps" = yes; then
|
|
lib_deps_yes=""
|
|
lib_deps_no="# "
|
|
else
|
|
lib_deps_yes="# "
|
|
lib_deps_no=""
|
|
fi
|
|
AC_SUBST(lib_deps_yes)
|
|
AC_SUBST(lib_deps_no)
|
|
|
|
# use supplied ld-flags, or none if `no'
|
|
if test "$with_ld_flags" = no; then
|
|
LD_FLAGS=
|
|
elif test -n "$with_ld_flags"; then
|
|
LD_FLAGS="$with_ld_flags"
|
|
fi
|
|
|
|
AC_SUBST(REAL_PICFLAGS) dnl
|
|
AC_SUBST(REAL_SHLIBEXT) dnl
|
|
AC_SUBST(REAL_LD_FLAGS) dnl
|
|
|
|
AC_SUBST(PICFLAGS) dnl
|
|
AC_SUBST(SHLIBEXT) dnl
|
|
AC_SUBST(LDSHARED) dnl
|
|
AC_SUBST(LD_FLAGS) dnl
|
|
AC_SUBST(LIBEXT) dnl
|
|
AC_SUBST(LIBPREFIX) dnl
|
|
AC_SUBST(EXECSUFFIX) dnl
|
|
|
|
AC_SUBST(build_symlink_command)dnl
|
|
AC_SUBST(install_symlink_command)dnl
|
|
AC_SUBST(install_symlink_command2)dnl
|
|
])
|