4 # Makefile for the CUPS PPD Compiler.
6 # Copyright 2007-2008 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...
77 # Make library targets...
89 $(RM
) *.bak
*.bck core.
*
93 $(RM
) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
97 # Update dependencies...
101 makedepend
-Y
-I..
-fDependencies
$(OBJS
:.o
=.
cxx) >/dev
/null
2>&1
105 # Install all targets...
108 install: all install-data install-headers install-libs install-exec
112 # Install data files...
116 $(INSTALL_DIR
) $(DATADIR
)/drv
117 $(INSTALL_DATA
) sample.drv
$(DATADIR
)/drv
118 if
test `uname` = Darwin
; then \
119 $(INSTALL_DIR
) /Library
/Printers
/PPDs.drv
; \
124 # Install programs...
128 echo Installing PPD compiler programs...
129 $(INSTALL_DIR
) $(BINDIR
)
130 $(INSTALL_BIN
) ppdc
$(BINDIR
)
131 $(INSTALL_BIN
) ppdhtml
$(BINDIR
)
132 $(INSTALL_BIN
) ppdi
$(BINDIR
)
133 $(INSTALL_BIN
) ppdmerge
$(BINDIR
)
134 $(INSTALL_BIN
) ppdpo
$(BINDIR
)
135 $(INSTALL_DIR
) $(SERVERBIN
)/driver
136 $(INSTALL_BIN
) drv
$(SERVERBIN
)/driver
137 if
test "x$(SYMROOT)" != "x"; then \
138 $(INSTALL_DIR
) $(SYMROOT
); \
139 for file in
$(TARGETS
); do \
140 cp
$$file $(SYMROOT
); \
150 echo Installing header files in
$(INCLUDEDIR
)/cups...
151 $(INSTALL_DIR
) -m
755 $(INCLUDEDIR
)/cups
152 $(INSTALL_DATA
) ppdc.h
$(INCLUDEDIR
)/cups
156 # Install libraries...
159 install-libs
: $(INSTALLSTATIC
) $(INSTALL32
) $(INSTALL64
)
160 echo Installing libraries in
$(LIBDIR
)...
161 $(INSTALL_DIR
) -m
755 $(LIBDIR
)
162 $(INSTALL_LIB
) $(LIBCUPSPPDC
) $(LIBDIR
)
163 if
test $(LIBCUPSPPDC
) = "libcupsppdc.so.1" -o
$(LIBCUPSPPDC
) = "libcupsppdc.sl.1"; then \
164 $(RM
) $(LIBDIR
)/`basename $(LIBCUPSPPDC) .1`; \
165 $(LN
) $(LIBCUPSPPDC
) $(LIBDIR
)/`basename $(LIBCUPSPPDC) .1`; \
167 if
test $(LIBCUPSPPDC
) = "libcupsppdc.1.dylib"; then \
168 $(RM
) $(LIBDIR
)/libcupsppdc.dylib
; \
169 $(LN
) $(LIBCUPSPPDC
) $(LIBDIR
)/libcupsppdc.dylib
; \
171 if
test "x$(SYMROOT)" != "x"; then \
172 $(INSTALL_DIR
) $(SYMROOT
); \
173 cp
$(LIBCUPSPPDC
) $(SYMROOT
); \
177 $(INSTALL_DIR
) -m
755 $(LIBDIR
)
178 $(INSTALL_LIB
) libcupsppdc.a
$(LIBDIR
)
179 $(RANLIB
) $(LIBDIR
)/libcupsppdc.a
188 $(RM
) $(BINDIR
)/ppdhtml
190 $(RM
) $(BINDIR
)/ppdmerge
191 $(RM
) $(BINDIR
)/ppdpo
192 $(RM
) $(SERVERBIN
)/driver
/drv
193 $(RMDIR
) $(SERVERBIN
)/driver
194 $(RM
) $(DATADIR
)/drv
/sample.drv
195 $(RMDIR
) $(DATADIR
)/drv
196 if
test `uname` = Darwin
; then \
197 $(RMDIR
) /Library
/Printers
/PPDs.drv
; \
199 $(RM
) $(LIBDIR
)/libcupsppdc
.1.dylib
200 $(RM
) $(LIBDIR
)/libcupsppdc.a
201 $(RM
) $(LIBDIR
)/libcupsppdc.dylib
202 $(RM
) $(LIBDIR
)/libcupsppdc_s.a
203 $(RM
) $(LIBDIR
)/libcupsppdc.sl
204 $(RM
) $(LIBDIR
)/libcupsppdc.sl
.1
205 $(RM
) $(LIBDIR
)/libcupsppdc.so
206 $(RM
) $(LIBDIR
)/libcupsppdc.so
.1
208 $(RM
) $(INCLUDEDIR
)/cups
/ppdc.h
209 -$(RMDIR
) $(INCLUDEDIR
)/cups
213 # Automatic API help files...
217 mxmldoc
--section
"Programming" \
218 --title
"PPD Compiler API" \
219 --css ..
/doc
/cups-printable.css \
220 --header api-ppdc.header
--intro api-ppdc.shtml \
221 ppdc.h
$(LIBOBJS
:.o
=.
cxx) >..
/doc
/help
/api-ppdc.html
224 mxmldoc
--framed api-ppdc \
225 --section
"Programming" \
226 --title
"PPD Compiler API" \
227 --css ..
/doc
/cups-printable.css \
228 --header api-ppdc.header
--intro api-ppdc.shtml \
229 ppdc.h
$(LIBOBJS
:.o
=.
cxx)
233 # drv, the CUPS driver interface program to the PPD compiler.
236 drv
: drv.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
238 $(CXX
) $(LDFLAGS
) -o
$@ drv.o
-L.
-lcupsppdc
$(LIBS
)
242 # ppdc, the PPD compiler.
245 ppdc
: ppdc.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
247 $(CXX
) $(LDFLAGS
) -o
$@ ppdc.o
-L.
-lcupsppdc
$(LIBS
)
250 ppdc-static
: ppdc.o libcupsppdc.a ..
/cups
/libcups.a foo.drv foo-fr.po
252 $(CXX
) $(ARCHFLAGS
) $(LDFLAGS
) -o ppdc-static ppdc.o libcupsppdc.a \
253 ..
/cups
/libcups.a
$(LIBGSSAPI
) $(SSLLIBS
) $(COMMONLIBS
) $(LIBZ
)
254 echo Testing PPD compiler...
255 .
/ppdc-static
-l en
,fr
-I ..
/data foo.drv
256 .
/ppdc-static
-l en
,fr
-z
-I ..
/data foo.drv
260 # ppdhtml, the PPD to HTML utility.
263 ppdhtml
: ppdhtml.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
265 $(CXX
) $(LDFLAGS
) -o
$@ ppdhtml.o
-L.
-lcupsppdc
$(LIBS
)
269 # ppdi, import PPD files.
272 ppdi
: ppdi.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
274 $(CXX
) $(LDFLAGS
) -o
$@ ppdi.o
-L.
-lcupsppdc
$(LIBS
)
278 # ppdmerge, merge PPD files.
281 ppdmerge
: ppdmerge.o ..
/cups
/$(LIBCUPS
)
283 $(CXX
) $(LDFLAGS
) -o
$@ ppdmerge.o
$(LIBS
)
287 # ppdpo, create message catalog files.
290 ppdpo
: ppdpo.o
$(LIBCUPSPPDC
) ..
/cups
/$(LIBCUPS
)
292 $(CXX
) $(LDFLAGS
) -o
$@ ppdpo.o
-L.
-lcupsppdc
$(LIBS
)
296 # libcupsppdc.so.1, libcupsppdc.sl.1
299 libcupsppdc.so
.1 libcupsppdc.sl
.1: $(LIBOBJS
)
301 $(DSOXX
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
) $(LIBS
)
302 $(RM
) `basename $@ .1`
303 $(LN
) $@
`basename $@ .1`
307 # libcupsppdc.1.dylib
310 libcupsppdc
.1.dylib
: $(LIBOBJS
)
311 echo Creating
export list for
$@...
312 nm
$(LIBOBJS
) | grep
"T __" | awk
'{print $$3}' |
sort >t.exp
314 $(DSOXX
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@ \
315 -install_name
$(libdir)/$@ \
316 -current_version
1.0.0 \
317 -compatibility_version
1.0.0 \
318 -exported_symbols_list t.exp \
320 $(RM
) libcupsppdc.dylib t.exp
321 $(LN
) $@ libcupsppdc.dylib
328 libcupsppdc_s.a
: $(LIBOBJS
)
330 $(DSOXX
) $(DSOFLAGS
) -o libcupsppdc_s.o
$(LIBOBJS
) $(LIBS
)
332 $(AR
) $(ARFLAGS
) $@ libcupsppdc_s.o
339 libcupsppdc.la
: $(LIBOBJS
)
341 $(CC
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
:.o
=.lo
) -rpath
$(LIBDIR
) \
342 -version-info
1:0 $(LIBS
)
349 libcupsppdc.a
: $(LIBOBJS
)
352 $(AR
) $(ARFLAGS
) $@
$(LIBOBJS
)
357 # Include dependencies...