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 16include ../Makedefs 17 18 19FILTERS = \ 20 commandtops \ 21 gziptoany \ 22 pstops \ 23 rastertoepson \ 24 rastertohp \ 25 rastertolabel \ 26 rastertopwg 27LIBTARGETS = \ 28 $(LIBCUPSIMAGE) \ 29 libcupsimage.a 30UNITTARGETS = \ 31 rasterbench \ 32 testraster 33TARGETS = \ 34 $(LIBTARGETS) \ 35 $(FILTERS) 36 37IMAGEOBJS = error.o interpret.o raster.o 38OBJS = $(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 48all: $(TARGETS) 49 50 51# 52# Make library targets... 53# 54 55libs: $(LIBTARGETS) 56 57 58# 59# Make unit tests... 60# 61 62unittests: $(UNITTARGETS) 63 64 65# 66# Clean all object files... 67# 68 69clean: 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 78depend: 79 $(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies 80 81 82# 83# Install all targets... 84# 85 86install: all install-data install-headers install-libs install-exec 87 88 89# 90# Install data files... 91# 92 93install-data: 94 95 96# 97# Install programs... 98# 99 100install-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 120install-headers: 121 122 123# 124# Install libraries... 125# 126 127install-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 144installstatic: 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 155uninstall: 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 177apihelp: 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 217commandtops: commandtops.o ../cups/$(LIBCUPS) 218 echo Linking $@... 219 $(CC) $(LDFLAGS) -o $@ commandtops.o $(LIBS) 220 221 222# 223# gziptoany 224# 225 226gziptoany: 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 235libcupsimage.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 247libcupsimage.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 262libcupsimage_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 274libcupsimage.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 285libcupsimage.a: $(IMAGEOBJS) 286 echo Archiving $@... 287 $(RM) $@ 288 $(AR) $(ARFLAGS) $@ $(IMAGEOBJS) 289 $(RANLIB) $@ 290 291 292# 293# pstops 294# 295 296pstops: 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 305rastertoepson: rastertoepson.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) 306 echo Linking $@... 307 $(CC) $(LDFLAGS) -o $@ rastertoepson.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) 308 309 310# 311# rastertohp 312# 313 314rastertohp: rastertohp.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) 315 echo Linking $@... 316 $(CC) $(LDFLAGS) -o $@ rastertohp.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) 317 318 319# 320# rastertolabel 321# 322 323rastertolabel: rastertolabel.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) 324 echo Linking $@... 325 $(CC) $(LDFLAGS) -o $@ rastertolabel.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) 326 327 328# 329# rastertopwg 330# 331 332rastertopwg: rastertopwg.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) 333 echo Linking $@... 334 $(CC) $(LDFLAGS) -o $@ rastertopwg.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) 335 336rastertopwg-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 347testraster: 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 360rasterbench: rasterbench.o libcupsimage.a 361 echo Linking $@... 362 $(CC) $(LDFLAGS) -o $@ rasterbench.o libcupsimage.a $(LIBS) 363 364 365# 366# Dependencies... 367# 368 369include Dependencies 370