]> git.ipfire.org Git - thirdparty/cups.git/blob - ppdc/Makefile
Greatly simplify the man page handling.
[thirdparty/cups.git] / ppdc / Makefile
1 #
2 # Makefile for the CUPS PPD Compiler.
3 #
4 # Copyright © 2007-2019 by Apple Inc.
5 # Copyright © 2002-2006 by Easy Software Products.
6 #
7 # Licensed under Apache License v2.0. See the file "LICENSE" for more
8 # information.
9 #
10
11 #
12 # Include standard definitions...
13 #
14
15 include ../Makedefs
16
17
18 #
19 # Object files...
20 #
21
22 LIBOBJS = \
23 ppdc-array.o \
24 ppdc-attr.o \
25 ppdc-catalog.o \
26 ppdc-choice.o \
27 ppdc-constraint.o \
28 ppdc-driver.o \
29 ppdc-file.o \
30 ppdc-filter.o \
31 ppdc-font.o \
32 ppdc-group.o \
33 ppdc-import.o \
34 ppdc-mediasize.o \
35 ppdc-message.o \
36 ppdc-option.o \
37 ppdc-profile.o \
38 ppdc-shared.o \
39 ppdc-source.o \
40 ppdc-string.o \
41 ppdc-variable.o
42 OBJS = \
43 $(LIBOBJS) \
44 genstrings.o \
45 ppdc.o \
46 ppdhtml.o \
47 ppdi.o \
48 ppdmerge.o \
49 ppdpo.o \
50 testcatalog.o
51 LIBTARGETS = \
52 libcupsppdc.a
53 UNITTARGETS = \
54 ppdc-static \
55 ppdi-static \
56 testcatalog
57 EXECTARGETS = \
58 ppdc \
59 ppdhtml \
60 ppdi \
61 ppdmerge \
62 ppdpo
63
64 TARGETS = \
65 $(LIBTARGETS) \
66 $(EXECTARGETS) \
67 $(LOCALTARGET)
68
69
70 #
71 # Make everything...
72 #
73
74 all: $(TARGETS)
75
76
77 #
78 # Make library targets...
79 #
80
81 libs:
82
83
84 #
85 # Make unit tests...
86 #
87
88 unittests: $(UNITTARGETS)
89
90
91 #
92 # Clean everything...
93 #
94
95 clean:
96 $(RM) $(OBJS) core
97 $(RM) *.bak *.bck core.*
98 $(RM) $(TARGETS) $(UNITTARGETS) genstrings
99 $(RM) -r ppd ppd2
100 $(RM) sample-import.drv sample.c test.drv
101
102
103 #
104 # Update dependencies...
105 #
106
107 depend:
108 $(CXX) -MM $(ALL_CXXFLAGS) $(OBJS:.o=.cxx) >Dependencies
109
110
111 #
112 # Install all targets...
113 #
114
115 install: all install-data install-headers install-libs install-exec
116
117
118 #
119 # Install data files...
120 #
121
122 install-data:
123 $(INSTALL_DIR) $(DATADIR)/drv
124 $(INSTALL_DATA) sample.drv $(DATADIR)/drv
125
126
127 #
128 # Install programs...
129 #
130
131 install-exec:
132 echo Installing PPD compiler programs...
133 $(INSTALL_DIR) $(BINDIR)
134 for file in $(EXECTARGETS); do \
135 $(INSTALL_BIN) $$file $(BINDIR); \
136 done
137 if test "x$(SYMROOT)" != "x"; then \
138 $(INSTALL_DIR) $(SYMROOT); \
139 for file in $(EXECTARGETS); do \
140 cp $$file $(SYMROOT); \
141 dsymutil $(SYMROOT)/$$file; \
142 done \
143 fi
144
145
146 #
147 # Install headers...
148 #
149
150 install-headers:
151
152
153 #
154 # Install libraries...
155 #
156
157 install-libs:
158
159
160 #
161 # Uninstall...
162 #
163
164 uninstall:
165 for file in $(EXECTARGETS); do \
166 $(RM) $(BINDIR)/$$file; \
167 done
168 $(RM) $(DATADIR)/drv/sample.drv
169 $(RMDIR) $(DATADIR)/drv
170
171
172 #
173 # Local programs (not built when cross-compiling...)
174 #
175
176 local: genstrings
177
178
179 #
180 # genstrings - generate GNU gettext strings.
181 #
182
183 genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \
184 sample.drv ../data/media.defs
185 echo Linking $@...
186 $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o genstrings genstrings.o \
187 libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \
188 $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
189 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
190 echo Generating localization strings...
191 ./genstrings >sample.c
192
193
194 #
195 # ppdc, the PPD compiler.
196 #
197
198 ppdc: ppdc.o libcupsppdc.a ../cups/$(LIBCUPS)
199 echo Linking $@...
200 $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdc.o libcupsppdc.a $(LIBS)
201 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
202
203
204 ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po
205 echo Linking $@...
206 $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
207 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
208 $(COMMONLIBS) $(LIBZ)
209 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
210 echo Testing PPD compiler...
211 ./ppdc-static -l en,fr -I ../data foo.drv
212 ./ppdc-static -l en,fr -z -I ../data foo.drv
213
214
215 #
216 # ppdhtml, the PPD to HTML utility.
217 #
218
219 ppdhtml: ppdhtml.o libcupsppdc.a ../cups/$(LIBCUPS)
220 echo Linking $@...
221 $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdhtml.o libcupsppdc.a $(LIBS)
222 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
223
224
225 #
226 # ppdi, import PPD files.
227 #
228
229 ppdi: ppdi.o libcupsppdc.a ../cups/$(LIBCUPS)
230 echo Linking $@...
231 $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdi.o libcupsppdc.a $(LIBS)
232 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
233
234
235 ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
236 echo Linking $@...
237 $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \
238 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
239 $(COMMONLIBS) $(LIBZ)
240 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
241 echo Testing PPD importer...
242 $(RM) -r ppd ppd2 sample-import.drv
243 ./ppdc-static -l en -I ../data sample.drv
244 ./ppdi-static -I ../data -o sample-import.drv ppd/*
245 ./ppdc-static -l en -I ../data -d ppd2 sample-import.drv
246 if diff -r ppd ppd2 >/dev/null; then \
247 echo PPD import OK; \
248 else \
249 echo PPD import FAILED; \
250 exit 1; \
251 fi
252
253
254 #
255 # ppdmerge, merge PPD files.
256 #
257
258 ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
259 echo Linking $@...
260 $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdmerge.o $(LIBS)
261 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
262
263
264 #
265 # ppdpo, create message catalog files.
266 #
267
268 ppdpo: ppdpo.o libcupsppdc.a ../cups/$(LIBCUPS)
269 echo Linking $@...
270 $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdpo.o libcupsppdc.a $(LIBS)
271 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
272
273
274 #
275 # testcatalog, test ppdcCatalog class.
276 #
277
278 testcatalog: testcatalog.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
279 echo Linking $@...
280 $(LD_CXX) $(ALL_LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \
281 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
282 $(COMMONLIBS) $(LIBZ)
283 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
284
285
286 #
287 # libcupsppdc.a
288 #
289
290 libcupsppdc.a: $(LIBOBJS)
291 echo Archiving $@...
292 $(RM) $@
293 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
294 $(RANLIB) $@
295
296
297 #
298 # Include dependencies...
299 #
300
301 include Dependencies