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