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