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