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