1# 2# Backend makefile for CUPS. 3# 4# Copyright © 2020-2024 by OpenPrinting. 5# Copyright © 2007-2019 by Apple Inc. 6# Copyright © 1997-2007 by Easy Software Products, all rights reserved. 7# 8# Licensed under Apache License v2.0. See the file "LICENSE" for more 9# information. 10# 11 12include ../Makedefs 13 14# 15# Object files... 16# 17 18# RBACKENDS are installed mode 0744 so cupsd will run them as root... 19# 20# UBACKENDS are installed mode 0755 so cupsd will run them as an unprivileged 21# user... 22# 23# See <http://openprinting.github.io/cups/doc/api-filter.html> for more info... 24RBACKENDS = \ 25 ipp \ 26 lpd \ 27 usb \ 28 $(DNSSD_BACKEND) 29UBACKENDS = \ 30 snmp \ 31 socket 32UNITTESTS = \ 33 test1284 \ 34 testbackend \ 35 testsupplies 36TARGETS = \ 37 libbackend.a \ 38 $(RBACKENDS) \ 39 $(UBACKENDS) 40LIBOBJS = \ 41 ieee1284.o \ 42 network.o \ 43 runloop.o \ 44 snmp-supplies.o 45OBJS = \ 46 ipp.o \ 47 lpd.o \ 48 dnssd.o \ 49 snmp.o \ 50 socket.o \ 51 test1284.o \ 52 testbackend.o \ 53 testsupplies.o \ 54 usb.o 55 56 57# 58# Make all targets... 59# 60 61all: $(TARGETS) 62 63 64# 65# Make library targets... 66# 67 68libs: 69 70 71# 72# Make unit tests... 73# 74 75unittests: $(UNITTESTS) 76 77 78# 79# Clean all object files... 80# 81 82clean: 83 $(RM) $(OBJS) $(TARGETS) $(UNITTESTS) $(LIBOBJS) http https ipps mdns socket-static 84 85 86# 87# Update dependencies (without system header dependencies...) 88# 89 90depend: 91 $(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies 92 93 94# 95# Install all targets... 96# 97 98install: all install-data install-headers install-libs install-exec 99 100 101# 102# Install data files... 103# 104 105install-data: 106 if test "x$(USBQUIRKS)" != x; then \ 107 echo Installing USB quirks in $(USBQUIRKS); \ 108 $(INSTALL_DIR) -m 755 $(USBQUIRKS); \ 109 $(INSTALL_DATA) org.cups.usb-quirks $(USBQUIRKS); \ 110 fi 111 112 113# 114# Install programs... 115# 116 117install-exec: $(INSTALLXPC) 118 echo Installing backends in $(SERVERBIN)/backend 119 $(INSTALL_DIR) -m 755 $(SERVERBIN)/backend 120 for file in $(RBACKENDS); do \ 121 $(INSTALL_BIN) -m 744 $$file $(SERVERBIN)/backend; \ 122 done 123 for file in $(UBACKENDS); do \ 124 $(INSTALL_BIN) $$file $(SERVERBIN)/backend; \ 125 done 126 for file in $(IPPALIASES); do \ 127 $(RM) $(SERVERBIN)/backend/$$file; \ 128 $(LN) ipp $(SERVERBIN)/backend/$$file; \ 129 done 130 if test "x$(DNSSD_BACKEND)" != x -a `uname` = Darwin; then \ 131 $(RM) $(SERVERBIN)/backend/mdns; \ 132 $(LN) $(DNSSD_BACKEND) $(SERVERBIN)/backend/mdns; \ 133 fi 134 if test "x$(SYMROOT)" != "x"; then \ 135 $(INSTALL_DIR) $(SYMROOT); \ 136 for file in $(RBACKENDS) $(UBACKENDS); do \ 137 cp $$file $(SYMROOT); \ 138 dsymutil $(SYMROOT)/$$file; \ 139 done \ 140 fi 141 142install-xpc: ipp 143 echo Installing XPC backends in $(SERVERBIN)/apple 144 $(INSTALL_DIR) -m 755 $(SERVERBIN)/apple 145 $(INSTALL_BIN) ipp $(SERVERBIN)/apple 146 for file in $(IPPALIASES); do \ 147 $(RM) $(SERVERBIN)/apple/$$file; \ 148 $(LN) ipp $(SERVERBIN)/apple/$$file; \ 149 done 150 151 152# 153# Install headers... 154# 155 156install-headers: 157 158 159# 160# Install libraries... 161# 162 163install-libs: 164 165 166# 167# Uninstall all targets... 168# 169 170uninstall: 171 $(RM) $(SERVERBIN)/apple/ipp 172 for file in $(IPPALIASES); do \ 173 $(RM) $(SERVERBIN)/apple/$$file; \ 174 done 175 -$(RMDIR) $(SERVERBIN)/apple 176 for file in $(RBACKENDS) $(UBACKENDS); do \ 177 $(RM) $(SERVERBIN)/backend/$$file; \ 178 done 179 for file in $(IPPALIASES); do \ 180 $(RM) $(SERVERBIN)/backend/$$file; \ 181 done 182 -$(RMDIR) $(SERVERBIN)/backend 183 -$(RMDIR) $(SERVERBIN) 184 185 186# 187# test1284 188# 189 190test1284: test1284.o ../cups/$(LIBCUPSSTATIC) 191 echo Linking $@... 192 $(LD_CC) $(ALL_LDFLAGS) -o test1284 test1284.o $(LINKCUPSSTATIC) 193 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 194 195 196# 197# testbackend 198# 199 200testbackend: testbackend.o ../cups/$(LIBCUPSSTATIC) 201 echo Linking $@... 202 $(LD_CC) $(ALL_LDFLAGS) -o testbackend testbackend.o $(LINKCUPSSTATIC) 203 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 204 205 206# 207# testsupplies 208# 209 210testsupplies: testsupplies.o libbackend.a ../cups/$(LIBCUPSSTATIC) 211 echo Linking $@... 212 $(LD_CC) $(ALL_LDFLAGS) -o testsupplies testsupplies.o libbackend.a \ 213 $(LINKCUPSSTATIC) 214 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 215 216 217# 218# libbackend.a 219# 220 221libbackend.a: $(LIBOBJS) 222 echo Archiving $@... 223 $(RM) $@ 224 $(AR) $(ARFLAGS) $@ $(LIBOBJS) 225 $(RANLIB) $@ 226 227 228# 229# dnssd 230# 231 232dnssd: dnssd.o ../cups/$(LIBCUPS) libbackend.a 233 echo Linking $@... 234 $(LD_CC) $(ALL_LDFLAGS) -o dnssd dnssd.o libbackend.a $(DNSSDLIBS) $(LINKCUPS) 235 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 236 if test `uname` = Darwin; then \ 237 $(RM) mdns; \ 238 $(LN) dnssd mdns; \ 239 fi 240 241 242# 243# ipp 244# 245 246ipp: ipp.o ../cups/$(LIBCUPS) libbackend.a 247 echo Linking $@... 248 $(LD_CC) $(ALL_LDFLAGS) -o ipp ipp.o libbackend.a $(LINKCUPS) 249 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 250 $(RM) http https ipps 251 for file in $(IPPALIASES); do \ 252 $(LN) ipp $$file; \ 253 done 254 255 256# 257# lpd 258# 259 260lpd: lpd.o ../cups/$(LIBCUPS) libbackend.a 261 echo Linking $@... 262 $(LD_CC) $(ALL_LDFLAGS) -o lpd lpd.o libbackend.a $(LINKCUPS) 263 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 264 265 266# 267# snmp 268# 269 270snmp: snmp.o ../cups/$(LIBCUPS) libbackend.a 271 echo Linking $@... 272 $(LD_CC) $(ALL_LDFLAGS) -o snmp snmp.o libbackend.a $(LINKCUPS) 273 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 274 275 276# 277# socket 278# 279 280socket: socket.o ../cups/$(LIBCUPS) libbackend.a 281 echo Linking $@... 282 $(LD_CC) $(ALL_LDFLAGS) -o socket socket.o libbackend.a $(LINKCUPS) 283 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 284 285socket-static: socket.o ../cups/$(LIBCUPSSTATIC) libbackend.a 286 echo Linking $@... 287 $(LD_CC) $(ALL_LDFLAGS) -o socket-static socket.o libbackend.a \ 288 $(LINKCUPSSTATIC) 289 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 290 291 292# 293# usb 294# 295 296usb: usb.o ../cups/$(LIBCUPS) libbackend.a 297 echo Linking $@... 298 $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) \ 299 $(BACKLIBS) $(COMMONLIBS) $(LINKCUPS) 300 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ 301usb.o: usb.c usb-darwin.c usb-libusb.c usb-unix.c 302 303 304# 305# Dependencies... 306# 307 308include Dependencies 309