]> git.ipfire.org Git - thirdparty/cups.git/blob - ppdc/Makefile
34f8a61e084f794e75e10eb8f1543efdaa5ac71d
[thirdparty/cups.git] / ppdc / Makefile
1 #
2 # "$Id$"
3 #
4 # Makefile for the CUPS PPD Compiler.
5 #
6 # Copyright 2007-2008 by Apple Inc.
7 # Copyright 2002-2006 by Easy Software Products.
8 #
9 # These coded instructions, statements, and computer programs are the
10 # property of Apple Inc. and are protected by Federal copyright
11 # law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 # which should have been included with this file. If this file is
13 # file is missing or damaged, see the license at "http://www.cups.org/".
14 #
15
16 #
17 # Include standard definitions...
18 #
19
20 include ../Makedefs
21
22
23 #
24 # Object files...
25 #
26
27 LIBOBJS = \
28 ppdc-array.o \
29 ppdc-attr.o \
30 ppdc-catalog.o \
31 ppdc-choice.o \
32 ppdc-constraint.o \
33 ppdc-driver.o \
34 ppdc-file.o \
35 ppdc-filter.o \
36 ppdc-font.o \
37 ppdc-group.o \
38 ppdc-import.o \
39 ppdc-mediasize.o \
40 ppdc-message.o \
41 ppdc-option.o \
42 ppdc-profile.o \
43 ppdc-shared.o \
44 ppdc-source.o \
45 ppdc-string.o \
46 ppdc-variable.o
47 OBJS = \
48 $(LIBOBJS) \
49 ppdc.o \
50 ppdhtml.o \
51 ppdi.o \
52 ppdmerge.o \
53 ppdpo.o \
54 testcatalog.o
55 LIBTARGETS = \
56 $(LIBCUPSPPDC) \
57 libcupsppdc.a \
58 ppdc-static
59 TARGETS = \
60 $(LIBTARGETS) \
61 ppdc \
62 ppdhtml \
63 ppdi \
64 ppdmerge \
65 ppdpo \
66 testcatalog
67
68
69 #
70 # Make everything...
71 #
72
73 all: $(TARGETS)
74
75
76 #
77 # Make library targets...
78 #
79
80 libs: $(LIBTARGETS)
81
82
83 #
84 # Clean everything...
85 #
86
87 clean:
88 $(RM) $(OBJS) core
89 $(RM) *.bak *.bck core.*
90 $(RM) $(TARGETS)
91 $(RM) -r ppd
92 $(RM) test.drv
93 $(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
94
95
96 #
97 # Update dependencies...
98 #
99
100 depend:
101 makedepend -Y -I.. -fDependencies $(OBJS:.o=.cxx) >/dev/null 2>&1
102
103
104 #
105 # Install all targets...
106 #
107
108 install: all install-data install-headers install-libs install-exec
109
110
111 #
112 # Install data files...
113 #
114
115 install-data:
116 $(INSTALL_DIR) $(DATADIR)/drv
117 $(INSTALL_DATA) sample.drv $(DATADIR)/drv
118
119
120 #
121 # Install programs...
122 #
123
124 install-exec:
125 echo Installing PPD compiler programs...
126 $(INSTALL_DIR) $(BINDIR)
127 $(INSTALL_BIN) ppdc $(BINDIR)
128 $(INSTALL_BIN) ppdhtml $(BINDIR)
129 $(INSTALL_BIN) ppdi $(BINDIR)
130 $(INSTALL_BIN) ppdmerge $(BINDIR)
131 $(INSTALL_BIN) ppdpo $(BINDIR)
132 if test "x$(SYMROOT)" != "x"; then \
133 $(INSTALL_DIR) $(SYMROOT); \
134 for file in $(TARGETS); do \
135 cp $$file $(SYMROOT); \
136 done \
137 fi
138
139
140 #
141 # Install headers...
142 #
143
144 install-headers:
145 echo Installing header files in $(INCLUDEDIR)/cups...
146 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
147 $(INSTALL_DATA) ppdc.h $(INCLUDEDIR)/cups
148
149
150 #
151 # Install libraries...
152 #
153
154 install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
155 echo Installing libraries in $(LIBDIR)...
156 $(INSTALL_DIR) -m 755 $(LIBDIR)
157 $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR)
158 if test $(LIBCUPSPPDC) = "libcupsppdc.so.1" -o $(LIBCUPSPPDC) = "libcupsppdc.sl.1"; then \
159 $(RM) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
160 $(LN) $(LIBCUPSPPDC) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
161 fi
162 if test $(LIBCUPSPPDC) = "libcupsppdc.1.dylib"; then \
163 $(RM) $(LIBDIR)/libcupsppdc.dylib; \
164 $(LN) $(LIBCUPSPPDC) $(LIBDIR)/libcupsppdc.dylib; \
165 fi
166 if test "x$(SYMROOT)" != "x"; then \
167 $(INSTALL_DIR) $(SYMROOT); \
168 cp $(LIBCUPSPPDC) $(SYMROOT); \
169 fi
170
171 installstatic:
172 $(INSTALL_DIR) -m 755 $(LIBDIR)
173 $(INSTALL_LIB) libcupsppdc.a $(LIBDIR)
174 $(RANLIB) $(LIBDIR)/libcupsppdc.a
175
176
177 #
178 # Uninstall...
179 #
180
181 uninstall:
182 $(RM) $(BINDIR)/ppdc
183 $(RM) $(BINDIR)/ppdhtml
184 $(RM) $(BINDIR)/ppdi
185 $(RM) $(BINDIR)/ppdmerge
186 $(RM) $(BINDIR)/ppdpo
187 $(RM) $(DATADIR)/drv/sample.drv
188 $(RMDIR) $(DATADIR)/drv
189 $(RM) $(LIBDIR)/libcupsppdc.1.dylib
190 $(RM) $(LIBDIR)/libcupsppdc.a
191 $(RM) $(LIBDIR)/libcupsppdc.dylib
192 $(RM) $(LIBDIR)/libcupsppdc_s.a
193 $(RM) $(LIBDIR)/libcupsppdc.sl
194 $(RM) $(LIBDIR)/libcupsppdc.sl.1
195 $(RM) $(LIBDIR)/libcupsppdc.so
196 $(RM) $(LIBDIR)/libcupsppdc.so.1
197 -$(RMDIR) $(LIBDIR)
198 $(RM) $(INCLUDEDIR)/cups/ppdc.h
199 -$(RMDIR) $(INCLUDEDIR)/cups
200
201
202 #
203 # Automatic API help files...
204 #
205
206 apihelp:
207 mxmldoc --section "Programming" \
208 --title "PPD Compiler API" \
209 --css ../doc/cups-printable.css \
210 --header api-ppdc.header --intro api-ppdc.shtml \
211 ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
212
213 framedhelp:
214 mxmldoc --framed api-ppdc \
215 --section "Programming" \
216 --title "PPD Compiler API" \
217 --css ../doc/cups-printable.css \
218 --header api-ppdc.header --intro api-ppdc.shtml \
219 ppdc.h $(LIBOBJS:.o=.cxx)
220
221
222 #
223 # ppdc, the PPD compiler.
224 #
225
226 ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
227 echo Linking $@...
228 $(CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
229
230
231 ppdc-static: ppdc.o libcupsppdc.a ../cups/libcups.a foo.drv foo-fr.po
232 echo Linking $@...
233 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
234 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
235 echo Testing PPD compiler...
236 ./ppdc-static -l en,fr -I ../data foo.drv
237 ./ppdc-static -l en,fr -z -I ../data foo.drv
238
239
240 #
241 # ppdhtml, the PPD to HTML utility.
242 #
243
244 ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
245 echo Linking $@...
246 $(CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
247
248
249 #
250 # ppdi, import PPD files.
251 #
252
253 ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
254 echo Linking $@...
255 $(CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
256
257
258 #
259 # ppdmerge, merge PPD files.
260 #
261
262 ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
263 echo Linking $@...
264 $(CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS)
265
266
267 #
268 # ppdpo, create message catalog files.
269 #
270
271 ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
272 echo Linking $@...
273 $(CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
274
275
276 #
277 # testcatalog, test ppdcCatalog class.
278 #
279
280 testcatalog: testcatalog.o libcupsppdc.a ../cups/libcups.a
281 echo Linking $@...
282 $(CXX) $(LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \
283 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
284
285
286 #
287 # libcupsppdc.so.1, libcupsppdc.sl.1
288 #
289
290 libcupsppdc.so.1 libcupsppdc.sl.1: $(LIBOBJS)
291 echo Linking $@...
292 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
293 $(RM) `basename $@ .1`
294 $(LN) $@ `basename $@ .1`
295
296
297 #
298 # libcupsppdc.1.dylib
299 #
300
301 libcupsppdc.1.dylib: $(LIBOBJS)
302 echo Creating export list for $@...
303 nm $(LIBOBJS) | grep "T __" | awk '{print $$3}' | sort >t.exp
304 echo Linking $@...
305 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
306 -install_name $(libdir)/$@ \
307 -current_version 1.0.0 \
308 -compatibility_version 1.0.0 \
309 -exported_symbols_list t.exp \
310 $(LIBOBJS) $(LIBS)
311 $(RM) libcupsppdc.dylib t.exp
312 $(LN) $@ libcupsppdc.dylib
313
314
315 #
316 # libcupsppdc_s.a
317 #
318
319 libcupsppdc_s.a: $(LIBOBJS)
320 echo Creating $@...
321 $(DSOXX) $(DSOFLAGS) -o libcupsppdc_s.o $(LIBOBJS) $(LIBS)
322 $(RM) $@
323 $(AR) $(ARFLAGS) $@ libcupsppdc_s.o
324
325
326 #
327 # libcupsppdc.la
328 #
329
330 libcupsppdc.la: $(LIBOBJS)
331 echo Linking $@...
332 $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
333 -version-info 1:0 $(LIBS)
334
335
336 #
337 # libcupsppdc.a
338 #
339
340 libcupsppdc.a: $(LIBOBJS)
341 echo Archiving $@...
342 $(RM) $@
343 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
344 $(RANLIB) $@
345
346
347 #
348 # Include dependencies...
349 #
350
351 include Dependencies
352
353
354 #
355 # End of "$Id$".
356 #