Revert manifest to default one
[external/cups.git] / cups / Makefile
1 #
2 # "$Id: Makefile 9979 2011-09-09 16:34:29Z mike $"
3 #
4 #   API library Makefile for CUPS.
5 #
6 #   Copyright 2007-2011 by Apple Inc.
7 #   Copyright 1997-2006 by Easy Software Products, all rights reserved.
8 #
9 #   These coded instructions, statements, and computer programs are the
10 #   property of Apple Inc. and are protected by Federal copyright
11 #   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
12 #   which should have been included with this file.  If this file is
13 #   file is missing or damaged, see the license at "http://www.cups.org/".
14 #
15 #   This file is subject to the Apple OS-Developed Software exception.
16 #
17
18 include ../Makedefs
19
20 #
21 # Object files...
22 #
23
24 LIBOBJS =       \
25                 adminutil.o \
26                 array.o \
27                 attr.o \
28                 auth.o \
29                 backchannel.o \
30                 backend.o \
31                 conflicts.o \
32                 custom.o \
33                 debug.o \
34                 dest.o \
35                 dir.o \
36                 emit.o \
37                 encode.o \
38                 file.o \
39                 getdevices.o \
40                 getifaddrs.o \
41                 getputfile.o \
42                 globals.o \
43                 http.o \
44                 http-addr.o \
45                 http-addrlist.o \
46                 http-support.o \
47                 ipp.o \
48                 ipp-support.o \
49                 langprintf.o \
50                 language.o \
51                 localize.o \
52                 mark.o \
53                 md5.o \
54                 md5passwd.o \
55                 notify.o \
56                 options.o \
57                 page.o \
58                 ppd.o \
59                 ppd-cache.o \
60                 pwg-media.o \
61                 request.o \
62                 sidechannel.o \
63                 snmp.o \
64                 snprintf.o \
65                 string.o \
66                 tempfile.o \
67                 thread.o \
68                 transcode.o \
69                 usersys.o \
70                 util.o
71 LIB32OBJS       = $(LIBOBJS:.o=.32.o)
72 LIB64OBJS       = $(LIBOBJS:.o=.64.o)
73 OBJS    =       \
74                 $(LIBOBJS) \
75                 $(LIB32OBJS) \
76                 $(LIB64OBJS) \
77                 testadmin.o \
78                 testarray.o \
79                 testconflicts.o \
80                 testcups.o \
81                 testfile.o \
82                 testhttp.o \
83                 testi18n.o \
84                 testipp.o \
85                 testoptions.o \
86                 testlang.o \
87                 testppd.o \
88                 testpwg.o \
89                 testsnmp.o
90
91
92 #
93 # Header files to install...
94 #
95
96 HEADERS =       \
97                 adminutil.h \
98                 array.h \
99                 backend.h \
100                 cups.h \
101                 dir.h \
102                 file.h \
103                 http.h \
104                 ipp.h \
105                 language.h \
106                 ppd.h \
107                 raster.h \
108                 sidechannel.h \
109                 transcode.h \
110                 versioning.h
111
112 HEADERSPRIV =   \
113                 array-private.h \
114                 cups-private.h \
115                 debug-private.h \
116                 file-private.h \
117                 http-private.h \
118                 ipp-private.h \
119                 language-private.h \
120                 md5-private.h \
121                 ppd-private.h \
122                 pwg-private.h \
123                 snmp-private.h \
124                 string-private.h \
125                 thread-private.h
126
127
128 #
129 # Targets in this directory...
130 #
131
132 LIBTARGETS =    \
133                 $(LIBCUPSSTATIC) \
134                 $(LIBCUPS) \
135                 $(LIB32CUPS) \
136                 $(LIB64CUPS)
137
138 UNITTARGETS =   \
139                 testadmin \
140                 testarray \
141                 testconflicts \
142                 testcups \
143                 testfile \
144                 testhttp \
145                 testi18n \
146                 testipp \
147                 testlang \
148                 testoptions \
149                 testppd \
150                 testpwg \
151                 testsnmp
152
153 TARGETS =       \
154                 $(LIBTARGETS)
155
156
157 #
158 # Make all targets...
159 #
160
161 all:            $(TARGETS)
162
163
164 #
165 # Make library targets...
166 #
167
168 libs:           $(LIBTARGETS)
169
170
171 #
172 # Make unit tests...
173 #
174
175 unittests:      $(UNITTARGETS)
176
177
178 #
179 # Remove object and target files...
180 #
181
182 clean:
183         $(RM) $(OBJS) $(TARGETS) $(UNITTARGETS)
184         $(RM) libcups.so libcups.sl libcups.dylib
185         $(RM) -r 32bit 64bit
186
187
188 #
189 # Update dependencies (without system header dependencies...)
190 #
191
192 depend:
193         touch Dependencies.tmp
194         makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
195         $(RM) Dependencies
196         cp Dependencies.tmp Dependencies
197         sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
198         sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
199         $(RM) Dependencies.tmp
200
201
202 #
203 # Install all targets...
204 #
205
206 install:        all install-data install-headers install-libs install-exec
207
208
209 #
210 # Install data files...
211 #
212
213 install-data:
214
215
216 #
217 # Install programs...
218 #
219
220 install-exec:
221
222
223 #
224 # Install headers...
225 #
226
227 install-headers:
228         echo Installing header files into $(INCLUDEDIR)/cups...
229         $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
230         for file in $(HEADERS); do \
231                 $(INSTALL_DATA) $$file $(INCLUDEDIR)/cups; \
232         done
233         if test "x$(privateinclude)" != x; then \
234                 echo Installing private header files into $(PRIVATEINCLUDE)...; \
235                 $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \
236                 for file in $(HEADERSPRIV); do \
237                         $(INSTALL_DATA) $$file $(PRIVATEINCLUDE)/$$file; \
238                 done; \
239         fi
240
241
242 #
243 # Install libraries...
244 #
245
246 install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
247         echo Installing libraries in $(LIBDIR)...
248         $(INSTALL_DIR) -m 755 $(LIBDIR)
249         $(INSTALL_LIB) $(LIBCUPS) $(LIBDIR)
250         if test $(LIBCUPS) = "libcups.so.2" -o $(LIBCUPS) = "libcups.sl.2"; then \
251                 $(RM) $(LIBDIR)/`basename $(LIBCUPS) .2`; \
252                 $(LN) $(LIBCUPS) $(LIBDIR)/`basename $(LIBCUPS) .2`; \
253         fi
254         if test $(LIBCUPS) = "libcups.2.dylib"; then \
255                 $(RM) $(LIBDIR)/libcups.dylib; \
256                 $(LN) $(LIBCUPS) $(LIBDIR)/libcups.dylib; \
257         fi
258         if test "x$(SYMROOT)" != "x"; then \
259                 $(INSTALL_DIR) $(SYMROOT); \
260                 cp $(LIBCUPS) $(SYMROOT); \
261         fi
262
263 installstatic:
264         $(INSTALL_DIR) -m 755 $(LIBDIR)
265         $(INSTALL_LIB) -m 755 $(LIBCUPSSTATIC) $(LIBDIR)
266         $(RANLIB) $(LIBDIR)/$(LIBCUPSSTATIC)
267         $(CHMOD) 555 $(LIBDIR)/$(LIBCUPSSTATIC)
268
269 install32bit:
270         echo Installing libraries in $(LIB32DIR)...
271         $(INSTALL_DIR) -m 755 $(LIB32DIR)
272         $(INSTALL_LIB) 32bit/libcups.so.2 $(LIB32DIR)/libcups.so.2
273         $(LN) libcups.so.2 $(LIB32DIR)/libcups.so
274
275 install64bit:
276         echo Installing libraries in $(LIB64DIR)...
277         $(INSTALL_DIR) -m 755 $(LIB64DIR)
278         $(INSTALL_LIB) 64bit/libcups.so.2 $(LIB64DIR)/libcups.so.2
279         $(LN) libcups.so.2 $(LIB64DIR)/libcups.so
280
281
282 #
283 # Uninstall object and target files...
284 #
285
286 uninstall: $(UNINSTALL32) $(UNINSTALL64)
287         $(RM) $(LIBDIR)/libcups.2.dylib
288         $(RM) $(LIBDIR)/$(LIBCUPSSTATIC)
289         $(RM) $(LIBDIR)/libcups.dylib
290         $(RM) $(LIBDIR)/libcups_s.a
291         $(RM) $(LIBDIR)/libcups.sl
292         $(RM) $(LIBDIR)/libcups.sl.2
293         $(RM) $(LIBDIR)/libcups.so
294         $(RM) $(LIBDIR)/libcups.so.2
295         -$(RMDIR) $(LIBDIR)
296         for file in $(HEADERS); do \
297                 $(RM) $(INCLUDEDIR)/cups/$$file; \
298         done
299         -$(RMDIR) $(INCLUDEDIR)/cups
300
301 uninstall32bit:
302         $(RM) $(LIB32DIR)/libcups.so
303         $(RM) $(LIB32DIR)/libcups.so.2
304         -$(RMDIR) $(LIB32DIR)
305
306 uninstall64bit:
307         $(RM) $(LIB64DIR)/libcups.so
308         $(RM) $(LIB64DIR)/libcups.so.2
309         -$(RMDIR) $(LIB64DIR)
310
311
312 #
313 # libcups.so.2, libcups.sl.2
314 #
315
316 libcups.so.2 libcups.sl.2:      $(LIBOBJS)
317         echo Linking $@...
318         $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBGSSAPI) \
319                 $(SSLLIBS) $(DNSSDLIBS) -lpthread $(LIBZ) -lm
320         $(RM) `basename $@ .2`
321         $(LN) $@ `basename $@ .2`
322
323
324 #
325 # 32bit/libcups.so.2
326 #
327
328 32bit/libcups.so.2:     $(LIB32OBJS)
329         echo Linking 32-bit $@...
330         -mkdir 32bit
331         $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBGSSAPI) \
332                 $(DNSSDLIBS) $(SSLLIBS) -lpthread $(LIBZ) -lm
333         $(RM) 32bit/libcups.so
334         $(LN) libcups.so.2 32bit/libcups.so
335
336
337 #
338 # 64bit/libcups.so.2
339 #
340
341 64bit/libcups.so.2:     $(LIB64OBJS)
342         echo Linking 64-bit $@...
343         -mkdir 64bit
344         $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBGSSAPI) \
345                 $(DNSSDLIBS) $(SSLLIBS) -lpthread $(LIBZ) -lm
346         $(RM) 64bit/libcups.so
347         $(LN) libcups.so.2 64bit/libcups.so
348
349
350 #
351 # libcups.2.dylib
352 #
353
354 libcups.2.dylib:        $(LIBOBJS) $(LIBCUPSORDER)
355         echo Creating export list for $@...
356         nm $(LIBOBJS) 2>/dev/null | grep "T _" | awk '{print $$3}' | \
357                 grep -v -e '^(_cupsConnect|_cupsCharset|_cupsEncodingName|_cupsSetDefaults|_cupsSetHTTPError|_cupsUserDefault|_httpWait)$$' | \
358                 sort >t.exp
359         echo Linking $@...
360         $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
361                 -install_name $(libdir)/$@ \
362                 -current_version 2.9.0 \
363                 -compatibility_version 2.0.0 \
364                 -exported_symbols_list t.exp \
365                 $(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
366                 -lpthread $(LIBZ) -lm
367         $(RM) libcups.dylib t.exp
368         $(LN) $@ libcups.dylib
369
370
371 #
372 # libcups_s.a
373 #
374
375 libcups_s.a:    $(LIBOBJS) libcups_s.exp
376         echo Creating $@...
377         $(DSO) $(DSOFLAGS) -Wl,-bexport:libcups_s.exp -o libcups_s.o \
378                 $(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
379                 -lpthread $(LIBZ) -lm
380         $(RM) $@
381         $(AR) $(ARFLAGS) $@ libcups_s.o
382
383
384 #
385 # libcups.la
386 #
387
388 libcups.la:    $(LIBOBJS)
389         echo Linking $@...
390         $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) \
391                 -rpath $(LIBDIR) -version-info 2:9 $(LIBGSSAPI) $(SSLLIBS) \
392                 $(DNSSDLIBS) -lpthread $(LIBZ) -lm
393
394
395 #
396 # libcups.a
397 #
398
399 libcups.a:      $(LIBOBJS)
400         echo Archiving $@...
401         $(RM) $@
402         $(AR) $(ARFLAGS) $@ $(LIBOBJS)
403         $(RANLIB) $@
404
405
406 #
407 # testadmin (dependency on static CUPS library is intentional)
408 #
409
410 testadmin:      testadmin.o $(LIBCUPSSTATIC)
411         echo Linking $@...
412         $(CC) $(LDFLAGS) -o $@ testadmin.o $(LIBCUPSSTATIC) \
413                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
414
415
416 #
417 # testarray (dependency on static CUPS library is intentional)
418 #
419
420 testarray:      testarray.o $(LIBCUPSSTATIC)
421         echo Linking $@...
422         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testarray.o $(LIBCUPSSTATIC) \
423                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
424         echo Running array API tests...
425         ./testarray
426
427
428 #
429 # testconflicts (dependency on static CUPS library is intentional)
430 #
431
432 testconflicts:  testconflicts.o $(LIBCUPSSTATIC)
433         echo Linking $@...
434         $(CC) $(LDFLAGS) -o $@ testconflicts.o $(LIBCUPSSTATIC) \
435                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
436
437
438 #
439 # testcups (dependency on static CUPS library is intentional)
440 #
441
442 testcups:       testcups.o $(LIBCUPSSTATIC)
443         echo Linking $@...
444         $(CC) $(LDFLAGS) -o $@ testcups.o $(LIBCUPSSTATIC) \
445                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
446
447
448 #
449 # testfile (dependency on static CUPS library is intentional)
450 #
451
452 testfile:       testfile.o $(LIBCUPSSTATIC)
453         echo Linking $@...
454         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testfile.o $(LIBCUPSSTATIC) \
455                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
456         echo Running file API tests...
457         ./testfile
458
459
460 #
461 # testhttp (dependency on static CUPS library is intentional)
462 #
463
464 testhttp:       testhttp.o $(LIBCUPSSTATIC)
465         echo Linking $@...
466         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhttp.o $(LIBCUPSSTATIC) \
467                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
468         echo Running HTTP API tests...
469         #./testhttp
470
471
472 #
473 # testipp (dependency on static CUPS library is intentional)
474 #
475
476 testipp:        testipp.o $(LIBCUPSSTATIC)
477         echo Linking $@...
478         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testipp.o $(LIBCUPSSTATIC) \
479                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
480         echo Running IPP API tests...
481         ./testipp
482
483
484 #
485 # testi18n (dependency on static CUPS library is intentional)
486 #
487
488 testi18n:       testi18n.o $(LIBCUPSSTATIC)
489         echo Linking $@...
490         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testi18n.o $(LIBCUPSSTATIC) \
491                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
492         echo Running internationalization API tests...
493         ./testi18n
494
495
496 #
497 # testlang (dependency on static CUPS library is intentional)
498 #
499
500 testlang:       testlang.o $(LIBCUPSSTATIC)
501         echo Linking $@...
502         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testlang.o $(LIBCUPSSTATIC) \
503                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
504         echo Running language API tests...
505         ./testlang
506
507
508 #
509 # testoptions (dependency on static CUPS library is intentional)
510 #
511
512 testoptions:    testoptions.o $(LIBCUPSSTATIC)
513         echo Linking $@...
514         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testoptions.o $(LIBCUPSSTATIC) \
515                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
516         echo Running option API tests...
517         ./testoptions
518
519
520 #
521 # testppd (dependency on static CUPS library is intentional)
522 #
523
524 testppd:        testppd.o $(LIBCUPSSTATIC) test.ppd test2.ppd
525         echo Linking $@...
526         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testppd.o $(LIBCUPSSTATIC) \
527                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
528         echo Running PPD API tests...
529         ./testppd
530
531
532 #
533 # testpwg (dependency on static CUPS library is intentional)
534 #
535
536 testpwg:        testpwg.o $(LIBCUPSSTATIC) test.ppd
537         echo Linking $@...
538         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testpwg.o $(LIBCUPSSTATIC) \
539                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
540         echo Running PWG API tests...
541         ./testpwg test.ppd
542
543
544 #
545 # testsnmp (dependency on static CUPS library is intentional)
546 #
547
548 testsnmp:       testsnmp.o $(LIBCUPSSTATIC)
549         echo Linking $@...
550         $(CC) $(LDFLAGS) -o $@ testsnmp.o $(LIBCUPSSTATIC) \
551                 $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
552
553
554 #
555 # Automatic API help files...
556 #
557
558 apihelp:
559         echo Generating CUPS API help files...
560         mxmldoc --section "Programming" \
561                 --title "Introduction to CUPS Programming" \
562                 --css ../doc/cups-printable.css \
563                 --header api-overview.header --intro api-overview.shtml \
564                 >../doc/help/api-overview.html
565         mxmldoc --section "Programming" --title "Array API" \
566                 --css ../doc/cups-printable.css \
567                 --header api-array.header --intro api-array.shtml \
568                 api-array.xml \
569                 array.h array.c >../doc/help/api-array.html
570         mxmldoc --tokens help/api-array.html api-array.xml >../doc/help/api-array.tokens
571         $(RM) api-array.xml
572         mxmldoc --section "Programming" --title "CUPS API" \
573                 --css ../doc/cups-printable.css \
574                 --header api-cups.header --intro api-cups.shtml \
575                 api-cups.xml \
576                 cups.h adminutil.c dest.c language.c notify.c \
577                 options.c tempfile.c usersys.c \
578                 util.c >../doc/help/api-cups.html
579         mxmldoc --tokens help/api-cups.html api-cups.xml >../doc/help/api-cups.tokens
580         $(RM) api-cups.xml
581         mxmldoc --section "Programming" --title "File and Directory APIs" \
582                 --css ../doc/cups-printable.css \
583                 --header api-filedir.header --intro api-filedir.shtml \
584                 api-filedir.xml \
585                 file.h file.c dir.h dir.c >../doc/help/api-filedir.html
586         mxmldoc --tokens api-filedir.xml >../doc/help/api-filedir.tokens
587         $(RM) api-filedir.xml
588         mxmldoc --section "Programming" --title "PPD API" \
589                 --css ../doc/cups-printable.css \
590                 --header api-ppd.header --intro api-ppd.shtml \
591                 api-ppd.xml \
592                 ppd.h attr.c conflicts.c custom.c emit.c localize.c mark.c page.c \
593                 ppd.c >../doc/help/api-ppd.html
594         mxmldoc --tokens help/api-ppd.html api-ppd.xml >../doc/help/api-ppd.tokens
595         $(RM) api-ppd.xml
596         mxmldoc --section "Programming" --title "HTTP and IPP APIs" \
597                 --css ../doc/cups-printable.css \
598                 --header api-httpipp.header --intro api-httpipp.shtml \
599                 api-httpipp.xml \
600                 http.h ipp.h auth.c getdevices.c getputfile.c encode.c \
601                 http.c http-addr.c http-support.c ipp.c ipp-support.c \
602                 md5passwd.c request.c >../doc/help/api-httpipp.html
603         mxmldoc --tokens help/api-httpipp.html api-httpipp.xml >../doc/help/api-httpipp.tokens
604         $(RM) api-httpipp.xml
605         mxmldoc --section "Programming" \
606                 --title "Filter and Backend Programming" \
607                 --css ../doc/cups-printable.css \
608                 --header api-filter.header --intro api-filter.shtml \
609                 api-filter.xml \
610                 backchannel.c backend.h backend.c sidechannel.c sidechannel.h \
611                 >../doc/help/api-filter.html
612         mxmldoc --tokens help/api-filter.html api-filter.xml >../doc/help/api-filter.tokens
613         $(RM) api-filter.xml
614
615 framedhelp:
616         echo Generating CUPS API help files...
617         mxmldoc --framed api-overview \
618                 --section "Programming" \
619                 --title "Introduction to CUPS Programming" \
620                 --css ../doc/cups-printable.css \
621                 --header api-overview.header --intro api-overview.shtml
622         mxmldoc --framed api-array \
623                 --section "Programming" --title "Array API" \
624                 --css ../doc/cups-printable.css \
625                 --header api-array.header --intro api-array.shtml \
626                 array.h array.c
627         mxmldoc --framed api-cups \
628                 --section "Programming" --title "CUPS API" \
629                 --css ../doc/cups-printable.css \
630                 --header api-cups.header --intro api-cups.shtml \
631                 cups.h adminutil.c dest.c language.c notify.c \
632                 options.c tempfile.c usersys.c \
633                 util.c
634         mxmldoc --framed api-filedir \
635                 --section "Programming" --title "File and Directory APIs" \
636                 --css ../doc/cups-printable.css \
637                 --header api-filedir.header --intro api-filedir.shtml \
638                 file.h file.c dir.h dir.c
639         mxmldoc --framed api-ppd \
640                 --section "Programming" --title "PPD API" \
641                 --css ../doc/cups-printable.css \
642                 --header api-ppd.header --intro api-ppd.shtml \
643                 ppd.h attr.c conflicts.c custom.c emit.c localize.c mark.c \
644                 page.c ppd.c
645         mxmldoc --framed api-httpipp \
646                 --section "Programming" --title "HTTP and IPP APIs" \
647                 --css ../doc/cups-printable.css \
648                 --header api-httpipp.header --intro api-httpipp.shtml \
649                 http.h ipp.h auth.c getdevices.c getputfile.c encode.c \
650                 http.c http-addr.c http-support.c ipp.c ipp-support.c \
651                 md5passwd.c request.c
652         mxmldoc --framed api-filter \
653                 --section "Programming" \
654                 --title "Filter and Backend Programming" \
655                 --css ../doc/cups-printable.css \
656                 --header api-filter.header --intro api-filter.shtml \
657                 backchannel.c backend.h backend.c sidechannel.c sidechannel.h
658
659
660 #
661 # Lines of code computation...
662 #
663
664 sloc:
665         echo "libcupslite: \c"
666         sloccount $(LITEOBJS:.o=.c) 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
667         echo "libcups: \c"
668         sloccount $(LIBOBJS:.o=.c) 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
669
670
671 #
672 # Dependencies...
673 #
674
675 include Dependencies
676
677
678 #
679 # End of "$Id: Makefile 9979 2011-09-09 16:34:29Z mike $".
680 #