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