blob: 6070f211e3188711e614d3d37dd4fb2f261c4153 [file] [log] [blame]
dnl
dnl Shared library support for CUPS.
dnl
dnl Copyright © 2007-2018 by Apple Inc.
dnl Copyright © 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
dnl information.
dnl
PICFLAG=1
DSOFLAGS="${DSOFLAGS:=}"
AC_ARG_ENABLE(shared, [ --disable-shared do not create shared libraries])
cupsbase="cups"
LIBCUPSBASE="lib$cupsbase"
LIBCUPSIMAGE=""
LIBCUPSSTATIC="lib$cupsbase.a"
if test x$enable_shared != xno; then
case "$host_os_name" in
sunos*)
LIBCUPS="lib$cupsbase.so.2"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.so.2"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G"
;;
linux* | gnu* | *bsd*)
LIBCUPS="lib$cupsbase.so.2"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.so.2"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared"
;;
darwin*)
LIBCUPS="lib$cupsbase.2.dylib"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.2.dylib"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-no_warn_inits -dynamiclib -single_module -lc"
;;
*)
echo "Warning: shared libraries may not be supported. Trying -shared"
echo " option with compiler."
LIBCUPS="lib$cupsbase.so.2"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.so.2"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared"
;;
esac
else
PICFLAG=0
LIBCUPS="lib$cupsbase.a"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.a"
fi
DSO=":"
DSOXX=":"
fi
AC_SUBST(DSO)
AC_SUBST(DSOXX)
AC_SUBST(DSOFLAGS)
AC_SUBST(LIBCUPS)
AC_SUBST(LIBCUPSBASE)
AC_SUBST(LIBCUPSIMAGE)
AC_SUBST(LIBCUPSSTATIC)
if test x$enable_shared = xno; then
LINKCUPS="../cups/lib$cupsbase.a \$(LIBS)"
EXTLINKCUPS="-lcups \$LIBS"
else
LINKCUPS="-L../cups -l${cupsbase}"
EXTLINKCUPS="-lcups"
fi
AC_SUBST(EXTLINKCUPS)
AC_SUBST(LINKCUPS)
dnl Update libraries for DSOs...
EXPORT_LDFLAGS=""
if test "$DSO" != ":"; then
# Tell the run-time linkers where to find a DSO. Some platforms
# need this option, even when the library is installed in a
# standard location...
case $host_os_name in
sunos*)
# Solaris...
if test $exec_prefix != /usr; then
DSOFLAGS="-R$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -R$libdir"
EXPORT_LDFLAGS="-R$libdir"
fi
;;
*bsd*)
# *BSD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-R$libdir"
EXPORT_LDFLAGS="-Wl,-R$libdir"
fi
;;
linux* | gnu*)
# Linux, and HURD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
fi
;;
esac
fi
AC_SUBST(EXPORT_LDFLAGS)