]> git.ipfire.org Git - thirdparty/cups.git/blob - driver/Makefile
Merge changes from CUPS 1.4svn-r8606.
[thirdparty/cups.git] / driver / Makefile
1 #
2 # "$Id$"
3 #
4 # Makefile for the CUPS base drivers.
5 #
6 # Copyright 2007-2009 by Apple Inc.
7 # Copyright 2002-2005 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
20 include ../Makedefs
21
22
23 #
24 # Object files...
25 #
26
27 LIBOBJS = \
28 attr.o \
29 check.o \
30 cmyk.o \
31 dither.o \
32 lut.o \
33 pack.o \
34 rgb.o \
35 srgb.o
36 OBJS = \
37 commandtoescpx.o \
38 commandtopclx.o \
39 rastertoescpx.o \
40 rastertopclx.o \
41 pcl-common.o \
42 testcmyk.o \
43 testdither.o \
44 testrgb.o \
45 $(LIBOBJS)
46
47 LIBTARGETS = \
48 $(LIBCUPSDRIVER) \
49 libcupsdriver.a
50 UNITTARGETS = \
51 testcmyk \
52 testdither \
53 testrgb
54 TARGETS = \
55 $(LIBTARGETS) \
56 commandtoescpx \
57 commandtopclx \
58 rastertoescpx \
59 rastertopclx
60
61
62 #
63 # Make everything...
64 #
65
66 all: $(TARGETS)
67
68
69 #
70 # Make library targets...
71 #
72
73 libs: $(LIBTARGETS)
74
75
76 #
77 # Make unit tests...
78 #
79
80 unittests: $(UNITTARGETS)
81
82
83 #
84 # Clean everything...
85 #
86
87 clean:
88 $(RM) $(OBJS) core
89 $(RM) *.bck core.*
90 $(RM) $(TARGETS) $(UNITTARGETS)
91 $(RM) -r test
92 $(RM) libcupsdriver.so libcupsdriver.sl libcupsdriver.dylib
93
94
95 #
96 # Update dependencies...
97 #
98
99 depend:
100 makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
101
102
103 #
104 # Install all targets...
105 #
106
107 install: all install-data install-headers install-libs install-exec
108
109
110 #
111 # Install data files...
112 #
113
114 install-data:
115
116
117 #
118 # Install programs...
119 #
120
121 install-exec:
122 $(INSTALL_DIR) $(SERVERBIN)/filter
123 for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
124 $(INSTALL_BIN) $$file $(SERVERBIN)/filter; \
125 done
126 if test "x$(SYMROOT)" != "x"; then \
127 $(INSTALL_DIR) $(SYMROOT); \
128 for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
129 cp $$file $(SYMROOT); \
130 done \
131 fi
132
133
134 #
135 # Install headers...
136 #
137
138 install-headers:
139 echo Installing header files in $(INCLUDEDIR)/cups...
140 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
141 $(INSTALL_DATA) driver.h $(INCLUDEDIR)/cups
142
143
144 #
145 # Install libraries...
146 #
147
148 install-libs: $(INSTALLSTATIC)
149 echo Installing libraries in $(LIBDIR)...
150 $(INSTALL_DIR) -m 755 $(LIBDIR)
151 $(INSTALL_LIB) $(LIBCUPSDRIVER) $(LIBDIR)
152 if test $(LIBCUPSDRIVER) = "libcupsdriver.so.1" -o $(LIBCUPSDRIVER) = "libcupsdriver.sl.1"; then \
153 $(RM) $(LIBDIR)/`basename $(LIBCUPSDRIVER) .1`; \
154 $(LN) $(LIBCUPSDRIVER) $(LIBDIR)/`basename $(LIBCUPSDRIVER) .1`; \
155 fi
156 if test $(LIBCUPSDRIVER) = "libcupsdriver.1.dylib"; then \
157 $(RM) $(LIBDIR)/libcupsdriver.dylib; \
158 $(LN) $(LIBCUPSDRIVER) $(LIBDIR)/libcupsdriver.dylib; \
159 fi
160 if test "x$(SYMROOT)" != "x"; then \
161 $(INSTALL_DIR) $(SYMROOT); \
162 cp $(LIBCUPSDRIVER) $(SYMROOT); \
163 fi
164
165 installstatic:
166 $(INSTALL_DIR) -m 755 $(LIBDIR)
167 $(INSTALL_LIB) libcupsdriver.a $(LIBDIR)
168 $(RANLIB) $(LIBDIR)/libcupsdriver.a
169
170
171 #
172 # Uninstall...
173 #
174
175 uninstall:
176 for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
177 $(RM) $(SERVERBIN)/filter/$$file; \
178 done
179 $(RM) $(LIBDIR)/libcupsdriver.1.dylib
180 $(RM) $(LIBDIR)/libcupsdriver.a
181 $(RM) $(LIBDIR)/libcupsdriver.dylib
182 $(RM) $(LIBDIR)/libcupsdriver_s.a
183 $(RM) $(LIBDIR)/libcupsdriver.sl
184 $(RM) $(LIBDIR)/libcupsdriver.sl.1
185 $(RM) $(LIBDIR)/libcupsdriver.so
186 $(RM) $(LIBDIR)/libcupsdriver.so.1
187 -$(RMDIR) $(LIBDIR)
188 $(RM) $(INCLUDEDIR)/cups/driver.h
189 -$(RMDIR) $(INCLUDEDIR)/cups
190
191
192 #
193 # Automatic API help files...
194 #
195
196 apihelp:
197 mxmldoc --section "Programming" \
198 --title "Printer Driver API" \
199 --css ../doc/cups-printable.css \
200 --header api-driver.header --intro api-driver.shtml \
201 api-driver.xml \
202 driver.h $(LIBOBJS:.o=.c) >../doc/help/api-driver.html
203 mxmldoc --tokens help/api-driver.html >../doc/help/api-driver.tokens
204 $(RM) api-driver.xml
205
206 framedhelp:
207 mxmldoc --framed api-driver \
208 --section "Programming" \
209 --title "Printer Driver API" \
210 --css ../doc/cups-printable.css \
211 --header api-driver.header --intro api-driver.shtml \
212 driver.h $(LIBOBJS:.o=.c)
213
214
215 #
216 # commandtopclx, the PCL command printer driver.
217 #
218
219 commandtopclx: commandtopclx.o $(LIBCUPSDRIVER) ../cups/$(LIBCUPS)
220 echo Linking $@...
221 $(CC) $(LDFLAGS) -o $@ commandtopclx.o -L. -lcupsdriver $(LIBS)
222
223
224 #
225 # commandtoescpx, the ESC/P command printer driver.
226 #
227
228 commandtoescpx: commandtoescpx.o $(LIBCUPSDRIVER) ../cups/$(LIBCUPS)
229 echo Linking $@...
230 $(CC) $(LDFLAGS) -o $@ commandtoescpx.o -L. -lcupsdriver $(LIBS)
231
232
233 #
234 # rastertoescpx, the ESC/P raster printer driver.
235 #
236
237 rastertoescpx: rastertoescpx.o $(LIBCUPSDRIVER) ../cups/$(LIBCUPS)
238 echo Linking $@...
239 $(CC) $(LDFLAGS) -o $@ rastertoescpx.o -L. -lcupsdriver \
240 $(LINKCUPSIMAGE) $(LIBS)
241
242
243 #
244 # rastertopclx, the ESC/P raster printer driver.
245 #
246
247 rastertopclx: rastertopclx.o pcl-common.o $(LIBCUPSDRIVER) \
248 ../cups/$(LIBCUPS)
249 echo Linking $@...
250 $(CC) $(LDFLAGS) -o $@ rastertopclx.o pcl-common.o -L. -lcupsdriver \
251 $(LINKCUPSIMAGE) $(LIBS)
252
253
254 #
255 # test, make a common test subdirectory for the other test programs.
256 #
257
258 test:
259 if test ! -d test; then \
260 rm -rf test; \
261 mkdir test; \
262 fi
263
264
265 #
266 # testcmyk, test cmyk separation functions.
267 #
268
269 testcmyk: test testcmyk.o libcupsdriver.a ../cups/libcups.a
270 echo Linking $@...
271 $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcmyk.o libcupsdriver.a \
272 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
273 $(COMMONLIBS) $(LIBZ)
274 echo Running CMYK API tests...
275 ./testcmyk > test/testcmyk.log
276
277
278 #
279 # testdither, test dithering functions.
280 #
281
282 testdither: test testdither.o libcupsdriver.a ../cups/libcups.a
283 echo Linking $@...
284 $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testdither.o libcupsdriver.a \
285 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
286 $(COMMONLIBS) $(LIBZ)
287 echo Running dither API tests...
288 ./testdither > test/0-255.pgm 2>test/0-255.log
289 ./testdither 0 127 255 > test/0-127-255.pgm 2>test/0-127-255.log
290 ./testdither 0 85 170 255 > test/0-85-170-255.pgm 2>test/0-85-170-255.log
291 ./testdither 0 63 127 170 198 227 255 > test/0-63-127-170-198-227-255.pgm 2>test/0-63-127-170-198-227-255.log
292 ./testdither 0 210 383 > test/0-210-383.pgm 2>test/0-210-383.log
293 ./testdither 0 82 255 > test/0-82-255.pgm 2>test/0-82-255.log
294 ./testdither 0 510 > test/0-510.pgm 2>test/0-510.log
295 ./testdither 0 1020 > test/0-1020.pgm 2>test/0-1020.log
296
297
298 #
299 # testrgb, test RGB separation functions.
300 #
301
302 testrgb: test testrgb.o libcupsdriver.a ../cups/libcups.a
303 echo Linking $@...
304 $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testrgb.o libcupsdriver.a \
305 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
306 $(COMMONLIBS) $(LIBZ)
307 echo Running RGB API tests...
308 ./testrgb > test/testrgb.log 2>&1 || echo "RGB tests failed!"
309
310
311 #
312 # libcupsdriver.so.1, libcupsdriver.sl.1
313 #
314
315 libcupsdriver.so.1 libcupsdriver.sl.1: $(LIBOBJS)
316 echo Linking $@...
317 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
318 $(RM) `basename $@ .1`
319 $(LN) $@ `basename $@ .1`
320
321
322 #
323 # libcupsdriver.1.dylib
324 #
325
326 libcupsdriver.1.dylib: $(LIBOBJS) libcupsdriver.exp
327 echo Linking $@...
328 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
329 -install_name $(libdir)/$@ \
330 -current_version 1.0.0 \
331 -compatibility_version 1.0.0 \
332 -exported_symbols_list libcupsdriver.exp \
333 $(LIBOBJS) $(LIBS)
334 $(RM) libcupsdriver.dylib
335 $(LN) $@ libcupsdriver.dylib
336
337
338 #
339 # libcupsdriver_s.a
340 #
341
342 libcupsdriver_s.a: $(LIBOBJS)
343 echo Creating $@...
344 $(DSO) $(DSOFLAGS) -o libcupsdriver_s.o $(LIBOBJS) $(LIBS)
345 $(RM) $@
346 $(AR) $(ARFLAGS) $@ libcupsdriver_s.o
347
348
349 #
350 # libcupsdriver.la
351 #
352
353 libcupsdriver.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 # libcupsdriver.a
361 #
362
363 libcupsdriver.a: $(LIBOBJS)
364 echo Archiving $@...
365 $(RM) $@
366 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
367 $(RANLIB) $@
368
369
370 #
371 # Include dependencies...
372 #
373
374 include Dependencies
375
376
377 #
378 # End of "$Id$".
379 #