1dnl 2dnl Shared library support for CUPS. 3dnl 4dnl Copyright © 2020-2024 by OpenPrinting. 5dnl Copyright © 2007-2018 by Apple Inc. 6dnl Copyright © 1997-2005 by Easy Software Products, all rights reserved. 7dnl 8dnl Licensed under Apache License v2.0. See the file "LICENSE" for more 9dnl information. 10dnl 11 12PICFLAG="1" 13DSOFLAGS="${DSOFLAGS:=}" 14 15AC_ARG_ENABLE([shared], AS_HELP_STRING([--disable-shared], [do not create shared libraries])) 16 17cupsbase="cups" 18LIBCUPSBASE="lib$cupsbase" 19LIBCUPSIMAGE="" 20LIBCUPSSTATIC="lib$cupsbase.a" 21 22AS_IF([test x$enable_shared != xno], [ 23 AS_CASE(["$host_os_name"], [sunos*], [ 24 LIBCUPS="lib$cupsbase.so.2" 25 AS_IF([test "x$cupsimagebase" != x], [ 26 LIBCUPSIMAGE="lib$cupsimagebase.so.2" 27 ]) 28 DSO="\$(CC)" 29 DSOXX="\$(CXX)" 30 DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G" 31 ], [linux* | gnu* | *bsd* | solaris*], [ 32 LIBCUPS="lib$cupsbase.so.2" 33 AS_IF([test "x$cupsimagebase" != x], [ 34 LIBCUPSIMAGE="lib$cupsimagebase.so.2" 35 ]) 36 DSO="\$(CC)" 37 DSOXX="\$(CXX)" 38 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared" 39 ], [darwin*], [ 40 LIBCUPS="lib$cupsbase.2.dylib" 41 AS_IF([test "x$cupsimagebase" != x], [ 42 LIBCUPSIMAGE="lib$cupsimagebase.2.dylib" 43 ]) 44 DSO="\$(CC)" 45 DSOXX="\$(CXX)" 46 DSOFLAGS="$DSOFLAGS -Wl,-no_warn_inits -dynamiclib -single_module -lc" 47 ], [aix*], [ 48 LIBCUPS="lib$cupsbase.so.2" 49 AS_IF([test "x$cupsimagebase" != x], [ 50 LIBCUPSIMAGE="lib$cupsimagebase.so.2" 51 ]) 52 DSO="\$(CC)" 53 DSOXX="\$(CXX)" 54 DSOFLAGS="$DSOFLAGS -Wl,-G -o \`basename \$@\`" 55 LDFLAGS="$LDFLAGS $TLSFLAGS -liconv -lz -lm" 56 ], [*], [ 57 AC_MSG_NOTICE([Warning: Shared libraries may not work, trying -shared option.]) 58 LIBCUPS="lib$cupsbase.so.2" 59 AS_IF([test "x$cupsimagebase" != x], [ 60 LIBCUPSIMAGE="lib$cupsimagebase.so.2" 61 ]) 62 DSO="\$(CC)" 63 DSOXX="\$(CXX)" 64 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared" 65 ]) 66], [ 67 PICFLAG=0 68 LIBCUPS="lib$cupsbase.a" 69 AS_IF([test "x$cupsimagebase" != x], [ 70 LIBCUPSIMAGE="lib$cupsimagebase.a" 71 ]) 72 DSO=":" 73 DSOXX=":" 74]) 75 76AC_SUBST([DSO]) 77AC_SUBST([DSOXX]) 78AC_SUBST([DSOFLAGS]) 79AC_SUBST([LIBCUPS]) 80AC_SUBST([LIBCUPSBASE]) 81AC_SUBST([LIBCUPSIMAGE]) 82AC_SUBST([LIBCUPSSTATIC]) 83 84AS_IF([test x$enable_shared = xno], [ 85 LINKCUPS="../cups/lib$cupsbase.a \$(LIBS)" 86 EXTLINKCUPS="-lcups \$LIBS" 87], [test "$host_os_name" = aix], [ 88 LINKCUPS="-L../cups -l${cupsbase} \$(LIBS)" 89 EXTLINKCUPS="-lcups \$LIBS" 90], [ 91 LINKCUPS="-L../cups -l${cupsbase}" 92 EXTLINKCUPS="-lcups" 93]) 94 95AC_SUBST([EXTLINKCUPS]) 96AC_SUBST([LINKCUPS]) 97 98dnl Update libraries for DSOs... 99EXPORT_LDFLAGS="" 100 101AS_IF([test "$DSO" != ":"], [ 102 # Tell the run-time linkers where to find a DSO. Some platforms 103 # need this option, even when the library is installed in a 104 # standard location... 105 AS_CASE([$host_os_name], [sunos* | solaris*], [ 106 # Solaris... 107 AS_IF([test $exec_prefix != /usr], [ 108 DSOFLAGS="-R$libdir $DSOFLAGS" 109 LDFLAGS="$LDFLAGS -R$libdir" 110 EXPORT_LDFLAGS="-R$libdir" 111 ]) 112 ], [*bsd*], [ 113 # *BSD... 114 AS_IF([test $exec_prefix != /usr], [ 115 DSOFLAGS="-Wl,-R$libdir $DSOFLAGS" 116 LDFLAGS="$LDFLAGS -Wl,-R$libdir" 117 EXPORT_LDFLAGS="-Wl,-R$libdir" 118 ]) 119 ], [linux* | gnu*], [ 120 # Linux, and HURD... 121 AS_IF([test $exec_prefix != /usr], [ 122 DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS" 123 LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir" 124 EXPORT_LDFLAGS="-Wl,-rpath,$libdir" 125 ]) 126 ]) 127]) 128 129AC_SUBST([EXPORT_LDFLAGS]) 130