]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Library Makefile for CUPS. | |
3 | # | |
4 | # Copyright 2007-2019 by Apple Inc. | |
5 | # Copyright 1997-2006 by Easy Software Products, all rights reserved. | |
6 | # | |
7 | # Licensed under Apache License v2.0. See the file "LICENSE" for more | |
8 | # information. | |
9 | # | |
10 | ||
11 | include ../Makedefs | |
12 | ||
13 | ||
14 | # | |
15 | # Object files... | |
16 | # | |
17 | ||
18 | COREOBJS = \ | |
19 | array.o \ | |
20 | auth.o \ | |
21 | debug.o \ | |
22 | dest.o \ | |
23 | dest-job.o \ | |
24 | dest-localization.o \ | |
25 | dest-options.o \ | |
26 | dir.o \ | |
27 | encode.o \ | |
28 | file.o \ | |
29 | getputfile.o \ | |
30 | globals.o \ | |
31 | hash.o \ | |
32 | http.o \ | |
33 | http-addr.o \ | |
34 | http-addrlist.o \ | |
35 | http-support.o \ | |
36 | ipp.o \ | |
37 | ipp-file.o \ | |
38 | ipp-vars.o \ | |
39 | ipp-support.o \ | |
40 | langprintf.o \ | |
41 | language.o \ | |
42 | md5.o \ | |
43 | md5passwd.o \ | |
44 | notify.o \ | |
45 | options.o \ | |
46 | pwg-media.o \ | |
47 | raster-error.o \ | |
48 | raster-stream.o \ | |
49 | raster-stubs.o \ | |
50 | request.o \ | |
51 | snprintf.o \ | |
52 | string.o \ | |
53 | tempfile.o \ | |
54 | thread.o \ | |
55 | tls.o \ | |
56 | transcode.o \ | |
57 | usersys.o \ | |
58 | util.o | |
59 | ||
60 | DRIVEROBJS = \ | |
61 | adminutil.o \ | |
62 | backchannel.o \ | |
63 | backend.o \ | |
64 | getdevices.o \ | |
65 | getifaddrs.o \ | |
66 | ppd.o \ | |
67 | ppd-attr.o \ | |
68 | ppd-cache.o \ | |
69 | ppd-conflicts.o \ | |
70 | ppd-custom.o \ | |
71 | ppd-emit.o \ | |
72 | ppd-localize.o \ | |
73 | ppd-mark.o \ | |
74 | ppd-page.o \ | |
75 | ppd-util.o \ | |
76 | raster-interpret.o \ | |
77 | raster-interstub.o \ | |
78 | sidechannel.o \ | |
79 | snmp.o | |
80 | ||
81 | LIBOBJS = \ | |
82 | $(LIBCUPSOBJS) | |
83 | ||
84 | IMAGEOBJS = \ | |
85 | raster-interstub.o \ | |
86 | raster-stubs.o | |
87 | ||
88 | TESTOBJS = \ | |
89 | rasterbench.o \ | |
90 | testadmin.o \ | |
91 | testarray.o \ | |
92 | testcache.o \ | |
93 | testclient.o \ | |
94 | testconflicts.o \ | |
95 | testcreds.o \ | |
96 | testcups.o \ | |
97 | testdest.o \ | |
98 | testfile.o \ | |
99 | testgetdests.o \ | |
100 | testhttp.o \ | |
101 | testi18n.o \ | |
102 | testipp.o \ | |
103 | testoptions.o \ | |
104 | testlang.o \ | |
105 | testppd.o \ | |
106 | testpwg.o \ | |
107 | testraster.o \ | |
108 | testsnmp.o \ | |
109 | tlscheck.o | |
110 | OBJS = \ | |
111 | $(LIBOBJS) \ | |
112 | $(IMAGEOBJS) \ | |
113 | $(TESTOBJS) | |
114 | ||
115 | ||
116 | # | |
117 | # Header files to install... | |
118 | # | |
119 | ||
120 | HEADERS = \ | |
121 | adminutil.h \ | |
122 | array.h \ | |
123 | backend.h \ | |
124 | cups.h \ | |
125 | dir.h \ | |
126 | file.h \ | |
127 | http.h \ | |
128 | ipp.h \ | |
129 | language.h \ | |
130 | ppd.h \ | |
131 | pwg.h \ | |
132 | raster.h \ | |
133 | sidechannel.h \ | |
134 | transcode.h \ | |
135 | versioning.h | |
136 | ||
137 | HEADERSPRIV = \ | |
138 | array-private.h \ | |
139 | cups-private.h \ | |
140 | debug-private.h \ | |
141 | file-private.h \ | |
142 | http-private.h \ | |
143 | ipp-private.h \ | |
144 | language-private.h \ | |
145 | ppd-private.h \ | |
146 | pwg-private.h \ | |
147 | raster-private.h \ | |
148 | snmp-private.h \ | |
149 | string-private.h \ | |
150 | thread-private.h | |
151 | ||
152 | ||
153 | # | |
154 | # Targets in this directory... | |
155 | # | |
156 | ||
157 | LIBTARGETS = \ | |
158 | $(LIBCUPSIMAGE) \ | |
159 | $(LIBCUPSSTATIC) \ | |
160 | $(LIBCUPS) \ | |
161 | libcupsimage.a | |
162 | ||
163 | UNITTARGETS = \ | |
164 | rasterbench \ | |
165 | testadmin \ | |
166 | testarray \ | |
167 | testcache \ | |
168 | testclient \ | |
169 | testconflicts \ | |
170 | testcreds \ | |
171 | testcups \ | |
172 | testdest \ | |
173 | testfile \ | |
174 | testgetdests \ | |
175 | testhttp \ | |
176 | testi18n \ | |
177 | testipp \ | |
178 | testlang \ | |
179 | testoptions \ | |
180 | testppd \ | |
181 | testpwg \ | |
182 | testraster \ | |
183 | testsnmp \ | |
184 | tlscheck | |
185 | ||
186 | TARGETS = \ | |
187 | $(LIBTARGETS) | |
188 | ||
189 | ||
190 | # | |
191 | # Make all targets... | |
192 | # | |
193 | ||
194 | all: $(TARGETS) | |
195 | ||
196 | ||
197 | # | |
198 | # Make library targets... | |
199 | # | |
200 | ||
201 | libs: $(LIBTARGETS) | |
202 | ||
203 | ||
204 | # | |
205 | # Make unit tests... | |
206 | # | |
207 | ||
208 | unittests: $(UNITTARGETS) | |
209 | ||
210 | ||
211 | # | |
212 | # Remove object and target files... | |
213 | # | |
214 | ||
215 | clean: | |
216 | $(RM) $(OBJS) $(TARGETS) $(UNITTARGETS) | |
217 | $(RM) libcups.so libcups.dylib | |
218 | $(RM) libcupsimage.so libcupsimage.dylib | |
219 | ||
220 | ||
221 | # | |
222 | # Update dependencies (without system header dependencies...) | |
223 | # | |
224 | ||
225 | depend: | |
226 | $(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies | |
227 | ||
228 | ||
229 | # | |
230 | # Run oclint to check code coverage... | |
231 | # | |
232 | ||
233 | oclint: | |
234 | oclint -o=oclint.html -html $(LIBOBJS:.o=.c) -- $(ALL_CFLAGS) | |
235 | ||
236 | ||
237 | # | |
238 | # Install all targets... | |
239 | # | |
240 | ||
241 | install: all install-data install-headers install-libs install-exec | |
242 | ||
243 | ||
244 | # | |
245 | # Install data files... | |
246 | # | |
247 | ||
248 | install-data: | |
249 | ||
250 | ||
251 | # | |
252 | # Install programs... | |
253 | # | |
254 | ||
255 | install-exec: | |
256 | ||
257 | ||
258 | # | |
259 | # Install headers... | |
260 | # | |
261 | ||
262 | install-headers: | |
263 | echo Installing header files into $(INCLUDEDIR)/cups... | |
264 | $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups | |
265 | for file in $(HEADERS); do \ | |
266 | $(INSTALL_DATA) $$file $(INCLUDEDIR)/cups; \ | |
267 | done | |
268 | if test "x$(privateinclude)" != x; then \ | |
269 | echo Installing private header files into $(PRIVATEINCLUDE)...; \ | |
270 | $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \ | |
271 | for file in $(HEADERSPRIV); do \ | |
272 | $(INSTALL_DATA) $$file $(PRIVATEINCLUDE)/$$file; \ | |
273 | done; \ | |
274 | fi | |
275 | ||
276 | ||
277 | # | |
278 | # Install libraries... | |
279 | # | |
280 | ||
281 | install-libs: $(LIBTARGETS) $(INSTALLSTATIC) | |
282 | echo Installing libraries in $(LIBDIR)... | |
283 | $(INSTALL_DIR) -m 755 $(LIBDIR) | |
284 | $(INSTALL_LIB) $(LIBCUPS) $(LIBDIR) | |
285 | if test $(LIBCUPS) = "libcups.so.2"; then \ | |
286 | $(RM) $(LIBDIR)/`basename $(LIBCUPS) .2`; \ | |
287 | $(LN) $(LIBCUPS) $(LIBDIR)/`basename $(LIBCUPS) .2`; \ | |
288 | fi | |
289 | if test $(LIBCUPS) = "libcups.2.dylib"; then \ | |
290 | $(RM) $(LIBDIR)/libcups.dylib; \ | |
291 | $(LN) $(LIBCUPS) $(LIBDIR)/libcups.dylib; \ | |
292 | fi | |
293 | -if test "x$(LIBCUPSIMAGE)" != x; then \ | |
294 | $(INSTALL_LIB) $(LIBCUPSIMAGE) $(LIBDIR); \ | |
295 | fi | |
296 | -if test "x$(LIBCUPSIMAGE)" = "xlibcupsimage.so.2"; then \ | |
297 | $(RM) $(LIBDIR)/`basename $(LIBCUPSIMAGE) .2`; \ | |
298 | $(LN) $(LIBCUPSIMAGE) $(LIBDIR)/`basename $(LIBCUPSIMAGE) .2`; \ | |
299 | fi | |
300 | -if test "x$(LIBCUPSIMAGE)" = "xlibcupsimage.2.dylib"; then \ | |
301 | $(RM) $(LIBDIR)/libcupsimage.dylib; \ | |
302 | $(LN) $(LIBCUPSIMAGE) $(LIBDIR)/libcupsimage.dylib; \ | |
303 | fi | |
304 | if test "x$(SYMROOT)" != "x"; then \ | |
305 | $(INSTALL_DIR) $(SYMROOT); \ | |
306 | cp $(LIBCUPS) $(SYMROOT); \ | |
307 | dsymutil $(SYMROOT)/$(LIBCUPS); \ | |
308 | if test "x$(LIBCUPSIMAGE)" != x; then \ | |
309 | cp $(LIBCUPSIMAGE) $(SYMROOT); \ | |
310 | dsymutil $(SYMROOT)/$(LIBCUPSIMAGE); \ | |
311 | fi; \ | |
312 | fi | |
313 | ||
314 | installstatic: | |
315 | $(INSTALL_DIR) -m 755 $(LIBDIR) | |
316 | $(INSTALL_LIB) -m 755 $(LIBCUPSSTATIC) $(LIBDIR) | |
317 | $(RANLIB) $(LIBDIR)/$(LIBCUPSSTATIC) | |
318 | $(CHMOD) 555 $(LIBDIR)/$(LIBCUPSSTATIC) | |
319 | $(INSTALL_LIB) -m 755 libcupsimage.a $(LIBDIR) | |
320 | $(RANLIB) $(LIBDIR)/libcupsimage.a | |
321 | $(CHMOD) 555 $(LIBDIR)/libcupsimage.a | |
322 | ||
323 | ||
324 | # | |
325 | # Uninstall object and target files... | |
326 | # | |
327 | ||
328 | uninstall: | |
329 | $(RM) $(LIBDIR)/libcups.2.dylib | |
330 | $(RM) $(LIBDIR)/libcups.a | |
331 | $(RM) $(LIBDIR)/libcups.dylib | |
332 | $(RM) $(LIBDIR)/libcups.so | |
333 | $(RM) $(LIBDIR)/libcups.so.2 | |
334 | $(RM) $(LIBDIR)/libcupsimage.2.dylib | |
335 | $(RM) $(LIBDIR)/libcupsimage.a | |
336 | $(RM) $(LIBDIR)/libcupsimage.dylib | |
337 | $(RM) $(LIBDIR)/libcupsimage.so | |
338 | $(RM) $(LIBDIR)/libcupsimage.so.2 | |
339 | -$(RMDIR) $(LIBDIR) | |
340 | for file in $(HEADERS); do \ | |
341 | $(RM) $(INCLUDEDIR)/cups/$$file; \ | |
342 | done | |
343 | -$(RMDIR) $(INCLUDEDIR)/cups | |
344 | if test "x$(privateinclude)" != x; then \ | |
345 | for file in $(HEADERSPRIV); do \ | |
346 | $(RM) $(PRIVATEINCLUDE)/cups/$$file; \ | |
347 | done | |
348 | $(RMDIR) $(PRIVATEINCLUDE)/cups; \ | |
349 | fi | |
350 | ||
351 | ||
352 | # | |
353 | # libcups.so.2 | |
354 | # | |
355 | ||
356 | libcups.so.2: $(LIBOBJS) | |
357 | echo Linking $@... | |
358 | $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) \ | |
359 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
360 | $(RM) `basename $@ .2` | |
361 | $(LN) $@ `basename $@ .2` | |
362 | ||
363 | ||
364 | # | |
365 | # libcups.2.dylib | |
366 | # | |
367 | ||
368 | libcups.2.dylib: $(LIBOBJS) | |
369 | echo Linking $@... | |
370 | $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ | |
371 | -install_name $(libdir)/$@ \ | |
372 | -current_version 2.14.0 \ | |
373 | -compatibility_version 2.0.0 \ | |
374 | $(LIBOBJS) \ | |
375 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
376 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
377 | $(RM) libcups.dylib | |
378 | $(LN) $@ libcups.dylib | |
379 | ||
380 | ||
381 | # | |
382 | # libcups.la | |
383 | # | |
384 | ||
385 | libcups.la: $(LIBOBJS) | |
386 | echo Linking $@... | |
387 | $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) \ | |
388 | -rpath $(LIBDIR) -version-info 2:14 $(LIBGSSAPI) $(SSLLIBS) \ | |
389 | $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
390 | ||
391 | ||
392 | # | |
393 | # libcups.a | |
394 | # | |
395 | ||
396 | libcups.a: $(LIBOBJS) | |
397 | echo Archiving $@... | |
398 | $(RM) $@ | |
399 | $(AR) $(ARFLAGS) $@ $(LIBOBJS) | |
400 | $(RANLIB) $@ | |
401 | ||
402 | ||
403 | # | |
404 | # libcups2.def (Windows DLL exports file...) | |
405 | # | |
406 | ||
407 | libcups2.def: $(LIBOBJS) $(IMAGEOBJS) Makefile | |
408 | echo Generating $@... | |
409 | echo "LIBRARY libcups2" >libcups2.def | |
410 | echo "VERSION 2.14" >>libcups2.def | |
411 | echo "EXPORTS" >>libcups2.def | |
412 | (nm $(LIBOBJS) $(IMAGEOBJS) 2>/dev/null | grep "T _" | awk '{print $$3}'; \ | |
413 | echo __cups_strcpy; echo __cups_strlcat; echo __cups_strlcpy) | \ | |
414 | grep -v -E \ | |
415 | -e 'cups_debug|Apple|BackChannel|Backend|FileCheck|Filter|GSSService|SetNegotiate|SideChannel|SNMP' \ | |
416 | -e 'Block$$' | \ | |
417 | sed -e '1,$$s/^_//' | sort >>libcups2.def | |
418 | ||
419 | ||
420 | # | |
421 | # libcupsimage.so.2 | |
422 | # | |
423 | ||
424 | libcupsimage.so.2: $(IMAGEOBJS) libcups.so.2 | |
425 | echo Linking $@... | |
426 | $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS) $(DSOLIBS) $(LINKCUPS) | |
427 | $(RM) `basename $@ .2` | |
428 | $(LN) $@ `basename $@ .2` | |
429 | ||
430 | ||
431 | # | |
432 | # libcupsimage.2.dylib | |
433 | # | |
434 | ||
435 | libcupsimage.2.dylib: $(IMAGEOBJS) libcups.2.dylib | |
436 | echo Linking $@... | |
437 | $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ | |
438 | -install_name $(libdir)/$@ \ | |
439 | -current_version 2.3.0 \ | |
440 | -compatibility_version 2.0.0 \ | |
441 | $(IMAGEOBJS) $(DSOLIBS) $(LINKCUPS) | |
442 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
443 | $(RM) libcupsimage.dylib | |
444 | $(LN) $@ libcupsimage.dylib | |
445 | ||
446 | ||
447 | # | |
448 | # libcupsimage.la | |
449 | # | |
450 | ||
451 | libcupsimage.la: $(IMAGEOBJS) libcups.la | |
452 | echo Linking $@... | |
453 | $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS:.o=.lo) $(DSOLIBS) \ | |
454 | $(LINKCUPS) -rpath $(LIBDIR) -version-info 2:3 | |
455 | ||
456 | ||
457 | # | |
458 | # libcupsimage.a | |
459 | # | |
460 | ||
461 | libcupsimage.a: $(IMAGEOBJS) | |
462 | echo Archiving $@... | |
463 | $(RM) $@ | |
464 | $(AR) $(ARFLAGS) $@ $(IMAGEOBJS) | |
465 | $(RANLIB) $@ | |
466 | ||
467 | ||
468 | # | |
469 | # rasterbench (dependency on static CUPS library is intentional) | |
470 | # | |
471 | ||
472 | rasterbench: rasterbench.o $(LIBCUPSSTATIC) | |
473 | echo Linking $@... | |
474 | $(LD_CC) $(LDFLAGS) -o $@ rasterbench.o $(LIBCUPSSTATIC) \ | |
475 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
476 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
477 | ||
478 | ||
479 | # | |
480 | # testadmin (dependency on static CUPS library is intentional) | |
481 | # | |
482 | ||
483 | testadmin: testadmin.o $(LIBCUPSSTATIC) | |
484 | echo Linking $@... | |
485 | $(LD_CC) $(LDFLAGS) -o $@ testadmin.o $(LIBCUPSSTATIC) \ | |
486 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
487 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
488 | ||
489 | ||
490 | # | |
491 | # testarray (dependency on static CUPS library is intentional) | |
492 | # | |
493 | ||
494 | testarray: testarray.o $(LIBCUPSSTATIC) | |
495 | echo Linking $@... | |
496 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testarray.o $(LIBCUPSSTATIC) \ | |
497 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
498 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
499 | echo Running array API tests... | |
500 | ./testarray | |
501 | ||
502 | ||
503 | # | |
504 | # testcache (dependency on static CUPS library is intentional) | |
505 | # | |
506 | ||
507 | testcache: testcache.o $(LIBCUPSSTATIC) | |
508 | echo Linking $@... | |
509 | $(LD_CC) $(LDFLAGS) -o $@ testcache.o $(LIBCUPSSTATIC) \ | |
510 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
511 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
512 | ||
513 | ||
514 | # | |
515 | # testclient (dependency on static libraries is intentional) | |
516 | # | |
517 | ||
518 | testclient: testclient.o $(LIBCUPSSTATIC) | |
519 | echo Linking $@... | |
520 | $(LD_CC) $(LDFLAGS) -o $@ testclient.o $(LIBCUPSSTATIC) \ | |
521 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
522 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
523 | ||
524 | ||
525 | # | |
526 | # testconflicts (dependency on static CUPS library is intentional) | |
527 | # | |
528 | ||
529 | testconflicts: testconflicts.o $(LIBCUPSSTATIC) | |
530 | echo Linking $@... | |
531 | $(LD_CC) $(LDFLAGS) -o $@ testconflicts.o $(LIBCUPSSTATIC) \ | |
532 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
533 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
534 | ||
535 | ||
536 | # | |
537 | # testcreds (dependency on static CUPS library is intentional) | |
538 | # | |
539 | ||
540 | testcreds: testcreds.o $(LIBCUPSSTATIC) | |
541 | echo Linking $@... | |
542 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcreds.o $(LIBCUPSSTATIC) \ | |
543 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
544 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
545 | ||
546 | ||
547 | # | |
548 | # testcups (dependency on static CUPS library is intentional) | |
549 | # | |
550 | ||
551 | testcups: testcups.o $(LIBCUPSSTATIC) | |
552 | echo Linking $@... | |
553 | $(LD_CC) $(LDFLAGS) -o $@ testcups.o $(LIBCUPSSTATIC) \ | |
554 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
555 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
556 | ||
557 | ||
558 | # | |
559 | # testdest (dependency on static CUPS library is intentional) | |
560 | # | |
561 | ||
562 | testdest: testdest.o $(LIBCUPSSTATIC) | |
563 | echo Linking $@... | |
564 | $(LD_CC) $(LDFLAGS) -o $@ testdest.o $(LIBCUPSSTATIC) \ | |
565 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
566 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
567 | ||
568 | ||
569 | # | |
570 | # testfile (dependency on static CUPS library is intentional) | |
571 | # | |
572 | ||
573 | testfile: testfile.o $(LIBCUPSSTATIC) | |
574 | echo Linking $@... | |
575 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testfile.o $(LIBCUPSSTATIC) \ | |
576 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
577 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
578 | echo Running file API tests... | |
579 | ./testfile | |
580 | ||
581 | ||
582 | # | |
583 | # testgetdests (dependency on static CUPS library is intentional) | |
584 | # | |
585 | ||
586 | testgetdests: testgetdests.o $(LIBCUPSSTATIC) | |
587 | echo Linking $@... | |
588 | $(LD_CC) $(LDFLAGS) -o $@ testgetdests.o $(LIBCUPSSTATIC) \ | |
589 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
590 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
591 | ||
592 | ||
593 | # | |
594 | # testhttp (dependency on static CUPS library is intentional) | |
595 | # | |
596 | ||
597 | testhttp: testhttp.o $(LIBCUPSSTATIC) | |
598 | echo Linking $@... | |
599 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhttp.o $(LIBCUPSSTATIC) \ | |
600 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
601 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
602 | echo Running HTTP API tests... | |
603 | ./testhttp | |
604 | ||
605 | ||
606 | # | |
607 | # testipp (dependency on static CUPS library is intentional) | |
608 | # | |
609 | ||
610 | testipp: testipp.o $(LIBCUPSSTATIC) | |
611 | echo Linking $@... | |
612 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testipp.o $(LIBCUPSSTATIC) \ | |
613 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
614 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
615 | echo Running IPP API tests... | |
616 | ./testipp | |
617 | ||
618 | ||
619 | # | |
620 | # testi18n (dependency on static CUPS library is intentional) | |
621 | # | |
622 | ||
623 | testi18n: testi18n.o $(LIBCUPSSTATIC) | |
624 | echo Linking $@... | |
625 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testi18n.o $(LIBCUPSSTATIC) \ | |
626 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
627 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
628 | echo Running internationalization API tests... | |
629 | ./testi18n | |
630 | ||
631 | ||
632 | # | |
633 | # testlang (dependency on static CUPS library is intentional) | |
634 | # | |
635 | ||
636 | testlang: testlang.o $(LIBCUPSSTATIC) | |
637 | echo Linking $@... | |
638 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testlang.o $(LIBCUPSSTATIC) \ | |
639 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
640 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
641 | echo Creating locale directory structure... | |
642 | $(RM) -r locale | |
643 | $(MKDIR) locale/en | |
644 | echo 'msgid "No"' > locale/en/cups_en.po | |
645 | echo 'msgstr "No"' >> locale/en/cups_en.po | |
646 | echo 'msgid "Yes"' >> locale/en/cups_en.po | |
647 | echo 'msgstr "Yes"' >> locale/en/cups_en.po | |
648 | for po in ../locale/cups_*.po; do \ | |
649 | lang=`basename $$po .po | sed -e '1,$$s/^cups_//'`; \ | |
650 | $(MKDIR) locale/$$lang; \ | |
651 | $(LN) ../../$$po locale/$$lang; \ | |
652 | done | |
653 | echo Running language API tests... | |
654 | LOCALEDIR=locale ./testlang | |
655 | ||
656 | ||
657 | # | |
658 | # testoptions (dependency on static CUPS library is intentional) | |
659 | # | |
660 | ||
661 | testoptions: testoptions.o $(LIBCUPSSTATIC) | |
662 | echo Linking $@... | |
663 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testoptions.o $(LIBCUPSSTATIC) \ | |
664 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
665 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
666 | echo Running option API tests... | |
667 | ./testoptions | |
668 | ||
669 | ||
670 | # | |
671 | # testppd (dependency on static CUPS library is intentional) | |
672 | # | |
673 | ||
674 | testppd: testppd.o $(LIBCUPSSTATIC) test.ppd test2.ppd | |
675 | echo Linking $@... | |
676 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testppd.o $(LIBCUPSSTATIC) \ | |
677 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
678 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
679 | echo Running PPD API tests... | |
680 | ./testppd | |
681 | ||
682 | ||
683 | # | |
684 | # testpwg (dependency on static CUPS library is intentional) | |
685 | # | |
686 | ||
687 | testpwg: testpwg.o $(LIBCUPSSTATIC) test.ppd | |
688 | echo Linking $@... | |
689 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testpwg.o $(LIBCUPSSTATIC) \ | |
690 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
691 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
692 | echo Running PWG API tests... | |
693 | ./testpwg test.ppd | |
694 | ||
695 | ||
696 | # | |
697 | # testraster (dependency on static CUPS library is intentional) | |
698 | # | |
699 | ||
700 | testraster: testraster.o $(LIBCUPSSTATIC) | |
701 | echo Linking $@... | |
702 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testraster.o \ | |
703 | $(LIBCUPSSTATIC) $(IMGLIBS) $(DSOLIBS) $(COMMONLIBS) \ | |
704 | $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI) | |
705 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
706 | echo Running raster API tests... | |
707 | ./testraster | |
708 | ||
709 | ||
710 | # | |
711 | # testsnmp (dependency on static CUPS library is intentional) | |
712 | # | |
713 | ||
714 | testsnmp: testsnmp.o $(LIBCUPSSTATIC) | |
715 | echo Linking $@... | |
716 | $(LD_CC) $(LDFLAGS) -o $@ testsnmp.o $(LIBCUPSSTATIC) \ | |
717 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
718 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
719 | ||
720 | ||
721 | # | |
722 | # tlscheck (dependency on static CUPS library is intentional) | |
723 | # | |
724 | ||
725 | tlscheck: tlscheck.o $(LIBCUPSSTATIC) | |
726 | echo Linking $@... | |
727 | $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ tlscheck.o $(LIBCUPSSTATIC) \ | |
728 | $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) | |
729 | $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ | |
730 | ||
731 | ||
732 | # | |
733 | # Automatic API help files... | |
734 | # | |
735 | ||
736 | apihelp: | |
737 | echo Generating CUPS API help files... | |
738 | $(RM) cupspm.xml | |
739 | codedoc --section "Programming" --body cupspm.md \ | |
740 | cupspm.xml \ | |
741 | auth.c cups.h dest*.c encode.c http.h http*.c ipp.h ipp*.c \ | |
742 | options.c tls-darwin.c usersys.c util.c \ | |
743 | --coverimage cupspm.png \ | |
744 | --epub ../doc/help/cupspm.epub | |
745 | codedoc --section "Programming" --body cupspm.md \ | |
746 | cupspm.xml > ../doc/help/cupspm.html | |
747 | $(RM) cupspm.xml | |
748 | codedoc --section "Programming" --title "Administration APIs" \ | |
749 | --css ../doc/cups-printable.css \ | |
750 | --header api-admin.header --intro api-admin.shtml \ | |
751 | api-admin.xml \ | |
752 | adminutil.c adminutil.h getdevices.c >../doc/help/api-admin.html | |
753 | $(RM) api-admin.xml | |
754 | codedoc --section "Programming" --title "PPD API (DEPRECATED)" \ | |
755 | --css ../doc/cups-printable.css \ | |
756 | --header api-ppd.header --intro api-ppd.shtml \ | |
757 | api-ppd.xml ppd.h ppd-*.c >../doc/help/api-ppd.html | |
758 | $(RM) api-ppd.xml | |
759 | codedoc --section "Programming" --title "Raster API" \ | |
760 | --css ../doc/cups-printable.css \ | |
761 | --header api-raster.header --intro api-raster.shtml \ | |
762 | api-raster.xml \ | |
763 | ../cups/raster.h interpret.c raster.c \ | |
764 | >../doc/help/api-raster.html | |
765 | $(RM) api-raster.xml | |
766 | codedoc --section "Programming" \ | |
767 | --title "Filter and Backend Programming" \ | |
768 | --css ../doc/cups-printable.css \ | |
769 | --header api-filter.header --intro api-filter.shtml \ | |
770 | api-filter.xml \ | |
771 | backchannel.c backend.h backend.c sidechannel.c sidechannel.h \ | |
772 | >../doc/help/api-filter.html | |
773 | $(RM) api-filter.xml | |
774 | ||
775 | ||
776 | # | |
777 | # Lines of code computation... | |
778 | # | |
779 | ||
780 | sloc: | |
781 | echo "libcups: \c" | |
782 | sloccount $(LIBOBJS:.o=.c) 2>/dev/null | grep "Total Physical" | awk '{print $$9}' | |
783 | echo "libcupsimage: \c" | |
784 | sloccount $(IMAGEOBJS:.o=.c) 2>/dev/null | grep "Total Physical" | awk '{print $$9}' | |
785 | ||
786 | ||
787 | # | |
788 | # Dependencies... | |
789 | # | |
790 | ||
791 | include Dependencies | |
792 | tls.o: tls-darwin.c tls-gnutls.c tls-sspi.c |