1#
2# Makefile for rpc.lockd
3#
4
5Project = rpc.lockd
6
7inplace:
8	@$(MAKE) all SRCROOT=. OBJROOT=. SYMROOT=. DSTROOT=/
9
10include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make
11
12SDKROOT ?= /
13
14WARNING_FLAGS = -Wall -Wextra -Wformat=2 -Wpointer-arith -Wcast-align \
15		-Wwrite-strings -Wno-unknown-pragmas \
16		-Wno-missing-field-initializers \
17		-Wshadow -Wmissing-prototypes \
18		-Wmissing-declarations -Wno-discard-qual
19Extra_CC_Flags = $(WARNING_FLAGS) -D_FORTIFY_SOURCE=2 \
20		 -F$(SDKROOT)/System/Library/PrivateFrameworks -I $(SRCROOT) -I $(OBJROOT) -fPIE
21Extra_LD_Flags = -Wl,-pie -lutil -framework oncrpc -dead_strip
22
23ifeq "$(RC_TARGET_CONFIG)" "iPhone"
24Extra_CC_Flags += -isysroot $(SDKROOT)
25endif
26
27DST_DIR = $(DSTROOT)/usr/sbin
28MAN_DIR = $(DSTROOT)/usr/share/man/man8
29LAUNCHDAEMONS_DIR = $(DSTROOT)/System/Library/LaunchDaemons
30
31#
32# Standard B&I targets
33#
34all: $(SYMROOT)/rpc.lockd
35
36install:: all
37	install -d -o root -g wheel -m 755 $(DST_DIR)
38	install -c -o root -g wheel -m 555 -s $(SYMROOT)/rpc.lockd $(DST_DIR)
39	install -d -o root -g wheel -m 755 $(MAN_DIR)
40	install -c -o root -g wheel -m 444 $(SRCROOT)/rpc.lockd.8 $(MAN_DIR)
41	install -d -o root -g wheel -m 755 $(LAUNCHDAEMONS_DIR)
42	install -c -o root -g wheel -m 644 $(SRCROOT)/com.apple.lockd.plist $(DSTROOT)/System/Library/LaunchDaemons
43
44clean::
45	-rm -f *.o rpc.lockd $(MIG_GEN_FILES)
46#
47# Build
48#
49
50MIG_DEF_FILES = $(SRCROOT)/lockd_mach.defs
51MIG_GEN_CFILES = lockd_machServer.c lockd_machUser.c
52MIG_GEN_HFILES = lockd_mach.h lockd_machServer.h
53MIG_GEN_FILES = $(MIG_GEN_CFILES) $(MIG_GEN_HFILES)
54MIG_OUT_FILES = $(MIG_GEN_FILES:%=$(OBJROOT)/%)
55CFILES = kern.c lock_proc.c lockd.c lockd_lock.c nlm_prot_svc.c \
56         nlm_prot_xdr.c sm_inter_xdr.c
57HFILES = lockd.h lockd_lock.h
58OFILES = $(CFILES:.c=.o) lockd_machServer.o
59
60#$(CFILES:%=$(SRCROOT)/%): $(HFILES:%=$(SRCROOT)/%) $(MIG_OUT_FILES)
61
62$(OFILES:%=$(OBJROOT)/%): $(HFILES:%=$(SRCROOT)/%) $(MIG_GEN_HFILES:%=$(OBJROOT)/%)
63$(OFILES): $(HFILES) $(MIG_GEN_HFILES)
64
65#$(MIG_GEN_CFILES:%.c=$(OBJROOT)/%.o): $(MIG_GEN_CFILES:%.c=$(OBJROOT)/%.c)
66#	$(CC) -c $(CFLAGS) -o $@ $<
67
68$(OBJROOT)/%.o: $(SRCROOT)/%.c
69	$(CC) -c $(CFLAGS) -o $@ $<
70
71$(MIG_OUT_FILES): $(MIG_DEF_FILES)
72	mig \
73		-user    $(OBJROOT)/lockd_machUser.c \
74		-header  $(OBJROOT)/lockd_mach.h \
75		-server  $(OBJROOT)/lockd_machServer.c \
76		-sheader $(OBJROOT)/lockd_machServer.h \
77		$(MIG_DEF_FILES)
78
79$(SYMROOT)/rpc.lockd: $(addprefix $(OBJROOT)/, $(OFILES))
80	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
81
82