]> git.ipfire.org Git - thirdparty/cups.git/blame - ppdc/Makefile
Merge CUPS 1.4svn-r8052 (tentative 1.4b1)
[thirdparty/cups.git] / ppdc / Makefile
CommitLineData
ac884b6a
MS
1#
2# "$Id$"
3#
4# Makefile for the CUPS PPD Compiler.
5#
6# Copyright 2007-2008 by Apple Inc.
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 \
61 testcatalog
61cf44e2 62EXECTARGETS = \
ac884b6a
MS
63 ppdc \
64 ppdhtml \
65 ppdi \
66 ppdmerge \
5f64df29 67 ppdpo
ac884b6a 68
61cf44e2
MS
69TARGETS = \
70 $(LIBTARGETS) \
71 $(EXECTARGETS) \
72 genstrings
73
ac884b6a
MS
74
75#
76# Make everything...
77#
78
79all: $(TARGETS)
80
81
c9fc04c6
MS
82#
83# Make library targets...
84#
85
86libs: $(LIBTARGETS)
87
88
5f64df29
MS
89#
90# Make unit tests...
91#
92
93unittests: $(UNITTARGETS)
94
95
ac884b6a
MS
96#
97# Clean everything...
98#
99
100clean:
101 $(RM) $(OBJS) core
102 $(RM) *.bak *.bck core.*
5f64df29 103 $(RM) $(TARGETS) $(UNITTARGETS)
ac884b6a 104 $(RM) -r ppd
61cf44e2 105 $(RM) sample.c test.drv
50fe7201 106 $(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
ac884b6a
MS
107
108
109#
110# Update dependencies...
111#
112
113depend:
bdd6c45b 114 makedepend -Y -I.. -fDependencies $(OBJS:.o=.cxx) >/dev/null 2>&1
50fe7201
MS
115
116
117#
118# Install all targets...
119#
120
121install: all install-data install-headers install-libs install-exec
122
123
124#
125# Install data files...
126#
127
128install-data:
129 $(INSTALL_DIR) $(DATADIR)/drv
634763e8 130 $(INSTALL_DATA) sample.drv $(DATADIR)/drv
ac884b6a
MS
131
132
133#
50fe7201 134# Install programs...
ac884b6a
MS
135#
136
50fe7201 137install-exec:
ac884b6a
MS
138 echo Installing PPD compiler programs...
139 $(INSTALL_DIR) $(BINDIR)
61cf44e2
MS
140 for file in $(EXECTARGETS); do \
141 $(INSTALL_BIN) $$file $(BINDIR); \
142 done
50fe7201
MS
143 if test "x$(SYMROOT)" != "x"; then \
144 $(INSTALL_DIR) $(SYMROOT); \
61cf44e2 145 for file in $(EXECTARGETS) $(LIBTARGETS); do \
50fe7201
MS
146 cp $$file $(SYMROOT); \
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
165install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
166 echo Installing libraries in $(LIBDIR)...
167 $(INSTALL_DIR) -m 755 $(LIBDIR)
168 $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR)
169 if test $(LIBCUPSPPDC) = "libcupsppdc.so.1" -o $(LIBCUPSPPDC) = "libcupsppdc.sl.1"; then \
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); \
180 fi
181
182installstatic:
183 $(INSTALL_DIR) -m 755 $(LIBDIR)
184 $(INSTALL_LIB) libcupsppdc.a $(LIBDIR)
185 $(RANLIB) $(LIBDIR)/libcupsppdc.a
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
201 $(RM) $(LIBDIR)/libcupsppdc_s.a
202 $(RM) $(LIBDIR)/libcupsppdc.sl
203 $(RM) $(LIBDIR)/libcupsppdc.sl.1
204 $(RM) $(LIBDIR)/libcupsppdc.so
205 $(RM) $(LIBDIR)/libcupsppdc.so.1
206 -$(RMDIR) $(LIBDIR)
207 $(RM) $(INCLUDEDIR)/cups/ppdc.h
208 -$(RMDIR) $(INCLUDEDIR)/cups
209
50fe7201
MS
210
211#
212# Automatic API help files...
213#
214
215apihelp:
216 mxmldoc --section "Programming" \
217 --title "PPD Compiler API" \
218 --css ../doc/cups-printable.css \
219 --header api-ppdc.header --intro api-ppdc.shtml \
220 ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
221
222framedhelp:
223 mxmldoc --framed api-ppdc \
224 --section "Programming" \
225 --title "PPD Compiler API" \
226 --css ../doc/cups-printable.css \
227 --header api-ppdc.header --intro api-ppdc.shtml \
228 ppdc.h $(LIBOBJS:.o=.cxx)
ac884b6a
MS
229
230
61cf44e2
MS
231#
232# genstrings - generate GNU gettext strings.
233#
234
235genstrings: genstrings.o libcupsppdc.a ../cups/libcups.a \
236 sample.drv ../data/media.defs
237 echo Linking $@...
238 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
239 libcupsppdc.a ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) \
240 $(COMMONLIBS) $(LIBZ)
241 echo Generating localization strings...
242 ./genstrings >sample.c
243
244
ac884b6a
MS
245#
246# ppdc, the PPD compiler.
247#
248
50fe7201 249ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 250 echo Linking $@...
50fe7201 251 $(CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
252
253
50fe7201 254ppdc-static: ppdc.o libcupsppdc.a ../cups/libcups.a foo.drv foo-fr.po
ac884b6a 255 echo Linking $@...
c9fc04c6
MS
256 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
257 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
ac884b6a
MS
258 echo Testing PPD compiler...
259 ./ppdc-static -l en,fr -I ../data foo.drv
260 ./ppdc-static -l en,fr -z -I ../data foo.drv
261
262
263#
264# ppdhtml, the PPD to HTML utility.
265#
266
50fe7201 267ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 268 echo Linking $@...
50fe7201 269 $(CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
270
271
272#
273# ppdi, import PPD files.
274#
275
50fe7201 276ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 277 echo Linking $@...
50fe7201 278 $(CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
279
280
281#
282# ppdmerge, merge PPD files.
283#
284
285ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
286 echo Linking $@...
287 $(CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS)
288
289
290#
291# ppdpo, create message catalog files.
292#
293
50fe7201 294ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
ac884b6a 295 echo Linking $@...
50fe7201 296 $(CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
ac884b6a
MS
297
298
4509bb49
MS
299#
300# testcatalog, test ppdcCatalog class.
301#
302
303testcatalog: testcatalog.o libcupsppdc.a ../cups/libcups.a
304 echo Linking $@...
305 $(CXX) $(LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \
306 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
307
308
ac884b6a 309#
50fe7201 310# libcupsppdc.so.1, libcupsppdc.sl.1
ac884b6a
MS
311#
312
50fe7201
MS
313libcupsppdc.so.1 libcupsppdc.sl.1: $(LIBOBJS)
314 echo Linking $@...
315 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
316 $(RM) `basename $@ .1`
317 $(LN) $@ `basename $@ .1`
318
319
50fe7201
MS
320#
321# libcupsppdc.1.dylib
322#
323
bdd6c45b 324libcupsppdc.1.dylib: $(LIBOBJS)
8922323b
MS
325 echo Creating export list for $@...
326 nm $(LIBOBJS) | grep "T __" | awk '{print $$3}' | sort >t.exp
50fe7201
MS
327 echo Linking $@...
328 $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
329 -install_name $(libdir)/$@ \
330 -current_version 1.0.0 \
331 -compatibility_version 1.0.0 \
8922323b 332 -exported_symbols_list t.exp \
50fe7201 333 $(LIBOBJS) $(LIBS)
8922323b 334 $(RM) libcupsppdc.dylib t.exp
50fe7201
MS
335 $(LN) $@ libcupsppdc.dylib
336
337
338#
339# libcupsppdc_s.a
340#
341
342libcupsppdc_s.a: $(LIBOBJS)
ac884b6a 343 echo Creating $@...
50fe7201
MS
344 $(DSOXX) $(DSOFLAGS) -o libcupsppdc_s.o $(LIBOBJS) $(LIBS)
345 $(RM) $@
346 $(AR) $(ARFLAGS) $@ libcupsppdc_s.o
347
348
349#
350# libcupsppdc.la
351#
352
353libcupsppdc.la: $(LIBOBJS)
354 echo Linking $@...
355 $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
356 -version-info 1:0 $(LIBS)
357
358
359#
360# libcupsppdc.a
361#
362
363libcupsppdc.a: $(LIBOBJS)
364 echo Archiving $@...
ac884b6a 365 $(RM) $@
50fe7201 366 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
ac884b6a
MS
367 $(RANLIB) $@
368
369
370#
371# Include dependencies...
372#
373
374include Dependencies
375
376
377#
378# End of "$Id$".
379#