1 2topdir=$(shell pwd)/.. 3include $(topdir)/Make.Rules 4# 5# Programs: all of the examples that we will compile 6# 7PROGS=getpcaps getcap setcap 8 9BUILD=$(PROGS) 10 11all: $(BUILD) capsh 12 13ifeq ($(DYNAMIC),yes) 14LDPATH = LD_LIBRARY_PATH=../libcap 15DEPS = ../libcap/libcap.so 16else 17LDSTATIC = --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) $(LDSTATIC) 29 30%.o: %.c $(INCS) 31 $(CC) $(IPATH) $(CFLAGS) -c $< -o $@ 32 33install: all 34 mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR) 35 for p in $(PROGS) capsh ; 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) capsh 43 44capshdoc.h.cf: capshdoc.h ./mkcapshdoc.sh 45 ./mkcapshdoc.sh > $@ 46 diff -u capshdoc.h $@ || (rm $@ ; exit 1) 47 48capsh: capsh.c capshdoc.h.cf $(DEPS) 49 $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDSTATIC) 50 51tcapsh-static: capsh.c capshdoc.h.cf $(DEPS) 52 $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) --static 53 54uns_test: ../tests/uns_test.c 55 $(MAKE) -C ../tests uns_test 56 cp ../tests/uns_test . 57 58sudotest: test tcapsh-static uns_test 59 sudo $(LDPATH) ./quicktest.sh 60 61clean: 62 $(LOCALCLEAN) 63 rm -f *.o $(BUILD) privileged ping hack.sh compare-cap uns_test 64 rm -f capsh tcapsh* capshdoc.h.cf 65