3 CFLAGS = -ggdb2 -Wall -ansi -D_GNU_SOURCE
4 TESTS = tst-raise tst-resethand tst-core tst-core-pie
5 ARCH = $(shell uname -i)
8 all: libobjid.so $(TESTS)
10 SO_OBJS = hook.o hook-$(ARCH).o build.o maps.o
11 libobjid.so: LDFLAGS += -shared -ldl
12 libobjid.so $(SO_OBJS): CFLAGS += -fPIC
13 libobjid.so: $(SO_OBJS)
14 $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(OUTPUT_OPTION)
16 tst-core-pie: LDFLAGS += -Wl,-z,relro -Wl,-z,now -fPIE -pie
17 tst-core-pie: tst-core.c
18 $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
20 build.o: build.c build.h objid.h common.h maps.h hook.h hook-arch-c.h
21 hook.o: hook.h hook-arch-c.h build.h maps.h signal-core.h common.h
22 maps.o: maps.c maps.h common.h hook.h
23 hook-$(ARCH).o: hook-$(ARCH).S hook-arch-asm.h
25 libobjid.o: libobjid.c signal_core.h
28 check: $(TESTS) libobjid.so
31 for test in $(TESTS);do \
35 export LD_PRELOAD=./libobjid.so; \
37 for test in $(TESTS);do \
43 dist: *.c *.h *.S libobjid.spec Makefile gdb-6.3.patch TODO README demo
44 rm -rf libobjid-$(VERSION)
45 mkdir libobjid-$(VERSION)
46 cp -p $^ libobjid-$(VERSION)
47 tar czf libobjid-$(VERSION).tar.gz libobjid-$(VERSION)
48 rm -rf libobjid-$(VERSION)
51 install: libobjid.so objid.h
52 mkdir -p $(DESTDIR)$(libdir)
53 install libobjid.so $(DESTDIR)$(libdir)/libobjid.so
54 mkdir -p $(DESTDIR)$(includedir)
55 install objid.h $(DESTDIR)$(includedir)/objid.h
59 $(RM) -r libobjid-$(VERSION) demo.d
60 $(RM) libobjid.so $(TESTS) *.o libobjid-$(VERSION).tar.gz