• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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