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