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