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