]> git.ipfire.org Git - thirdparty/cups.git/blame - ppdc/Makefile
License change: Apache License, Version 2.0.
[thirdparty/cups.git] / ppdc / Makefile
CommitLineData
ac884b6a 1#
5a1d7a17 2# Makefile for the CUPS PPD Compiler.
ac884b6a 3#
105922ec 4# Copyright 2007-2017 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)
61cf44e2
MS
227 echo Generating localization strings...
228 ./genstrings >sample.c
229
230
ac884b6a
MS
231#
232# ppdc, the PPD compiler.
233#
234
50fe7201 235ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 236 echo Linking $@...
a621d151 237 $(LD_CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
238
239
6d2f911b 240ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po
ac884b6a 241 echo Linking $@...
a621d151 242 $(LD_CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
f8b3a85b 243 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
b94f7488 244 $(COMMONLIBS) $(LIBZ)
ac884b6a
MS
245 echo Testing PPD compiler...
246 ./ppdc-static -l en,fr -I ../data foo.drv
247 ./ppdc-static -l en,fr -z -I ../data foo.drv
248
249
250#
251# ppdhtml, the PPD to HTML utility.
252#
253
50fe7201 254ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 255 echo Linking $@...
a621d151 256 $(LD_CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
257
258
259#
260# ppdi, import PPD files.
261#
262
50fe7201 263ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 264 echo Linking $@...
a621d151 265 $(LD_CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
266
267
f8b3a85b 268ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
f11a948a 269 echo Linking $@...
a621d151 270 $(LD_CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \
f8b3a85b 271 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
b94f7488 272 $(COMMONLIBS) $(LIBZ)
f11a948a
MS
273 echo Testing PPD importer...
274 $(RM) -r ppd ppd2 sample-import.drv
be76a973 275 ./ppdc-static -l en -I ../data sample.drv
f11a948a 276 ./ppdi-static -I ../data -o sample-import.drv ppd/*
be76a973 277 ./ppdc-static -l en -I ../data -d ppd2 sample-import.drv
0268488e 278 if diff -r ppd ppd2 >/dev/null; then \
f11a948a
MS
279 echo PPD import OK; \
280 else \
281 echo PPD import FAILED; \
282 exit 1; \
283 fi
284
285
ac884b6a
MS
286#
287# ppdmerge, merge PPD files.
288#
289
290ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
291 echo Linking $@...
a621d151 292 $(LD_CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS)
ac884b6a
MS
293
294
295#
296# ppdpo, create message catalog files.
297#
298
50fe7201 299ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 300 echo Linking $@...
a621d151 301 $(LD_CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
302
303
4509bb49
MS
304#
305# testcatalog, test ppdcCatalog class.
306#
307
f8b3a85b 308testcatalog: testcatalog.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
4509bb49 309 echo Linking $@...
a621d151 310 $(LD_CXX) $(LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \
f8b3a85b 311 ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
b94f7488 312 $(COMMONLIBS) $(LIBZ)
4509bb49
MS
313
314
ac884b6a 315#
5a1d7a17 316# libcupsppdc.so.1
ac884b6a
MS
317#
318
5a1d7a17 319libcupsppdc.so.1: $(LIBOBJS) ../cups/$(LIBCUPS)
50fe7201 320 echo Linking $@...
38e73f87 321 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LINKCUPS)
50fe7201
MS
322 $(RM) `basename $@ .1`
323 $(LN) $@ `basename $@ .1`
324
325
50fe7201
MS
326#
327# libcupsppdc.1.dylib
328#
329
38e73f87 330libcupsppdc.1.dylib: $(LIBOBJS) ../cups/$(LIBCUPS)
8922323b 331 echo Creating export list for $@...
966773c5 332 nm -gm $(LIBOBJS) | grep "__text" | grep -v weak | awk '{print $$NF}' | sort >t.exp
50fe7201
MS
333 echo Linking $@...
334 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
335 -install_name $(libdir)/$@ \
336 -current_version 1.0.0 \
337 -compatibility_version 1.0.0 \
8922323b 338 -exported_symbols_list t.exp \
b94f7488 339 $(LIBOBJS) $(LINKCUPS) $(COMMONLIBS)
8922323b 340 $(RM) libcupsppdc.dylib t.exp
50fe7201
MS
341 $(LN) $@ libcupsppdc.dylib
342
343
50fe7201
MS
344#
345# libcupsppdc.la
346#
347
38e73f87 348libcupsppdc.la: $(LIBOBJS) ../cups/$(LIBCUPS)
50fe7201 349 echo Linking $@...
a621d151 350 $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
38e73f87 351 -version-info 1:0 $(LINKCUPS)
50fe7201
MS
352
353
354#
355# libcupsppdc.a
356#
357
358libcupsppdc.a: $(LIBOBJS)
359 echo Archiving $@...
ac884b6a 360 $(RM) $@
50fe7201 361 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
ac884b6a
MS
362 $(RANLIB) $@
363
364
365#
366# Include dependencies...
367#
368
369include Dependencies