4 # Makefile for the CUPS PPD Compiler.
6 # Copyright 2007-2012 by Apple Inc.
7 # Copyright 2002-2006 by Easy Software Products.
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/".
17 # Include standard definitions...
84 # Make library targets...
94 unittests
: $(UNITTARGETS
)
103 $(RM
) *.bak
*.bck core.
*
104 $(RM
) $(TARGETS
) $(UNITTARGETS
)
106 $(RM
) sample-import.drv sample.c
test.drv
107 $(RM
) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
111 # Update dependencies...
115 $(CXX
) -MM
$(ALL_CXXFLAGS
) $(OBJS
:.o
=.
cxx) >Dependencies
119 # Install all targets...
122 install: all install-data install-headers install-libs install-exec
126 # Install data files...
130 $(INSTALL_DIR
) $(DATADIR
)/drv
131 $(INSTALL_DATA
) sample.drv
$(DATADIR
)/drv
135 # Install programs...
139 echo Installing PPD compiler programs...
140 $(INSTALL_DIR
) $(BINDIR
)
141 for file in
$(EXECTARGETS
); do \
142 $(INSTALL_BIN
) $$file $(BINDIR
); \
144 if
test "x$(SYMROOT)" != "x"; then \
145 $(INSTALL_DIR
) $(SYMROOT
); \
146 for file in
$(EXECTARGETS
); do \
147 cp
$$file $(SYMROOT
); \
157 echo Installing header files in
$(INCLUDEDIR
)/cups...
158 $(INSTALL_DIR
) -m
755 $(INCLUDEDIR
)/cups
159 $(INSTALL_DATA
) ppdc.h
$(INCLUDEDIR
)/cups
163 # Install libraries...
166 install-libs
: $(INSTALLSTATIC
)
167 echo Installing libraries in
$(LIBDIR
)...
168 $(INSTALL_DIR
) -m
755 $(LIBDIR
)
169 $(INSTALL_LIB
) $(LIBCUPSPPDC
) $(LIBDIR
)
170 if
test $(LIBCUPSPPDC
) = "libcupsppdc.so.1" -o
$(LIBCUPSPPDC
) = "libcupsppdc.sl.1"; then \
171 $(RM
) $(LIBDIR
)/`basename $(LIBCUPSPPDC) .1`; \
172 $(LN
) $(LIBCUPSPPDC
) $(LIBDIR
)/`basename $(LIBCUPSPPDC) .1`; \
174 if
test $(LIBCUPSPPDC
) = "libcupsppdc.1.dylib"; then \
175 $(RM
) $(LIBDIR
)/libcupsppdc.dylib
; \
176 $(LN
) $(LIBCUPSPPDC
) $(LIBDIR
)/libcupsppdc.dylib
; \
178 if
test "x$(SYMROOT)" != "x"; then \
179 $(INSTALL_DIR
) $(SYMROOT
); \
180 cp
$(LIBCUPSPPDC
) $(SYMROOT
); \
181 dsymutil
$(SYMROOT
)/$(LIBCUPSPPDC
); \
185 $(INSTALL_DIR
) -m
755 $(LIBDIR
)
186 $(INSTALL_LIB
) -m
755 libcupsppdc.a
$(LIBDIR
)
187 $(RANLIB
) $(LIBDIR
)/libcupsppdc.a
188 $(CHMOD
) 555 $(LIBDIR
)/libcupsppdc.a
196 for file in
$(EXECTARGETS
); do \
197 $(RM
) $(BINDIR
)/$$file; \
199 $(RM
) $(DATADIR
)/drv
/sample.drv
200 $(RMDIR
) $(DATADIR
)/drv
201 $(RM
) $(LIBDIR
)/libcupsppdc
.1.dylib
202 $(RM
) $(LIBDIR
)/libcupsppdc.a
203 $(RM
) $(LIBDIR
)/libcupsppdc.dylib
204 $(RM
) $(LIBDIR
)/libcupsppdc_s.a
205 $(RM
) $(LIBDIR
)/libcupsppdc.sl
206 $(RM
) $(LIBDIR
)/libcupsppdc.sl
.1
207 $(RM
) $(LIBDIR
)/libcupsppdc.so
208 $(RM
) $(LIBDIR
)/libcupsppdc.so
.1
210 $(RM
) $(INCLUDEDIR
)/cups
/ppdc.h
211 -$(RMDIR
) $(INCLUDEDIR
)/cups
215 # Automatic API help files...
219 mxmldoc
--section
"Programming" \
220 --title
"PPD Compiler API" \
221 --css ..
/doc
/cups-printable.css \
222 --header api-ppdc.header
--intro api-ppdc.shtml \
224 ppdc.h
$(LIBOBJS
:.o
=.
cxx) >..
/doc
/help
/api-ppdc.html
225 mxmldoc
--tokens help
/api-ppdc.html api-ppdc.xml
>..
/doc
/help
/api-ppdc.tokens
229 mxmldoc
--framed api-ppdc \
230 --section
"Programming" \
231 --title
"PPD Compiler API" \
232 --css ..
/doc
/cups-printable.css \
233 --header api-ppdc.header
--intro api-ppdc.shtml \
234 ppdc.h
$(LIBOBJS
:.o
=.
cxx)
238 # genstrings - generate GNU gettext strings.
241 genstrings
: genstrings.o libcupsppdc.a ..
/cups
/$(LIBCUPSSTATIC
) \
242 sample.drv ..
/data
/media.defs
244 $(CXX
) $(ARCHFLAGS
) $(LDFLAGS
) -o genstrings genstrings.o \
245 libcupsppdc.a ..
/cups
/$(LIBCUPSSTATIC
) $(LIBGSSAPI
) $(SSLLIBS
) \
246 $(DNSSDLIBS
) $(COMMONLIBS
) $(LIBZ
)
247 echo Generating localization strings...
248 .
/genstrings
>sample.c
252 # ppdc, the PPD compiler.
255 ppdc
: ppdc.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
257 $(CXX
) $(LDFLAGS
) -o
$@ ppdc.o
-L.
-lcupsppdc
$(LIBS
)
260 ppdc-static
: ppdc.o libcupsppdc.a ..
/cups
/$(LIBCUPSSTATIC
) foo.drv foo-fr.po
262 $(CXX
) $(ARCHFLAGS
) $(LDFLAGS
) -o ppdc-static ppdc.o libcupsppdc.a \
263 ..
/cups
/$(LIBCUPSSTATIC
) $(LIBGSSAPI
) $(SSLLIBS
) $(DNSSDLIBS
) \
264 $(COMMONLIBS
) $(LIBZ
)
265 echo Testing PPD compiler...
266 .
/ppdc-static
-l en
,fr
-I ..
/data foo.drv
267 .
/ppdc-static
-l en
,fr
-z
-I ..
/data foo.drv
271 # ppdhtml, the PPD to HTML utility.
274 ppdhtml
: ppdhtml.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
276 $(CXX
) $(LDFLAGS
) -o
$@ ppdhtml.o
-L.
-lcupsppdc
$(LIBS
)
280 # ppdi, import PPD files.
283 ppdi
: ppdi.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
285 $(CXX
) $(LDFLAGS
) -o
$@ ppdi.o
-L.
-lcupsppdc
$(LIBS
)
288 ppdi-static
: ppdc-static ppdi.o libcupsppdc.a ..
/cups
/$(LIBCUPSSTATIC
)
290 $(CXX
) $(ARCHFLAGS
) $(LDFLAGS
) -o ppdi-static ppdi.o libcupsppdc.a \
291 ..
/cups
/$(LIBCUPSSTATIC
) $(LIBGSSAPI
) $(SSLLIBS
) $(DNSSDLIBS
) \
292 $(COMMONLIBS
) $(LIBZ
)
293 echo Testing PPD importer...
294 $(RM
) -r ppd ppd2 sample-import.drv
295 .
/ppdc-static
-I ..
/data sample.drv
296 .
/ppdi-static
-I ..
/data
-o sample-import.drv ppd
/*
297 .
/ppdc-static
-I ..
/data
-d ppd2 sample-import.drv
298 if diff
-r ppd ppd2
>/dev
/null
; then \
299 echo PPD import OK
; \
301 echo PPD import FAILED
; \
307 # ppdmerge, merge PPD files.
310 ppdmerge
: ppdmerge.o ..
/cups
/$(LIBCUPS
)
312 $(CXX
) $(LDFLAGS
) -o
$@ ppdmerge.o
$(LIBS
)
316 # ppdpo, create message catalog files.
319 ppdpo
: ppdpo.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
321 $(CXX
) $(LDFLAGS
) -o
$@ ppdpo.o
-L.
-lcupsppdc
$(LIBS
)
325 # testcatalog, test ppdcCatalog class.
328 testcatalog
: testcatalog.o libcupsppdc.a ..
/cups
/$(LIBCUPSSTATIC
)
330 $(CXX
) $(LDFLAGS
) -o
$@ testcatalog.o libcupsppdc.a \
331 ..
/cups
/$(LIBCUPSSTATIC
) $(LIBGSSAPI
) $(SSLLIBS
) $(DNSSDLIBS
) \
332 $(COMMONLIBS
) $(LIBZ
)
336 # libcupsppdc.so.1, libcupsppdc.sl.1
339 libcupsppdc.so
.1 libcupsppdc.sl
.1: $(LIBOBJS
) ..
/cups
/$(LIBCUPS
)
341 $(DSOXX
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
) $(LINKCUPS
)
342 $(RM
) `basename $@ .1`
343 $(LN
) $@
`basename $@ .1`
347 # libcupsppdc.1.dylib
350 libcupsppdc
.1.dylib
: $(LIBOBJS
) ..
/cups
/$(LIBCUPS
)
351 echo Creating
export list for
$@...
352 nm
$(LIBOBJS
) | grep
"T __" | awk
'{print $$3}' |
sort >t.exp
354 $(DSOXX
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@ \
355 -install_name
$(libdir)/$@ \
356 -current_version
1.0.0 \
357 -compatibility_version
1.0.0 \
358 -exported_symbols_list t.exp \
359 $(LIBOBJS
) $(LINKCUPS
)
360 $(RM
) libcupsppdc.dylib t.exp
361 $(LN
) $@ libcupsppdc.dylib
368 libcupsppdc_s.a
: $(LIBOBJS
) ..
/cups
/$(LIBCUPS
)
370 $(DSOXX
) $(DSOFLAGS
) -o libcupsppdc_s.o
$(LIBOBJS
) $(LINKCUPS
)
372 $(AR
) $(ARFLAGS
) $@ libcupsppdc_s.o
379 libcupsppdc.la
: $(LIBOBJS
) ..
/cups
/$(LIBCUPS
)
381 $(CC
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
:.o
=.lo
) -rpath
$(LIBDIR
) \
382 -version-info
1:0 $(LINKCUPS
)
389 libcupsppdc.a
: $(LIBOBJS
)
392 $(AR
) $(ARFLAGS
) $@
$(LIBOBJS
)
397 # Include dependencies...