1 2topdir=$(shell pwd)/.. 3include $(topdir)/Make.Rules 4# 5# Programs: all of the examples that we will compile 6# 7PROGS=getpcaps capsh getcap setcap 8 9BUILD=$(PROGS) 10 11all: $(BUILD) 12 13ifeq ($(DYNAMIC),yes) 14LDPATH = LD_LIBRARY_PATH=../libcap 15DEPS = ../libcap/libcap.so 16else 17LDFLAGS += --static 18DEPS = ../libcap/libcap.a 19endif 20 21../libcap/libcap.a: 22 make -C ../libcap libcap.a 23 24../libcap/libcap.so: 25 make -C ../libcap libcap.so 26 27$(BUILD): %: %.o $(DEPS) 28 $(CC) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) 29 30%.o: %.c $(INCS) 31 $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -c $< -o $@ 32 33install: all 34 mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR) 35 for p in $(PROGS) ; do \ 36 install -m 0755 $$p $(FAKEROOT)$(SBINDIR) ; \ 37 done 38ifeq ($(RAISE_SETFCAP),yes) 39 $(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap 40endif 41 42test: $(PROGS) 43 44tcapsh-static: capsh.c $(DEPS) 45 $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) --static 46 47sudotest: test tcapsh-static 48 sudo $(LDPATH) ./quicktest.sh 49 50clean: 51 $(LOCALCLEAN) 52 rm -f *.o $(BUILD) tcapsh* privileged ping hack.sh compare-cap 53