Fixed multi-archness of the `demo' script.
[libobjid.git] / Makefile
1 # $Id$
2
3 CFLAGS = -ggdb2 -Wall -ansi -D_GNU_SOURCE
4 TESTS = tst-raise tst-resethand tst-core tst-core-pie
5 ARCH = $(shell uname -i)
6 VERSION = 0.1
7
8 all: libobjid.so $(TESTS)
9
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)
15
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 $@
19
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
24
25 libobjid.o: libobjid.c signal_core.h
26
27 .PHONY: check
28 check: $(TESTS) libobjid.so
29         export LD_PRELOAD=; \
30         set -x; \
31         for test in $(TESTS);do \
32           ./$$test; \
33         done; \
34         true
35         export LD_PRELOAD=./libobjid.so; \
36         set -x; \
37         for test in $(TESTS);do \
38           ./$$test; \
39         done; \
40         true
41
42 .PHONY: dist
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)
49
50 .PHONY: install
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
56
57 .PHONY: clean
58 clean:
59         $(RM) -r libobjid-$(VERSION) demo.d
60         $(RM) libobjid.so $(TESTS) *.o libobjid-$(VERSION).tar.gz