# $Id$ CFLAGS = -ggdb2 -Wall -ansi -D_GNU_SOURCE TESTS = tst-raise tst-resethand tst-core tst-core-pie ARCH = $(shell uname -i) VERSION = 0.1 all: libobjid.so $(TESTS) SO_OBJS = hook.o hook-$(ARCH).o build.o maps.o libobjid.so: LDFLAGS += -shared -ldl libobjid.so $(SO_OBJS): CFLAGS += -fPIC libobjid.so: $(SO_OBJS) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(OUTPUT_OPTION) tst-core-pie: LDFLAGS += -Wl,-z,relro -Wl,-z,now -fPIE -pie tst-core-pie: tst-core.c $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@ build.o: build.c build.h objid.h common.h maps.h hook.h hook-arch-c.h hook.o: hook.h hook-arch-c.h build.h maps.h signal-core.h common.h maps.o: maps.c maps.h common.h hook.h hook-$(ARCH).o: hook-$(ARCH).S hook-arch-asm.h libobjid.o: libobjid.c signal_core.h .PHONY: check check: $(TESTS) libobjid.so export LD_PRELOAD=; \ set -x; \ for test in $(TESTS);do \ ./$$test; \ done; \ true export LD_PRELOAD=./libobjid.so; \ set -x; \ for test in $(TESTS);do \ ./$$test; \ done; \ true .PHONY: dist dist: *.c *.h *.S libobjid.spec Makefile gdb-6.3.patch TODO README demo rm -rf libobjid-$(VERSION) mkdir libobjid-$(VERSION) cp -p $^ libobjid-$(VERSION) tar czf libobjid-$(VERSION).tar.gz libobjid-$(VERSION) rm -rf libobjid-$(VERSION) .PHONY: install install: libobjid.so objid.h mkdir -p $(DESTDIR)$(libdir) install libobjid.so $(DESTDIR)$(libdir)/libobjid.so mkdir -p $(DESTDIR)$(includedir) install objid.h $(DESTDIR)$(includedir)/objid.h .PHONY: clean clean: $(RM) -r libobjid-$(VERSION) demo.d $(RM) libobjid.so $(TESTS) *.o libobjid-$(VERSION).tar.gz