]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-sharedlibs.m4
<rdar://problem/5792631> dependency cycle in cups-144 / PrintingCore-250 / Applicatio...
[thirdparty/cups.git] / config-scripts / cups-sharedlibs.m4
CommitLineData
ef416fc2 1dnl
bc44d920 2dnl "$Id: cups-sharedlibs.m4 6649 2007-07-11 21:46:42Z mike $"
ef416fc2 3dnl
4dnl Shared library support for the Common UNIX Printing System (CUPS).
5dnl
50fe7201 6dnl Copyright 2007-2008 by Apple Inc.
ef416fc2 7dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
8dnl
9dnl These coded instructions, statements, and computer programs are the
bc44d920 10dnl property of Apple Inc. and are protected by Federal copyright
11dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
12dnl which should have been included with this file. If this file is
13dnl file is missing or damaged, see the license at "http://www.cups.org/".
ef416fc2 14dnl
15
16PICFLAG=1
17DSOFLAGS="${DSOFLAGS:=}"
18
19AC_ARG_ENABLE(shared, [ --enable-shared turn on shared libraries, default=yes])
20
21if test x$enable_shared != xno; then
22 case "$uname" in
23 SunOS* | UNIX_S*)
24 LIBCUPS="libcups.so.2"
50fe7201
MS
25 LIBCUPSCGI="libcupscgi.so.1"
26 LIBCUPSDRIVER="libcupsdriver.so.1"
ef416fc2 27 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
28 LIBCUPSMIME="libcupsmime.so.1"
29 LIBCUPSPPDC="libcupsppdc.so.1"
ef416fc2 30 DSO="\$(CC)"
50fe7201 31 DSOXX="\$(CXX)"
f301802f 32 DSOFLAGS="$DSOFLAGS -Wl,-h,\`basename \$@\` -G \$(OPTIM)"
ef416fc2 33 ;;
34 HP-UX*)
b86bc4cf 35 case "$uarch" in
36 ia64)
37 LIBCUPS="libcups.so.2"
50fe7201
MS
38 LIBCUPSCGI="libcupscgi.so.1"
39 LIBCUPSDRIVER="libcupsdriver.so.1"
b86bc4cf 40 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
41 LIBCUPSMIME="libcupsmime.so.1"
42 LIBCUPSPPDC="libcupsppdc.so.1"
b86bc4cf 43 DSO="\$(CC)"
50fe7201 44 DSOXX="\$(CXX)"
b86bc4cf 45 DSOFLAGS="$DSOFLAGS -Wl,-b,-z,+h,\`basename \$@\`"
46 ;;
47 *)
48 LIBCUPS="libcups.sl.2"
50fe7201
MS
49 LIBCUPSCGI="libcupscgi.sl.1"
50 LIBCUPSDRIVER="libcupsdriver.sl.1"
b86bc4cf 51 LIBCUPSIMAGE="libcupsimage.sl.2"
50fe7201
MS
52 LIBCUPSMIME="libcupsmime.sl.1"
53 LIBCUPSPPDC="libcupsppdc.sl.1"
b86bc4cf 54 DSO="\$(LD)"
50fe7201 55 DSOXX="\$(LD)"
b86bc4cf 56 DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
57 ;;
58 esac
ef416fc2 59 ;;
60 IRIX)
61 LIBCUPS="libcups.so.2"
50fe7201
MS
62 LIBCUPSCGI="libcupscgi.so.1"
63 LIBCUPSDRIVER="libcupsdriver.so.1"
ef416fc2 64 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
65 LIBCUPSMIME="libcupsmime.so.1"
66 LIBCUPSPPDC="libcupsppdc.so.1"
ef416fc2 67 DSO="\$(CC)"
50fe7201 68 DSOXX="\$(CXX)"
f301802f 69 DSOFLAGS="$DSOFLAGS -set_version,sgi2.6,-soname,\`basename \$@\` -shared \$(OPTIM)"
ef416fc2 70 ;;
71 OSF1* | Linux | GNU | *BSD*)
72 LIBCUPS="libcups.so.2"
50fe7201
MS
73 LIBCUPSCGI="libcupscgi.so.1"
74 LIBCUPSDRIVER="libcupsdriver.so.1"
ef416fc2 75 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
76 LIBCUPSMIME="libcupsmime.so.1"
77 LIBCUPSPPDC="libcupsppdc.so.1"
ef416fc2 78 DSO="\$(CC)"
50fe7201 79 DSOXX="\$(CXX)"
f301802f 80 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
ef416fc2 81 ;;
82 Darwin*)
83 LIBCUPS="libcups.2.dylib"
50fe7201
MS
84 LIBCUPSCGI="libcupscgi.1.dylib"
85 LIBCUPSDRIVER="libcupsdriver.1.dylib"
ef416fc2 86 LIBCUPSIMAGE="libcupsimage.2.dylib"
50fe7201
MS
87 LIBCUPSMIME="libcupsmime.1.dylib"
88 LIBCUPSPPDC="libcupsppdc.1.dylib"
ef416fc2 89 DSO="\$(CC)"
50fe7201 90 DSOXX="\$(CXX)"
f301802f 91 DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc"
ef416fc2 92 ;;
93 AIX*)
94 LIBCUPS="libcups_s.a"
50fe7201
MS
95 LIBCUPSCGI="libcupscgi_s.a"
96 LIBCUPSDRIVER="libcupsdriver_s.a"
ef416fc2 97 LIBCUPSIMAGE="libcupsimage_s.a"
50fe7201
MS
98 LIBCUPSMIME="libcupsmime_s.a"
99 LIBCUPSPPDC="libcupsppdc_s.a"
ef416fc2 100 DSO="\$(CC)"
50fe7201 101 DSOXX="\$(CXX)"
ef416fc2 102 DSOFLAGS="$DSOFLAGS -Wl,-bexpall,-bM:SRE,-bnoentry,-blibpath:\$(libdir)"
103 ;;
104 *)
105 echo "Warning: shared libraries may not be supported. Trying -shared"
106 echo " option with compiler."
107 LIBCUPS="libcups.so.2"
50fe7201
MS
108 LIBCUPSCGI="libcupscgi.so.1"
109 LIBCUPSDRIVER="libcupsdriver.so.1"
ef416fc2 110 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
111 LIBCUPSMIME="libcupsmime.so.1"
112 LIBCUPSPPDC="libcupsppdc.so.1"
ef416fc2 113 DSO="\$(CC)"
50fe7201 114 DSOXX="\$(CXX)"
f301802f 115 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
ef416fc2 116 ;;
117 esac
118else
119 PICFLAG=0
120 LIBCUPS="libcups.a"
50fe7201
MS
121 LIBCUPSCGI="libcupscgi.a"
122 LIBCUPSDRIVER="libcupsdriver.a"
ef416fc2 123 LIBCUPSIMAGE="libcupsimage.a"
50fe7201
MS
124 LIBCUPSMIME="libcupsmime.a"
125 LIBCUPSPPDC="libcupsppdc.a"
ef416fc2 126 DSO=":"
50fe7201 127 DSOXX=":"
ef416fc2 128fi
129
f301802f 130# 32-bit and 64-bit libraries need variations of the standard
131# DSOFLAGS...
132DSO32FLAGS="$DSOFLAGS"
133DSO64FLAGS="$DSOFLAGS"
134
ef416fc2 135AC_SUBST(DSO)
50fe7201 136AC_SUBST(DSOXX)
ef416fc2 137AC_SUBST(DSOFLAGS)
f301802f 138AC_SUBST(DSO32FLAGS)
139AC_SUBST(DSO64FLAGS)
ef416fc2 140AC_SUBST(LIBCUPS)
50fe7201
MS
141AC_SUBST(LIBCUPSCGI)
142AC_SUBST(LIBCUPSDRIVER)
ef416fc2 143AC_SUBST(LIBCUPSIMAGE)
50fe7201
MS
144AC_SUBST(LIBCUPSMIME)
145AC_SUBST(LIBCUPSPPDC)
ef416fc2 146
147if test x$enable_shared = xno; then
148 LINKCUPS="../cups/libcups.a"
149 LINKCUPSIMAGE="../filter/libcupsimage.a"
150else
151 if test $uname = AIX; then
152 LINKCUPS="-lcups_s"
153 LINKCUPSIMAGE="-lcupsimage_s"
154 else
155 LINKCUPS="-lcups"
156 LINKCUPSIMAGE="-lcupsimage"
157 fi
158fi
159
160AC_SUBST(LINKCUPS)
161AC_SUBST(LINKCUPSIMAGE)
162
163dnl Update libraries for DSOs...
164EXPORT_LDFLAGS=""
165
166if test "$DSO" != ":"; then
167 # When using DSOs the image libraries are linked to libcupsimage.so
168 # rather than to the executables. This makes things smaller if you
169 # are using any static libraries, and it also allows us to distribute
170 # a single DSO rather than a bunch...
ed486911 171 DSOLIBS="\$(LIBTIFF) \$(LIBPNG) \$(LIBJPEG) \$(LIBZ)"
ef416fc2 172 IMGLIBS=""
173
f301802f 174 # Tell the run-time linkers where to find a DSO. Some platforms
175 # need this option, even when the library is installed in a
176 # standard location...
ef416fc2 177 case $uname in
178 HP-UX*)
f301802f 179 # HP-UX needs the path, even for /usr/lib...
b86bc4cf 180 case "$uarch" in
181 ia64)
182 DSOFLAGS="-Wl,+s,+b,$libdir $DSOFLAGS"
183 DSO32FLAGS="-Wl,+s,+b,$LIB32DIR $DSO32FLAGS"
184 DSO64FLAGS="-Wl,+s,+b,$LIB64DIR $DSO64FLAGS"
185 ;;
186 *)
187 DSOFLAGS="+s +b $libdir $DSOFLAGS"
188 DSO32FLAGS="+s +b $LIB32DIR $DSO32FLAGS"
189 DSO64FLAGS="+s +b $LIB64DIR $DSO64FLAGS"
190 ;;
191 esac
ed486911 192 LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
193 EXPORT_LDFLAGS="-Wl,+s,+b,$libdir"
f301802f 194 ;;
ef416fc2 195 SunOS*)
f301802f 196 # Solaris...
197 if test $exec_prefix != /usr; then
ed486911 198 DSOFLAGS="-R$libdir $DSOFLAGS"
199 DSO32FLAGS="-R$LIB32DIR $DSO32FLAGS"
200 DSO64FLAGS="-R$LIB64DIR $DSO64FLAGS"
201 LDFLAGS="$LDFLAGS -R$libdir"
202 EXPORT_LDFLAGS="-R$libdir"
f301802f 203 fi
204 ;;
ef416fc2 205 *BSD*)
f301802f 206 # *BSD...
207 if test $exec_prefix != /usr; then
ed486911 208 DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
209 DSO32FLAGS="-Wl,-R$LIB32DIR $DSO32FLAGS"
210 DSO64FLAGS="-Wl,-R$LIB64DIR $DSO64FLAGS"
211 LDFLAGS="$LDFLAGS -Wl,-R$libdir"
212 EXPORT_LDFLAGS="-Wl,-R$libdir"
f301802f 213 fi
214 ;;
215 IRIX | Linux | GNU)
216 # IRIX, Linux, and HURD...
217 if test $exec_prefix != /usr; then
ed486911 218 DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
219 DSO32FLAGS="-Wl,-rpath,$LIB32DIR $DSO32FLAGS"
220 DSO64FLAGS="-Wl,-rpath,$LIB64DIR $DSO64FLAGS"
221 LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
222 EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
f301802f 223 fi
224 ;;
ef416fc2 225 esac
226else
227 DSOLIBS=""
ed486911 228 IMGLIBS="\$(LIBTIFF) \$(LIBPNG) \$(LIBJPEG) \$(LIBZ)"
ef416fc2 229fi
230
231AC_SUBST(DSOLIBS)
232AC_SUBST(IMGLIBS)
233AC_SUBST(EXPORT_LDFLAGS)
234
235dnl
bc44d920 236dnl End of "$Id: cups-sharedlibs.m4 6649 2007-07-11 21:46:42Z mike $".
ef416fc2 237dnl