]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | dnl |
5a1d7a17 | 2 | dnl Shared library support for CUPS. |
ef416fc2 | 3 | dnl |
14435106 MS |
4 | dnl Copyright © 2007-2018 by Apple Inc. |
5 | dnl Copyright © 1997-2005 by Easy Software Products, all rights reserved. | |
ef416fc2 | 6 | dnl |
14435106 MS |
7 | dnl Licensed under Apache License v2.0. See the file "LICENSE" for more |
8 | dnl information. | |
ef416fc2 | 9 | dnl |
10 | ||
11 | PICFLAG=1 | |
12 | DSOFLAGS="${DSOFLAGS:=}" | |
13 | ||
bf3816c7 | 14 | AC_ARG_ENABLE(shared, [ --disable-shared do not create shared libraries]) |
ef416fc2 | 15 | |
f8b3a85b MS |
16 | cupsbase="cups" |
17 | LIBCUPSBASE="lib$cupsbase" | |
18 | LIBCUPSSTATIC="lib$cupsbase.a" | |
19 | ||
ef416fc2 | 20 | if test x$enable_shared != xno; then |
105922ec MS |
21 | case "$host_os_name" in |
22 | sunos*) | |
f8b3a85b | 23 | LIBCUPS="lib$cupsbase.so.2" |
dd1abb6b | 24 | LIBCUPSIMAGE="libcupsimage.so.2" |
dd1abb6b MS |
25 | DSO="\$(CC)" |
26 | DSOXX="\$(CXX)" | |
27 | DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G \$(OPTIM)" | |
28 | ;; | |
827bf9ce | 29 | linux* | gnu* | *bsd*) |
f8b3a85b | 30 | LIBCUPS="lib$cupsbase.so.2" |
ef416fc2 | 31 | LIBCUPSIMAGE="libcupsimage.so.2" |
32 | DSO="\$(CC)" | |
50fe7201 | 33 | DSOXX="\$(CXX)" |
f301802f | 34 | DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)" |
ef416fc2 | 35 | ;; |
105922ec | 36 | darwin*) |
f8b3a85b | 37 | LIBCUPS="lib$cupsbase.2.dylib" |
ef416fc2 | 38 | LIBCUPSIMAGE="libcupsimage.2.dylib" |
39 | DSO="\$(CC)" | |
50fe7201 | 40 | DSOXX="\$(CXX)" |
f301802f | 41 | DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc" |
ef416fc2 | 42 | ;; |
ef416fc2 | 43 | *) |
44 | echo "Warning: shared libraries may not be supported. Trying -shared" | |
45 | echo " option with compiler." | |
f8b3a85b | 46 | LIBCUPS="lib$cupsbase.so.2" |
ef416fc2 | 47 | LIBCUPSIMAGE="libcupsimage.so.2" |
48 | DSO="\$(CC)" | |
50fe7201 | 49 | DSOXX="\$(CXX)" |
f301802f | 50 | DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)" |
ef416fc2 | 51 | ;; |
52 | esac | |
53 | else | |
54 | PICFLAG=0 | |
f8b3a85b | 55 | LIBCUPS="lib$cupsbase.a" |
ef416fc2 | 56 | LIBCUPSIMAGE="libcupsimage.a" |
57 | DSO=":" | |
50fe7201 | 58 | DSOXX=":" |
ef416fc2 | 59 | fi |
60 | ||
61 | AC_SUBST(DSO) | |
50fe7201 | 62 | AC_SUBST(DSOXX) |
ef416fc2 | 63 | AC_SUBST(DSOFLAGS) |
64 | AC_SUBST(LIBCUPS) | |
f8b3a85b | 65 | AC_SUBST(LIBCUPSBASE) |
ef416fc2 | 66 | AC_SUBST(LIBCUPSIMAGE) |
f8b3a85b | 67 | AC_SUBST(LIBCUPSSTATIC) |
ef416fc2 | 68 | |
69 | if test x$enable_shared = xno; then | |
f8b3a85b | 70 | LINKCUPS="../cups/lib$cupsbase.a" |
123979a9 | 71 | LINKCUPSIMAGE="../cups/libcupsimage.a" |
c7017ecc MS |
72 | |
73 | EXTLINKCUPS="-lcups" | |
c7017ecc | 74 | EXTLINKCUPSIMAGE="-lcupsimage" |
ef416fc2 | 75 | else |
5a1d7a17 MS |
76 | LINKCUPS="-l${cupsbase}" |
77 | LINKCUPSIMAGE="-lcupsimage" | |
c7017ecc | 78 | |
5a1d7a17 MS |
79 | EXTLINKCUPS="-lcups" |
80 | EXTLINKCUPSIMAGE="-lcupsimage" | |
ef416fc2 | 81 | fi |
82 | ||
c7017ecc | 83 | AC_SUBST(EXTLINKCUPS) |
c7017ecc | 84 | AC_SUBST(EXTLINKCUPSIMAGE) |
ef416fc2 | 85 | AC_SUBST(LINKCUPS) |
86 | AC_SUBST(LINKCUPSIMAGE) | |
87 | ||
88 | dnl Update libraries for DSOs... | |
89 | EXPORT_LDFLAGS="" | |
90 | ||
91 | if test "$DSO" != ":"; then | |
92 | # When using DSOs the image libraries are linked to libcupsimage.so | |
93 | # rather than to the executables. This makes things smaller if you | |
94 | # are using any static libraries, and it also allows us to distribute | |
95 | # a single DSO rather than a bunch... | |
a4845881 | 96 | DSOLIBS="\$(LIBZ)" |
ef416fc2 | 97 | IMGLIBS="" |
98 | ||
f301802f | 99 | # Tell the run-time linkers where to find a DSO. Some platforms |
100 | # need this option, even when the library is installed in a | |
101 | # standard location... | |
105922ec MS |
102 | case $host_os_name in |
103 | sunos*) | |
f301802f | 104 | # Solaris... |
105 | if test $exec_prefix != /usr; then | |
ed486911 | 106 | DSOFLAGS="-R$libdir $DSOFLAGS" |
ed486911 | 107 | LDFLAGS="$LDFLAGS -R$libdir" |
108 | EXPORT_LDFLAGS="-R$libdir" | |
f301802f | 109 | fi |
110 | ;; | |
105922ec | 111 | *bsd*) |
f301802f | 112 | # *BSD... |
113 | if test $exec_prefix != /usr; then | |
ed486911 | 114 | DSOFLAGS="-Wl,-R$libdir $DSOFLAGS" |
ed486911 | 115 | LDFLAGS="$LDFLAGS -Wl,-R$libdir" |
116 | EXPORT_LDFLAGS="-Wl,-R$libdir" | |
f301802f | 117 | fi |
118 | ;; | |
827bf9ce | 119 | linux* | gnu*) |
3dd9c340 | 120 | # Linux, and HURD... |
f301802f | 121 | if test $exec_prefix != /usr; then |
ed486911 | 122 | DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS" |
ed486911 | 123 | LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir" |
124 | EXPORT_LDFLAGS="-Wl,-rpath,$libdir" | |
f301802f | 125 | fi |
126 | ;; | |
ef416fc2 | 127 | esac |
128 | else | |
129 | DSOLIBS="" | |
a4845881 | 130 | IMGLIBS="\$(LIBZ)" |
ef416fc2 | 131 | fi |
132 | ||
133 | AC_SUBST(DSOLIBS) | |
134 | AC_SUBST(IMGLIBS) | |
135 | AC_SUBST(EXPORT_LDFLAGS) |