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