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