]> git.ipfire.org Git - thirdparty/cups.git/blob - cups/Makefile
Support AddressSanitizer in builds.
[thirdparty/cups.git] / cups / Makefile
1 #
2 # Library Makefile for CUPS.
3 #
4 # Copyright 2007-2018 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 mxmldoc --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 mxmldoc --section "Programming" --body cupspm.md \
746 cupspm.xml > ../doc/help/cupspm.html
747 $(RM) cupspm.xml
748 mxmldoc --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 mxmldoc --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 mxmldoc --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 mxmldoc --tokens help/api-raster.html api-raster.xml >../doc/help/api-raster.tokens
766 $(RM) api-raster.xml
767 mxmldoc --section "Programming" \
768 --title "Filter and Backend Programming" \
769 --css ../doc/cups-printable.css \
770 --header api-filter.header --intro api-filter.shtml \
771 api-filter.xml \
772 backchannel.c backend.h backend.c sidechannel.c sidechannel.h \
773 >../doc/help/api-filter.html
774 $(RM) api-filter.xml
775
776
777 #
778 # Lines of code computation...
779 #
780
781 sloc:
782 echo "libcups: \c"
783 sloccount $(LIBOBJS:.o=.c) 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
784 echo "libcupsimage: \c"
785 sloccount $(IMAGEOBJS:.o=.c) 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
786
787
788 #
789 # Dependencies...
790 #
791
792 include Dependencies
793 tls.o: tls-darwin.c tls-gnutls.c tls-sspi.c