Home | History | Annotate | Download | only in filter
      1 #
      2 # Filter makefile for CUPS.
      3 #
      4 # Copyright 2007-2012 by Apple Inc.
      5 # Copyright 1997-2006 by Easy Software Products.
      6 #
      7 # These coded instructions, statements, and computer programs are the
      8 # property of Apple Inc. and are protected by Federal copyright
      9 # law.  Distribution and use rights are outlined in the file "LICENSE.txt"
     10 # which should have been included with this file.  If this file is
     11 # missing or damaged, see the license at "http://www.cups.org/".
     12 #
     13 # This file is subject to the Apple OS-Developed Software exception.
     14 #
     15 
     16 include ../Makedefs
     17 
     18 
     19 FILTERS	=	\
     20 		commandtops \
     21 		gziptoany \
     22 		pstops \
     23 		rastertoepson \
     24 		rastertohp \
     25 		rastertolabel \
     26 		rastertopwg
     27 LIBTARGETS =	\
     28 		$(LIBCUPSIMAGE) \
     29 		libcupsimage.a
     30 UNITTARGETS =	\
     31 		rasterbench \
     32 		testraster
     33 TARGETS	=	\
     34 		$(LIBTARGETS) \
     35 		$(FILTERS)
     36 
     37 IMAGEOBJS =	error.o interpret.o raster.o
     38 OBJS	=	$(IMAGEOBJS) \
     39 		commandtops.o gziptoany.o common.o pstops.o \
     40 		rasterbench.o rastertoepson.o rastertohp.o rastertolabel.o \
     41 		rastertopwg.o testraster.o
     42 
     43 
     44 #
     45 # Make all targets...
     46 #
     47 
     48 all:	$(TARGETS)
     49 
     50 
     51 #
     52 # Make library targets...
     53 #
     54 
     55 libs:		$(LIBTARGETS)
     56 
     57 
     58 #
     59 # Make unit tests...
     60 #
     61 
     62 unittests:	$(UNITTARGETS)
     63 
     64 
     65 #
     66 # Clean all object files...
     67 #
     68 
     69 clean:
     70 	$(RM) $(OBJS) $(TARGETS) $(UNITTARGETS)
     71 	$(RM) libcupsimage.so libcupsimage.sl libcupsimage.dylib
     72 
     73 
     74 #
     75 # Update dependencies (without system header dependencies...)
     76 #
     77 
     78 depend:
     79 	$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
     80 
     81 
     82 #
     83 # Install all targets...
     84 #
     85 
     86 install:	all install-data install-headers install-libs install-exec
     87 
     88 
     89 #
     90 # Install data files...
     91 #
     92 
     93 install-data:
     94 
     95 
     96 #
     97 # Install programs...
     98 #
     99 
    100 install-exec:
    101 	$(INSTALL_DIR) -m 755 $(SERVERBIN)/filter
    102 	for file in $(FILTERS); do \
    103 		$(INSTALL_BIN) $$file $(SERVERBIN)/filter; \
    104 	done
    105 	$(RM) $(SERVERBIN)/filter/rastertodymo
    106 	$(LN) rastertolabel $(SERVERBIN)/filter/rastertodymo
    107 	if test "x$(SYMROOT)" != "x"; then \
    108 		$(INSTALL_DIR) $(SYMROOT); \
    109 		for file in $(FILTERS); do \
    110 			cp $$file $(SYMROOT); \
    111 			dsymutil $(SYMROOT)/$$file; \
    112 		done \
    113 	fi
    114 
    115 
    116 #
    117 # Install headers...
    118 #
    119 
    120 install-headers:
    121 
    122 
    123 #
    124 # Install libraries...
    125 #
    126 
    127 install-libs: $(INSTALLSTATIC)
    128 	$(INSTALL_DIR) -m 755 $(LIBDIR)
    129 	$(INSTALL_LIB) $(LIBCUPSIMAGE) $(LIBDIR)
    130 	-if test $(LIBCUPSIMAGE) = "libcupsimage.so.2" -o $(LIBCUPSIMAGE) = "libcupsimage.sl.2"; then \
    131 		$(RM) $(LIBDIR)/`basename $(LIBCUPSIMAGE) .2`; \
    132 		$(LN) $(LIBCUPSIMAGE) $(LIBDIR)/`basename $(LIBCUPSIMAGE) .2`; \
    133 	fi
    134 	-if test $(LIBCUPSIMAGE) = "libcupsimage.2.dylib"; then \
    135 		$(RM) $(LIBDIR)/libcupsimage.dylib; \
    136 		$(LN) $(LIBCUPSIMAGE) $(LIBDIR)/libcupsimage.dylib; \
    137 	fi
    138 	if test "x$(SYMROOT)" != "x"; then \
    139 		$(INSTALL_DIR) $(SYMROOT); \
    140 		cp $(LIBCUPSIMAGE) $(SYMROOT); \
    141 		dsymutil $(SYMROOT)/$(LIBCUPSIMAGE); \
    142 	fi
    143 
    144 installstatic:
    145 	$(INSTALL_DIR) -m 755 $(LIBDIR)
    146 	$(INSTALL_LIB) -m 755 libcupsimage.a $(LIBDIR)
    147 	$(RANLIB) $(LIBDIR)/libcupsimage.a
    148 	$(CHMOD) 555 $(LIBDIR)/libcupsimage.a
    149 
    150 
    151 #
    152 # Uninstall all targets...
    153 #
    154 
    155 uninstall:
    156 	for file in $(FILTERS); do \
    157 		$(RM) $(SERVERBIN)/filter/$$file; \
    158 	done
    159 	$(RM) $(SERVERBIN)/filter/rastertodymo
    160 	-$(RMDIR) $(SERVERBIN)/filter
    161 	-$(RMDIR) $(SERVERBIN)
    162 	$(RM) $(LIBDIR)/libcupsimage.2.dylib
    163 	$(RM) $(LIBDIR)/libcupsimage.a
    164 	$(RM) $(LIBDIR)/libcupsimage.dylib
    165 	$(RM) $(LIBDIR)/libcupsimage_s.a
    166 	$(RM) $(LIBDIR)/libcupsimage.sl
    167 	$(RM) $(LIBDIR)/libcupsimage.sl.2
    168 	$(RM) $(LIBDIR)/libcupsimage.so
    169 	$(RM) $(LIBDIR)/libcupsimage.so.2
    170 	-$(RMDIR) $(LIBDIR)
    171 
    172 
    173 #
    174 # Automatic API help files...
    175 #
    176 
    177 apihelp:
    178 	echo Generating CUPS API help files...
    179 	mxmldoc --section "Programming" --title "Raster API" \
    180 		--css ../doc/cups-printable.css \
    181 		--header api-raster.header --intro api-raster.shtml \
    182 		api-raster.xml \
    183 		../cups/raster.h interpret.c raster.c \
    184 		>../doc/help/api-raster.html
    185 	mxmldoc --tokens help/api-raster.html api-raster.xml >../doc/help/api-raster.tokens
    186 	$(RM) api-raster.xml
    187 	mxmldoc --section "Programming" \
    188 		--title "Developing PostScript Printer Drivers" \
    189 		--css ../doc/cups-printable.css \
    190 		--header postscript-driver.header \
    191 		--intro postscript-driver.shtml \
    192 		>../doc/help/postscript-driver.html
    193 	mxmldoc --section "Programming" \
    194 		--title "Introduction to the PPD Compiler" \
    195 		--css ../doc/cups-printable.css \
    196 		--header ppd-compiler.header \
    197 		--intro ppd-compiler.shtml \
    198 		>../doc/help/ppd-compiler.html
    199 	mxmldoc --section "Programming" \
    200 		--title "Developing Raster Printer Drivers" \
    201 		--css ../doc/cups-printable.css \
    202 		--header raster-driver.header \
    203 		--intro raster-driver.shtml \
    204 		>../doc/help/raster-driver.html
    205 	mxmldoc --section "Specifications" \
    206 		--title "CUPS PPD Extensions" \
    207 		--css ../doc/cups-printable.css \
    208 		--header spec-ppd.header \
    209 		--intro spec-ppd.shtml \
    210 		>../doc/help/spec-ppd.html
    211 
    212 
    213 #
    214 # commandtops
    215 #
    216 
    217 commandtops:	commandtops.o ../cups/$(LIBCUPS)
    218 	echo Linking $@...
    219 	$(CC) $(LDFLAGS) -o $@ commandtops.o $(LIBS)
    220 
    221 
    222 #
    223 # gziptoany
    224 #
    225 
    226 gziptoany:	gziptoany.o ../Makedefs ../cups/$(LIBCUPS)
    227 	echo Linking $@...
    228 	$(CC) $(LDFLAGS) -o $@ gziptoany.o $(LIBZ) $(LIBS)
    229 
    230 
    231 #
    232 # libcupsimage.so.2, libcupsimage.sl.2
    233 #
    234 
    235 libcupsimage.so.2 libcupsimage.sl.2:	$(IMAGEOBJS)
    236 	echo Linking $@...
    237 	$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS) $(DSOLIBS) \
    238 		-L../cups $(LINKCUPS)
    239 	$(RM) `basename $@ .2`
    240 	$(LN) $@ `basename $@ .2`
    241 
    242 
    243 #
    244 # libcupsimage.2.dylib
    245 #
    246 
    247 libcupsimage.2.dylib:	$(IMAGEOBJS) $(LIBCUPSIMAGEORDER)
    248 	echo Linking $@...
    249 	$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
    250 		-install_name $(libdir)/$@ \
    251 		-current_version 2.3.0 \
    252 		-compatibility_version 2.0.0 \
    253 		$(IMAGEOBJS) $(DSOLIBS) -L../cups $(LINKCUPS)
    254 	$(RM) libcupsimage.dylib
    255 	$(LN) $@ libcupsimage.dylib
    256 
    257 
    258 #
    259 # libcupsimage_s.a
    260 #
    261 
    262 libcupsimage_s.a:	$(IMAGEOBJS) libcupsimage_s.exp
    263 	echo Linking $@...
    264 	$(DSO) $(DSOFLAGS) -Wl,-berok,-bexport:libcupsimage_s.exp \
    265 		-o libcupsimage_s.o $(IMAGEOBJS) $(DSOLIBS)
    266 	$(RM) $@
    267 	$(AR) $(ARFLAGS) $@ libcupsimage_s.o
    268 
    269 
    270 #
    271 # libcupsimage.la
    272 #
    273 
    274 libcupsimage.la:       $(IMAGEOBJS)
    275 	echo Linking $@...
    276 	$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS:.o=.lo) $(DSOLIBS) \
    277 		-L../cups $(LINKCUPS) \
    278 		-rpath $(LIBDIR) -version-info 2:3
    279 
    280 
    281 #
    282 # libcupsimage.a
    283 #
    284 
    285 libcupsimage.a:	$(IMAGEOBJS)
    286 	echo Archiving $@...
    287 	$(RM) $@
    288 	$(AR) $(ARFLAGS) $@ $(IMAGEOBJS)
    289 	$(RANLIB) $@
    290 
    291 
    292 #
    293 # pstops
    294 #
    295 
    296 pstops:	pstops.o common.o ../cups/$(LIBCUPS)
    297 	echo Linking $@...
    298 	$(CC) $(LDFLAGS) -o $@ pstops.o common.o $(LIBS)
    299 
    300 
    301 #
    302 # rastertoepson
    303 #
    304 
    305 rastertoepson:	rastertoepson.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE)
    306 	echo Linking $@...
    307 	$(CC) $(LDFLAGS) -o $@ rastertoepson.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS)
    308 
    309 
    310 #
    311 # rastertohp
    312 #
    313 
    314 rastertohp:	rastertohp.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE)
    315 	echo Linking $@...
    316 	$(CC) $(LDFLAGS) -o $@ rastertohp.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS)
    317 
    318 
    319 #
    320 # rastertolabel
    321 #
    322 
    323 rastertolabel:	rastertolabel.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE)
    324 	echo Linking $@...
    325 	$(CC) $(LDFLAGS) -o $@ rastertolabel.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS)
    326 
    327 
    328 #
    329 # rastertopwg
    330 #
    331 
    332 rastertopwg:	rastertopwg.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE)
    333 	echo Linking $@...
    334 	$(CC) $(LDFLAGS) -o $@ rastertopwg.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS)
    335 
    336 rastertopwg-static:	rastertopwg.o ../cups/$(LIBCUPSSTATIC) libcupsimage.a
    337 	echo Linking $@...
    338 	$(CC) $(LDFLAGS) -o $@ rastertopwg.o libcupsimage.a \
    339 		../cups/$(LIBCUPSSTATIC) $(IMGLIBS) $(DSOLIBS) $(COMMONLIBS) \
    340 		$(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
    341 
    342 
    343 #
    344 # testraster
    345 #
    346 
    347 testraster:	testraster.o ../cups/$(LIBCUPSSTATIC) libcupsimage.a
    348 	echo Linking $@...
    349 	$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testraster.o libcupsimage.a \
    350 		../cups/$(LIBCUPSSTATIC) $(IMGLIBS) $(DSOLIBS) $(COMMONLIBS) \
    351 		$(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
    352 	echo Running raster API tests...
    353 	./testraster
    354 
    355 
    356 #
    357 # rasterbench
    358 #
    359 
    360 rasterbench:	rasterbench.o libcupsimage.a
    361 	echo Linking $@...
    362 	$(CC) $(LDFLAGS) -o $@ rasterbench.o libcupsimage.a $(LIBS)
    363 
    364 
    365 #
    366 # Dependencies...
    367 #
    368 
    369 include Dependencies
    370