]> git.ipfire.org Git - thirdparty/cups.git/blob - ppdc/Makefile
Merge CUPS 1.4svn-r7493.
[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 LIB32OBJS = $(LIBOBJS:.o=.32.o)
48 LIB64OBJS = $(LIBOBJS:.o=.64.o)
49 OBJS = \
50 $(LIBOBJS) \
51 $(LIB32OBJS) \
52 $(LIB64OBJS) \
53 drv.o \
54 ppdc.o \
55 ppdhtml.o \
56 ppdi.o \
57 ppdmerge.o \
58 ppdpo.o
59 TARGETS = \
60 $(LIBCUPSPPDC) \
61 $(LIB32CUPSPPDC) \
62 $(LIB64CUPSPPDC) \
63 libcupsppdc.a \
64 drv \
65 ppdc-static \
66 ppdc \
67 ppdhtml \
68 ppdi \
69 ppdmerge \
70 ppdpo
71
72
73 #
74 # Make everything...
75 #
76
77 all: $(TARGETS)
78
79
80 #
81 # Clean everything...
82 #
83
84 clean:
85 $(RM) $(OBJS) core
86 $(RM) *.bak *.bck core.*
87 $(RM) $(TARGETS)
88 $(RM) -r ppd
89 $(RM) test.drv
90 $(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
91 $(RM) -r 32bit 64bit
92
93
94 #
95 # Update dependencies...
96 #
97
98 depend:
99 touch Dependencies.tmp
100 makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
101 $(RM) Dependencies
102 cp Dependencies.tmp Dependencies
103 sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
104 sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
105 $(RM) Dependencies.tmp
106
107
108 #
109 # Install all targets...
110 #
111
112 install: all install-data install-headers install-libs install-exec
113
114
115 #
116 # Install data files...
117 #
118
119 install-data:
120 $(INSTALL_DIR) $(DATADIR)/drv
121 $(INSTALL_DATA) sample.drv $(DATADIR)/drv
122 if test `uname` = Darwin; then \
123 $(INSTALL_DIR) /Library/Printers/PPDs.drv; \
124 fi
125
126
127 #
128 # Install programs...
129 #
130
131 install-exec:
132 echo Installing PPD compiler programs...
133 $(INSTALL_DIR) $(BINDIR)
134 $(INSTALL_BIN) ppdc $(BINDIR)
135 $(INSTALL_BIN) ppdhtml $(BINDIR)
136 $(INSTALL_BIN) ppdi $(BINDIR)
137 $(INSTALL_BIN) ppdmerge $(BINDIR)
138 $(INSTALL_BIN) ppdpo $(BINDIR)
139 $(INSTALL_DIR) $(SERVERBIN)/driver
140 $(INSTALL_BIN) drv $(SERVERBIN)/driver
141 if test "x$(SYMROOT)" != "x"; then \
142 $(INSTALL_DIR) $(SYMROOT); \
143 for file in $(TARGETS); do \
144 cp $$file $(SYMROOT); \
145 done \
146 fi
147
148
149 #
150 # Install headers...
151 #
152
153 install-headers:
154 echo Installing header files in $(INCLUDEDIR)/cups...
155 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
156 $(INSTALL_DATA) ppdc.h $(INCLUDEDIR)/cups
157
158
159 #
160 # Install libraries...
161 #
162
163 install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
164 echo Installing libraries in $(LIBDIR)...
165 $(INSTALL_DIR) -m 755 $(LIBDIR)
166 $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR)
167 if test $(LIBCUPSPPDC) = "libcupsppdc.so.1" -o $(LIBCUPSPPDC) = "libcupsppdc.sl.1"; then \
168 $(RM) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
169 $(LN) $(LIBCUPSPPDC) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
170 fi
171 if test $(LIBCUPSPPDC) = "libcupsppdc.1.dylib"; then \
172 $(RM) $(LIBDIR)/libcupsppdc.dylib; \
173 $(LN) $(LIBCUPSPPDC) $(LIBDIR)/libcupsppdc.dylib; \
174 fi
175 if test "x$(SYMROOT)" != "x"; then \
176 $(INSTALL_DIR) $(SYMROOT); \
177 cp $(LIBCUPSPPDC) $(SYMROOT); \
178 fi
179
180 installstatic:
181 $(INSTALL_DIR) -m 755 $(LIBDIR)
182 $(INSTALL_LIB) libcupsppdc.a $(LIBDIR)
183 $(RANLIB) $(LIBDIR)/libcupsppdc.a
184
185 install32bit:
186 echo Installing libraries in $(LIB32DIR)...
187 $(INSTALL_DIR) -m 755 $(LIB32DIR)
188 $(INSTALL_LIB) 32bit/libcupsppdc.so.1 $(LIB32DIR)/libcupsppdc.so.1
189 $(LN) libcupsppdc.so.1 $(LIB32DIR)/libcupsppdc.so
190
191 install64bit:
192 echo Installing libraries in $(LIB64DIR)...
193 $(INSTALL_DIR) -m 755 $(LIB64DIR)
194 $(INSTALL_LIB) 64bit/libcupsppdc.so.1 $(LIB64DIR)/libcupsppdc.so.1
195 $(LN) libcupsppdc.so.1 $(LIB64DIR)/libcupsppdc.so
196
197
198 #
199 # Uninstall...
200 #
201
202 uninstall:
203 $(RM) $(BINDIR)/ppdc
204 $(RM) $(BINDIR)/ppdhtml
205 $(RM) $(BINDIR)/ppdi
206 $(RM) $(BINDIR)/ppdmerge
207 $(RM) $(BINDIR)/ppdpo
208 $(RM) $(SERVERBIN)/driver/drv
209 $(RMDIR) $(SERVERBIN)/driver
210 $(RM) $(DATADIR)/drv/sample.drv
211 $(RMDIR) $(DATADIR)/drv
212 if test `uname` = Darwin; then \
213 $(RMDIR) /Library/Printers/PPDs.drv; \
214 fi
215 $(RM) $(LIBDIR)/libcupsppdc.1.dylib
216 $(RM) $(LIBDIR)/libcupsppdc.a
217 $(RM) $(LIBDIR)/libcupsppdc.dylib
218 $(RM) $(LIBDIR)/libcupsppdc_s.a
219 $(RM) $(LIBDIR)/libcupsppdc.sl
220 $(RM) $(LIBDIR)/libcupsppdc.sl.1
221 $(RM) $(LIBDIR)/libcupsppdc.so
222 $(RM) $(LIBDIR)/libcupsppdc.so.1
223 -$(RMDIR) $(LIBDIR)
224 $(RM) $(INCLUDEDIR)/cups/ppdc.h
225 -$(RMDIR) $(INCLUDEDIR)/cups
226
227 uninstall32bit:
228 $(RM) $(LIB32DIR)/libcupsppdc.so
229 $(RM) $(LIB32DIR)/libcupsppdc.so.1
230 -$(RMDIR) $(LIB32DIR)
231
232 uninstall64bit:
233 $(RM) $(LIB64DIR)/libcupsppdc.so
234 $(RM) $(LIB64DIR)/libcupsppdc.so.1
235 -$(RMDIR) $(LIB64DIR)
236
237
238 #
239 # Automatic API help files...
240 #
241
242 apihelp:
243 mxmldoc --section "Programming" \
244 --title "PPD Compiler API" \
245 --css ../doc/cups-printable.css \
246 --header api-ppdc.header --intro api-ppdc.shtml \
247 ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
248
249 framedhelp:
250 mxmldoc --framed api-ppdc \
251 --section "Programming" \
252 --title "PPD Compiler API" \
253 --css ../doc/cups-printable.css \
254 --header api-ppdc.header --intro api-ppdc.shtml \
255 ppdc.h $(LIBOBJS:.o=.cxx)
256
257
258 #
259 # drv, the CUPS driver interface program to the PPD compiler.
260 #
261
262 drv: drv.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
263 echo Linking $@...
264 $(CXX) $(LDFLAGS) -o $@ drv.o -L. -lcupsppdc $(LIBS)
265
266
267 #
268 # ppdc, the PPD compiler.
269 #
270
271 ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
272 echo Linking $@...
273 $(CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
274
275
276 ppdc-static: ppdc.o libcupsppdc.a ../cups/libcups.a foo.drv foo-fr.po
277 echo Linking $@...
278 $(CXX) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a ../cups/libcups.a \
279 $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
280 echo Testing PPD compiler...
281 ./ppdc-static -l en,fr -I ../data foo.drv
282 ./ppdc-static -l en,fr -z -I ../data foo.drv
283
284
285 #
286 # ppdhtml, the PPD to HTML utility.
287 #
288
289 ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
290 echo Linking $@...
291 $(CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
292
293
294 #
295 # ppdi, import PPD files.
296 #
297
298 ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
299 echo Linking $@...
300 $(CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
301
302
303 #
304 # ppdmerge, merge PPD files.
305 #
306
307 ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
308 echo Linking $@...
309 $(CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS)
310
311
312 #
313 # ppdpo, create message catalog files.
314 #
315
316 ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
317 echo Linking $@...
318 $(CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
319
320
321 #
322 # libcupsppdc.so.1, libcupsppdc.sl.1
323 #
324
325 libcupsppdc.so.1 libcupsppdc.sl.1: $(LIBOBJS)
326 echo Linking $@...
327 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
328 $(RM) `basename $@ .1`
329 $(LN) $@ `basename $@ .1`
330
331
332 #
333 # 32bit/libcupsppdc.so.1
334 #
335
336 32bit/libcupsppdc.so.1: $(LIB32OBJS)
337 echo Linking 32-bit $@...
338 -mkdir 32bit
339 $(DSOXX) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
340 $(RM) 32bit/libcupsppdc.so
341 $(LN) libcupsppdc.so.1 32bit/libcupsppdc.so
342
343
344 #
345 # 64bit/libcupsppdc.so.1
346 #
347
348 64bit/libcupsppdc.so.1: $(LIB64OBJS)
349 echo Linking 64-bit $@...
350 -mkdir 64bit
351 $(DSOXX) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
352 $(RM) 64bit/libcupsppdc.so
353 $(LN) libcupsppdc.so.1 64bit/libcupsppdc.so
354
355
356 #
357 # libcupsppdc.1.dylib
358 #
359
360 libcupsppdc.1.dylib: $(LIBOBJS) libcupsppdc.exp
361 echo Linking $@...
362 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
363 -install_name $(libdir)/$@ \
364 -current_version 1.0.0 \
365 -compatibility_version 1.0.0 \
366 -exported_symbols_list libcupsppdc.exp \
367 $(LIBOBJS) $(LIBS)
368 $(RM) libcupsppdc.dylib
369 $(LN) $@ libcupsppdc.dylib
370
371
372 #
373 # libcupsppdc_s.a
374 #
375
376 libcupsppdc_s.a: $(LIBOBJS)
377 echo Creating $@...
378 $(DSOXX) $(DSOFLAGS) -o libcupsppdc_s.o $(LIBOBJS) $(LIBS)
379 $(RM) $@
380 $(AR) $(ARFLAGS) $@ libcupsppdc_s.o
381
382
383 #
384 # libcupsppdc.la
385 #
386
387 libcupsppdc.la: $(LIBOBJS)
388 echo Linking $@...
389 $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
390 -version-info 1:0 $(LIBS)
391
392
393 #
394 # libcupsppdc.a
395 #
396
397 libcupsppdc.a: $(LIBOBJS)
398 echo Archiving $@...
399 $(RM) $@
400 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
401 $(RANLIB) $@
402
403
404 #
405 # Include dependencies...
406 #
407
408 include Dependencies
409
410
411 #
412 # End of "$Id$".
413 #