1# 2# Makefile for Generic Security Services Daemon - gssd 3# 4 5Project = gssd 6 7SRCROOT ?= . 8OBJROOT ?= . 9SYMROOT ?= . 10DSTROOT ?= . 11 12DST_DIR = $(DSTROOT)/usr/sbin 13MAN_DIR = $(DSTROOT)/usr/share/man/man8 14 15# 16# Standard B&I targets 17# 18all: $(SYMROOT)/gssd $(SRCROOT)/gssd.8 $(SYMROOT)/gsstest 19 20install: all 21 install -d -o root -g wheel -m 755 $(MAN_DIR) 22 install -c -o root -g wheel -m 644 $(SRCROOT)/gssd.8 $(MAN_DIR) 23 install -d -o root -g wheel -m 755 $(DST_DIR) 24 install -c -o root -g wheel -m 555 -s $(SYMROOT)/gssd $(DST_DIR) 25 install -d -o root -g wheel -m 755 $(DSTROOT)/System/Library/LaunchAgents 26 install -c -o root -g wheel -m 644 $(SRCROOT)/com.apple.gssd-agent.plist $(DSTROOT)/System/Library/LaunchAgents 27 install -d -o root -g wheel -m 644 $(DSTROOT)/System/Library/LaunchDaemons 28 install -c -o root -g wheel -m 644 $(SRCROOT)/com.apple.gssd.plist $(DSTROOT)/System/Library/LaunchDaemons 29 30installhdrs: 31 @echo installhdrs 32 33clean: 34 -rm -f *.o gssd gsstest \ 35 gssd_mach.h gssd_machServer.c gssd_machUser.c gssd_machServer.h 36installsrc: clean 37 ditto . $(SRCROOT) 38 39# 40# Build 41# 42CFLAGS = -g -Os -Wall -Wextra -Wshadow -Wmissing-prototypes \ 43 -Wmissing-declarations -Wno-discard-qual \ 44 -I $(SRCROOT) -I $(OBJROOT) -F/System/Library/PrivateFrameworks 45 46CFLAGS += $(RC_CFLAGS) 47LDFLAGS = -lbsm -framework Heimdal -framework GSS 48 49$(SYMROOT)/gssd: $(OBJROOT)/gssd.o $(OBJROOT)/gssd_machUser.o $(OBJROOT)/gssd_machServer.o $(OBJROOT)/gssd_validate.o 50 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 51 52$(SRCROOT)/gssd.c: $(OBJROOT)/gssd_mach.h $(OBJROOT)/gssd_machServer.h 53 54$(OBJROOT)/%.o: $(SRCROOT)/%.c 55 $(CC) -c $(CFLAGS) -o $@ $< 56 57$(OBJROOT)/gssd_mach.h $(OBJROOT)/gssd_machServer.c $(OBJROOT)/gssd_machUser.c \ 58 $(OBJROOT)/gssd_machServer.h: $(SRCROOT)/gssd_mach.defs 59 mig \ 60 -user $(OBJROOT)/gssd_machUser.c \ 61 -header $(OBJROOT)/gssd_mach.h \ 62 -server $(OBJROOT)/gssd_machServer.c \ 63 -sheader $(OBJROOT)/gssd_machServer.h \ 64 $(SRCROOT)/gssd_mach.defs 65 66 67# gsstest is a client used to test gssd - not installed 68 69$(SYMROOT)/gsstest: $(OBJROOT)/gsstest.o $(OBJROOT)/gssd_machUser.o 70 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 71 72$(SRCROOT)/gsstest.c: $(OBJROOT)/gssd_mach.h 73