]> git.ipfire.org Git - thirdparty/cups.git/blame - ppdc/Makefile
Merge changes from CUPS 1.7svn-r10874.
[thirdparty/cups.git] / ppdc / Makefile
CommitLineData
ac884b6a
MS
1#
2# "$Id$"
3#
4# Makefile for the CUPS PPD Compiler.
5#
12f89d24 6# Copyright 2007-2012 by Apple Inc.
ac884b6a
MS
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
20include ../Makedefs
21
22
23#
24# Object files...
25#
26
50fe7201 27LIBOBJS = \
ac884b6a
MS
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
50fe7201
MS
47OBJS = \
48 $(LIBOBJS) \
61cf44e2 49 genstrings.o \
ac884b6a
MS
50 ppdc.o \
51 ppdhtml.o \
52 ppdi.o \
53 ppdmerge.o \
4509bb49
MS
54 ppdpo.o \
55 testcatalog.o
c9fc04c6 56LIBTARGETS = \
50fe7201 57 $(LIBCUPSPPDC) \
5f64df29
MS
58 libcupsppdc.a
59UNITTARGETS = \
60 ppdc-static \
f11a948a 61 ppdi-static \
5f64df29 62 testcatalog
61cf44e2 63EXECTARGETS = \
ac884b6a
MS
64 ppdc \
65 ppdhtml \
66 ppdi \
67 ppdmerge \
5f64df29 68 ppdpo
ac884b6a 69
61cf44e2
MS
70TARGETS = \
71 $(LIBTARGETS) \
72 $(EXECTARGETS) \
73 genstrings
74
ac884b6a
MS
75
76#
77# Make everything...
78#
79
80all: $(TARGETS)
81
82
c9fc04c6
MS
83#
84# Make library targets...
85#
86
87libs: $(LIBTARGETS)
88
89
5f64df29
MS
90#
91# Make unit tests...
92#
93
94unittests: $(UNITTARGETS)
95
96
ac884b6a
MS
97#
98# Clean everything...
99#
100
101clean:
102 $(RM) $(OBJS) core
103 $(RM) *.bak *.bck core.*
5f64df29 104 $(RM) $(TARGETS) $(UNITTARGETS)
f11a948a
MS
105 $(RM) -r ppd ppd2
106 $(RM) sample-import.drv sample.c test.drv
50fe7201 107 $(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
ac884b6a
MS
108
109
110#
111# Update dependencies...
112#
113
114depend:
12f89d24 115 $(CXX) -MM $(ALL_CXXFLAGS) $(OBJS:.o=.cxx) >Dependencies
50fe7201
MS
116
117
118#
119# Install all targets...
120#
121
122install: all install-data install-headers install-libs install-exec
123
124
125#
126# Install data files...
127#
128
129install-data:
130 $(INSTALL_DIR) $(DATADIR)/drv
634763e8 131 $(INSTALL_DATA) sample.drv $(DATADIR)/drv
ac884b6a
MS
132
133
134#
50fe7201 135# Install programs...
ac884b6a
MS
136#
137
50fe7201 138install-exec:
ac884b6a
MS
139 echo Installing PPD compiler programs...
140 $(INSTALL_DIR) $(BINDIR)
61cf44e2
MS
141 for file in $(EXECTARGETS); do \
142 $(INSTALL_BIN) $$file $(BINDIR); \
143 done
50fe7201
MS
144 if test "x$(SYMROOT)" != "x"; then \
145 $(INSTALL_DIR) $(SYMROOT); \
f8b3a85b 146 for file in $(EXECTARGETS); do \
50fe7201
MS
147 cp $$file $(SYMROOT); \
148 done \
149 fi
150
151
152#
153# Install headers...
154#
155
156install-headers:
157 echo Installing header files in $(INCLUDEDIR)/cups...
158 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
159 $(INSTALL_DATA) ppdc.h $(INCLUDEDIR)/cups
160
161
162#
163# Install libraries...
164#
165
e6013cfa 166install-libs: $(INSTALLSTATIC)
50fe7201
MS
167 echo Installing libraries in $(LIBDIR)...
168 $(INSTALL_DIR) -m 755 $(LIBDIR)
169 $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR)
170 if test $(LIBCUPSPPDC) = "libcupsppdc.so.1" -o $(LIBCUPSPPDC) = "libcupsppdc.sl.1"; then \
171 $(RM) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
172 $(LN) $(LIBCUPSPPDC) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
173 fi
174 if test $(LIBCUPSPPDC) = "libcupsppdc.1.dylib"; then \
50fe7201
MS
175 $(RM) $(LIBDIR)/libcupsppdc.dylib; \
176 $(LN) $(LIBCUPSPPDC) $(LIBDIR)/libcupsppdc.dylib; \
177 fi
178 if test "x$(SYMROOT)" != "x"; then \
179 $(INSTALL_DIR) $(SYMROOT); \
180 cp $(LIBCUPSPPDC) $(SYMROOT); \
0fa6c7fa 181 dsymutil $(SYMROOT)/$(LIBCUPSPPDC); \
50fe7201
MS
182 fi
183
184installstatic:
185 $(INSTALL_DIR) -m 755 $(LIBDIR)
97c9a8d7 186 $(INSTALL_LIB) -m 755 libcupsppdc.a $(LIBDIR)
50fe7201 187 $(RANLIB) $(LIBDIR)/libcupsppdc.a
97c9a8d7 188 $(CHMOD) 555 $(LIBDIR)/libcupsppdc.a
50fe7201 189
ac884b6a
MS
190
191#
192# Uninstall...
193#
194
195uninstall:
61cf44e2
MS
196 for file in $(EXECTARGETS); do \
197 $(RM) $(BINDIR)/$$file; \
198 done
634763e8 199 $(RM) $(DATADIR)/drv/sample.drv
ac884b6a 200 $(RMDIR) $(DATADIR)/drv
50fe7201
MS
201 $(RM) $(LIBDIR)/libcupsppdc.1.dylib
202 $(RM) $(LIBDIR)/libcupsppdc.a
203 $(RM) $(LIBDIR)/libcupsppdc.dylib
204 $(RM) $(LIBDIR)/libcupsppdc_s.a
205 $(RM) $(LIBDIR)/libcupsppdc.sl
206 $(RM) $(LIBDIR)/libcupsppdc.sl.1
207 $(RM) $(LIBDIR)/libcupsppdc.so
208 $(RM) $(LIBDIR)/libcupsppdc.so.1
209 -$(RMDIR) $(LIBDIR)
210 $(RM) $(INCLUDEDIR)/cups/ppdc.h
211 -$(RMDIR) $(INCLUDEDIR)/cups
212
50fe7201
MS
213
214#
215# Automatic API help files...
216#
217
218apihelp:
219 mxmldoc --section "Programming" \
220 --title "PPD Compiler API" \
221 --css ../doc/cups-printable.css \
222 --header api-ppdc.header --intro api-ppdc.shtml \
f11a948a 223 api-ppdc.xml \
50fe7201 224 ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
f11a948a
MS
225 mxmldoc --tokens help/api-ppdc.html api-ppdc.xml >../doc/help/api-ppdc.tokens
226 $(RM) api-ppdc.xml
50fe7201
MS
227
228framedhelp:
229 mxmldoc --framed api-ppdc \
230 --section "Programming" \
231 --title "PPD Compiler API" \
232 --css ../doc/cups-printable.css \
233 --header api-ppdc.header --intro api-ppdc.shtml \
234 ppdc.h $(LIBOBJS:.o=.cxx)
ac884b6a
MS
235
236
61cf44e2
MS
237#
238# genstrings - generate GNU gettext strings.
239#
240
f8b3a85b 241genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \
61cf44e2
MS
242 sample.drv ../data/media.defs
243 echo Linking $@...
244 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
f8b3a85b 245 libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \
c168a833 246 $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
61cf44e2
MS
247 echo Generating localization strings...
248 ./genstrings >sample.c
249
250
ac884b6a
MS
251#
252# ppdc, the PPD compiler.
253#
254
50fe7201 255ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 256 echo Linking $@...
50fe7201 257 $(CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
258
259
6d2f911b 260ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po
ac884b6a 261 echo Linking $@...
c9fc04c6 262 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
f8b3a85b 263 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
c168a833 264 $(COMMONLIBS) $(LIBZ)
ac884b6a
MS
265 echo Testing PPD compiler...
266 ./ppdc-static -l en,fr -I ../data foo.drv
267 ./ppdc-static -l en,fr -z -I ../data foo.drv
268
269
270#
271# ppdhtml, the PPD to HTML utility.
272#
273
50fe7201 274ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 275 echo Linking $@...
50fe7201 276 $(CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
277
278
279#
280# ppdi, import PPD files.
281#
282
50fe7201 283ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 284 echo Linking $@...
50fe7201 285 $(CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
286
287
f8b3a85b 288ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
f11a948a
MS
289 echo Linking $@...
290 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \
f8b3a85b 291 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
f11a948a
MS
292 $(COMMONLIBS) $(LIBZ)
293 echo Testing PPD importer...
294 $(RM) -r ppd ppd2 sample-import.drv
295 ./ppdc-static -I ../data sample.drv
296 ./ppdi-static -I ../data -o sample-import.drv ppd/*
297 ./ppdc-static -I ../data -d ppd2 sample-import.drv
0268488e 298 if diff -r ppd ppd2 >/dev/null; then \
f11a948a
MS
299 echo PPD import OK; \
300 else \
301 echo PPD import FAILED; \
302 exit 1; \
303 fi
304
305
ac884b6a
MS
306#
307# ppdmerge, merge PPD files.
308#
309
310ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
311 echo Linking $@...
312 $(CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS)
313
314
315#
316# ppdpo, create message catalog files.
317#
318
50fe7201 319ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 320 echo Linking $@...
50fe7201 321 $(CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
322
323
4509bb49
MS
324#
325# testcatalog, test ppdcCatalog class.
326#
327
f8b3a85b 328testcatalog: testcatalog.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
4509bb49
MS
329 echo Linking $@...
330 $(CXX) $(LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \
f8b3a85b 331 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
c168a833 332 $(COMMONLIBS) $(LIBZ)
4509bb49
MS
333
334
ac884b6a 335#
50fe7201 336# libcupsppdc.so.1, libcupsppdc.sl.1
ac884b6a
MS
337#
338
38e73f87 339libcupsppdc.so.1 libcupsppdc.sl.1: $(LIBOBJS) ../cups/$(LIBCUPS)
50fe7201 340 echo Linking $@...
38e73f87 341 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LINKCUPS)
50fe7201
MS
342 $(RM) `basename $@ .1`
343 $(LN) $@ `basename $@ .1`
344
345
50fe7201
MS
346#
347# libcupsppdc.1.dylib
348#
349
38e73f87 350libcupsppdc.1.dylib: $(LIBOBJS) ../cups/$(LIBCUPS)
8922323b
MS
351 echo Creating export list for $@...
352 nm $(LIBOBJS) | grep "T __" | awk '{print $$3}' | sort >t.exp
50fe7201
MS
353 echo Linking $@...
354 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
355 -install_name $(libdir)/$@ \
356 -current_version 1.0.0 \
357 -compatibility_version 1.0.0 \
8922323b 358 -exported_symbols_list t.exp \
38e73f87 359 $(LIBOBJS) $(LINKCUPS)
8922323b 360 $(RM) libcupsppdc.dylib t.exp
50fe7201
MS
361 $(LN) $@ libcupsppdc.dylib
362
363
364#
365# libcupsppdc_s.a
366#
367
38e73f87 368libcupsppdc_s.a: $(LIBOBJS) ../cups/$(LIBCUPS)
ac884b6a 369 echo Creating $@...
38e73f87 370 $(DSOXX) $(DSOFLAGS) -o libcupsppdc_s.o $(LIBOBJS) $(LINKCUPS)
50fe7201
MS
371 $(RM) $@
372 $(AR) $(ARFLAGS) $@ libcupsppdc_s.o
373
374
375#
376# libcupsppdc.la
377#
378
38e73f87 379libcupsppdc.la: $(LIBOBJS) ../cups/$(LIBCUPS)
50fe7201
MS
380 echo Linking $@...
381 $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
38e73f87 382 -version-info 1:0 $(LINKCUPS)
50fe7201
MS
383
384
385#
386# libcupsppdc.a
387#
388
389libcupsppdc.a: $(LIBOBJS)
390 echo Archiving $@...
ac884b6a 391 $(RM) $@
50fe7201 392 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
ac884b6a
MS
393 $(RANLIB) $@
394
395
396#
397# Include dependencies...
398#
399
400include Dependencies
401
402
403#
404# End of "$Id$".
405#