]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-sharedlibs.m4
<rdar://problem/5792631> dependency cycle in cups-144 / PrintingCore-250 / Applicatio...
[thirdparty/cups.git] / config-scripts / cups-sharedlibs.m4
1 dnl
2 dnl "$Id: cups-sharedlibs.m4 6649 2007-07-11 21:46:42Z mike $"
3 dnl
4 dnl Shared library support for the Common UNIX Printing System (CUPS).
5 dnl
6 dnl Copyright 2007-2008 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, [ --enable-shared turn on shared libraries, default=yes])
20
21 if test x$enable_shared != xno; then
22 case "$uname" in
23 SunOS* | UNIX_S*)
24 LIBCUPS="libcups.so.2"
25 LIBCUPSCGI="libcupscgi.so.1"
26 LIBCUPSDRIVER="libcupsdriver.so.1"
27 LIBCUPSIMAGE="libcupsimage.so.2"
28 LIBCUPSMIME="libcupsmime.so.1"
29 LIBCUPSPPDC="libcupsppdc.so.1"
30 DSO="\$(CC)"
31 DSOXX="\$(CXX)"
32 DSOFLAGS="$DSOFLAGS -Wl,-h,\`basename \$@\` -G \$(OPTIM)"
33 ;;
34 HP-UX*)
35 case "$uarch" in
36 ia64)
37 LIBCUPS="libcups.so.2"
38 LIBCUPSCGI="libcupscgi.so.1"
39 LIBCUPSDRIVER="libcupsdriver.so.1"
40 LIBCUPSIMAGE="libcupsimage.so.2"
41 LIBCUPSMIME="libcupsmime.so.1"
42 LIBCUPSPPDC="libcupsppdc.so.1"
43 DSO="\$(CC)"
44 DSOXX="\$(CXX)"
45 DSOFLAGS="$DSOFLAGS -Wl,-b,-z,+h,\`basename \$@\`"
46 ;;
47 *)
48 LIBCUPS="libcups.sl.2"
49 LIBCUPSCGI="libcupscgi.sl.1"
50 LIBCUPSDRIVER="libcupsdriver.sl.1"
51 LIBCUPSIMAGE="libcupsimage.sl.2"
52 LIBCUPSMIME="libcupsmime.sl.1"
53 LIBCUPSPPDC="libcupsppdc.sl.1"
54 DSO="\$(LD)"
55 DSOXX="\$(LD)"
56 DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
57 ;;
58 esac
59 ;;
60 IRIX)
61 LIBCUPS="libcups.so.2"
62 LIBCUPSCGI="libcupscgi.so.1"
63 LIBCUPSDRIVER="libcupsdriver.so.1"
64 LIBCUPSIMAGE="libcupsimage.so.2"
65 LIBCUPSMIME="libcupsmime.so.1"
66 LIBCUPSPPDC="libcupsppdc.so.1"
67 DSO="\$(CC)"
68 DSOXX="\$(CXX)"
69 DSOFLAGS="$DSOFLAGS -set_version,sgi2.6,-soname,\`basename \$@\` -shared \$(OPTIM)"
70 ;;
71 OSF1* | Linux | GNU | *BSD*)
72 LIBCUPS="libcups.so.2"
73 LIBCUPSCGI="libcupscgi.so.1"
74 LIBCUPSDRIVER="libcupsdriver.so.1"
75 LIBCUPSIMAGE="libcupsimage.so.2"
76 LIBCUPSMIME="libcupsmime.so.1"
77 LIBCUPSPPDC="libcupsppdc.so.1"
78 DSO="\$(CC)"
79 DSOXX="\$(CXX)"
80 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
81 ;;
82 Darwin*)
83 LIBCUPS="libcups.2.dylib"
84 LIBCUPSCGI="libcupscgi.1.dylib"
85 LIBCUPSDRIVER="libcupsdriver.1.dylib"
86 LIBCUPSIMAGE="libcupsimage.2.dylib"
87 LIBCUPSMIME="libcupsmime.1.dylib"
88 LIBCUPSPPDC="libcupsppdc.1.dylib"
89 DSO="\$(CC)"
90 DSOXX="\$(CXX)"
91 DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc"
92 ;;
93 AIX*)
94 LIBCUPS="libcups_s.a"
95 LIBCUPSCGI="libcupscgi_s.a"
96 LIBCUPSDRIVER="libcupsdriver_s.a"
97 LIBCUPSIMAGE="libcupsimage_s.a"
98 LIBCUPSMIME="libcupsmime_s.a"
99 LIBCUPSPPDC="libcupsppdc_s.a"
100 DSO="\$(CC)"
101 DSOXX="\$(CXX)"
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"
108 LIBCUPSCGI="libcupscgi.so.1"
109 LIBCUPSDRIVER="libcupsdriver.so.1"
110 LIBCUPSIMAGE="libcupsimage.so.2"
111 LIBCUPSMIME="libcupsmime.so.1"
112 LIBCUPSPPDC="libcupsppdc.so.1"
113 DSO="\$(CC)"
114 DSOXX="\$(CXX)"
115 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
116 ;;
117 esac
118 else
119 PICFLAG=0
120 LIBCUPS="libcups.a"
121 LIBCUPSCGI="libcupscgi.a"
122 LIBCUPSDRIVER="libcupsdriver.a"
123 LIBCUPSIMAGE="libcupsimage.a"
124 LIBCUPSMIME="libcupsmime.a"
125 LIBCUPSPPDC="libcupsppdc.a"
126 DSO=":"
127 DSOXX=":"
128 fi
129
130 # 32-bit and 64-bit libraries need variations of the standard
131 # DSOFLAGS...
132 DSO32FLAGS="$DSOFLAGS"
133 DSO64FLAGS="$DSOFLAGS"
134
135 AC_SUBST(DSO)
136 AC_SUBST(DSOXX)
137 AC_SUBST(DSOFLAGS)
138 AC_SUBST(DSO32FLAGS)
139 AC_SUBST(DSO64FLAGS)
140 AC_SUBST(LIBCUPS)
141 AC_SUBST(LIBCUPSCGI)
142 AC_SUBST(LIBCUPSDRIVER)
143 AC_SUBST(LIBCUPSIMAGE)
144 AC_SUBST(LIBCUPSMIME)
145 AC_SUBST(LIBCUPSPPDC)
146
147 if test x$enable_shared = xno; then
148 LINKCUPS="../cups/libcups.a"
149 LINKCUPSIMAGE="../filter/libcupsimage.a"
150 else
151 if test $uname = AIX; then
152 LINKCUPS="-lcups_s"
153 LINKCUPSIMAGE="-lcupsimage_s"
154 else
155 LINKCUPS="-lcups"
156 LINKCUPSIMAGE="-lcupsimage"
157 fi
158 fi
159
160 AC_SUBST(LINKCUPS)
161 AC_SUBST(LINKCUPSIMAGE)
162
163 dnl Update libraries for DSOs...
164 EXPORT_LDFLAGS=""
165
166 if 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...
171 DSOLIBS="\$(LIBTIFF) \$(LIBPNG) \$(LIBJPEG) \$(LIBZ)"
172 IMGLIBS=""
173
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...
177 case $uname in
178 HP-UX*)
179 # HP-UX needs the path, even for /usr/lib...
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
192 LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
193 EXPORT_LDFLAGS="-Wl,+s,+b,$libdir"
194 ;;
195 SunOS*)
196 # Solaris...
197 if test $exec_prefix != /usr; then
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"
203 fi
204 ;;
205 *BSD*)
206 # *BSD...
207 if test $exec_prefix != /usr; then
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"
213 fi
214 ;;
215 IRIX | Linux | GNU)
216 # IRIX, Linux, and HURD...
217 if test $exec_prefix != /usr; then
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"
223 fi
224 ;;
225 esac
226 else
227 DSOLIBS=""
228 IMGLIBS="\$(LIBTIFF) \$(LIBPNG) \$(LIBJPEG) \$(LIBZ)"
229 fi
230
231 AC_SUBST(DSOLIBS)
232 AC_SUBST(IMGLIBS)
233 AC_SUBST(EXPORT_LDFLAGS)
234
235 dnl
236 dnl End of "$Id: cups-sharedlibs.m4 6649 2007-07-11 21:46:42Z mike $".
237 dnl