don't fail if BR2_USE_UPDATES tries to update non-checkout
[buildroot.git] / package / mpatrol / mpatrol.mk
blobb466a0001c36fa9f15ff771900ac32671fb3716c
1 #############################################################
3 # mpatrol
5 #############################################################
6 MPATROL_VERSION:=1.4.8
7 MPATROL_SOURCE:=mpatrol_$(MPATROL_VERSION).tar.gz
8 MPATROL_SITE:=http://www.cbmamiga.demon.co.uk/mpatrol/files
9 MPATROL_DIR:=$(BUILD_DIR)/mpatrol
10 MPATROL_CAT:=$(ZCAT)
11 MPATROL_BINARY:=mleak
12 MPATROL_BUILD_DIR:=$(MPATROL_DIR)/build/unix
13 MPATROL_TARGET_BINARY:=usr/bin/mleak
15 # Pick a symbol library to use. We have a choice of GDB BFD, binutils BFD, or libelf.
16 # If one of them is already being built, then use it, otherwise, default to GDB
17 ifeq ($(BR2_PACKAGE_GDB),y)
18 MPATROL_SYMBOL_LIBS:=-L$(GDB_TARGET_DIR)/bfd -lbfd -L$(GDB_TARGET_DIR)/libiberty -liberty
19 MPATROL_SYMBOL_INCS:=-I$(GDB_TARGET_DIR)/bfd -I$(GDB_DIR)/include -DMP_SYMBOL_LIBS=
20 MPATROL_SYMBOL_DEPS:=gdb_target
21 else
22 ifeq ($(BR2_PACKAGE_GCC_TARGET),y)
23 MPATROL_SYMBOL_LIBS:=-L$(BINUTILS_DIR2)/bfd -lbfd -L$(BINUTILS_DIR2)/libiberty -liberty
24 MPATROL_SYMBOL_INCS:=-I$(BINUTILS_DIR2)/bfd -I$(BINUTILS_DIR)/include -DMP_SYMBOL_LIBS=
25 MPATROL_SYMBOL_DEPS:=binutils_target
26 else
27 ifeq ($(BR2_PACKAGE_LIBELF),y)
28 MPATROL_SYMBOL_LIBS:=-L$(LIBELF_DIR)/lib -lelf
29 MPATROL_SYMBOL_INCS:=-I$(STAGING_DIR)/usr/include -DFORMAT=FORMAT_ELF32 -DMP_SYMBOL_LIBS=
30 MPATROL_SYMBOL_DEPS:=libelf
31 else # use GDB by default
32 MPATROL_SYMBOL_LIBS:=-L$(GDB_TARGET_DIR)/bfd -lbfd -L$(GDB_TARGET_DIR)/libiberty -liberty
33 MPATROL_SYMBOL_INCS:=-I$(GDB_TARGET_DIR)/bfd -I$(GDB_DIR)/include -DMP_SYMBOL_LIBS=
34 MPATROL_SYMBOL_DEPS:=gdb_target
35 endif
36 endif
37 endif
39 $(DL_DIR)/$(MPATROL_SOURCE):
40 $(WGET) -P $(DL_DIR) $(MPATROL_SITE)/$(MPATROL_SOURCE)
42 mpatrol-source: $(DL_DIR)/$(MPATROL_SOURCE)
44 $(MPATROL_DIR)/.unpacked: $(DL_DIR)/$(MPATROL_SOURCE)
45 $(MPATROL_CAT) $(DL_DIR)/$(MPATROL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
46 toolchain/patch-kernel.sh $(MPATROL_DIR) package/mpatrol mpatrol\*.patch
47 $(SED) '/LD.*MPTOBJS/s,$$, $$(LDLIBS),' $(MPATROL_BUILD_DIR)/Makefile
48 $(SED) '/CFLAGS.*=/s,$$, $$(IFLAGS),' $(MPATROL_BUILD_DIR)/Makefile
49 touch $(MPATROL_DIR)/.unpacked
51 $(MPATROL_BUILD_DIR)/$(MPATROL_BINARY): $(MPATROL_DIR)/.unpacked
52 $(MAKE) CC=$(TARGET_CROSS)gcc AR=$(TARGET_CROSS)ar LD=$(TARGET_CROSS)gcc \
53 IFLAGS="-g $(MPATROL_SYMBOL_INCS) -DMP_USE_ATEXIT=1 -DMP_SIGINFO_SUPPORT=1" \
54 LDLIBS="$(MPATROL_SYMBOL_LIBS)" -C $(MPATROL_BUILD_DIR) all
56 $(TARGET_DIR)/$(MPATROL_TARGET_BINARY): $(MPATROL_BUILD_DIR)/$(MPATROL_BINARY)
57 mkdir -p $(TARGET_DIR)/usr/lib
58 (cd $(MPATROL_BUILD_DIR); \
59 cp -dpf lib*.so* $(TARGET_DIR)/usr/lib; \
60 cp -dpf mpatrol mprof mptrace mleak $(TARGET_DIR)/usr/bin)
61 if [ ! -e $(TARGET_DIR)/lib/libpthread.so ]; then \
62 ln -sf libpthread.so.0 $(TARGET_DIR)/lib/libpthread.so; fi
63 (cd $(MPATROL_DIR); \
64 cp -dpf bin/mp* bin/hexwords $(TARGET_DIR)/usr/bin; \
65 cp -dpf src/mp*.h $(STAGING_DIR)/usr/include; \
66 mkdir -p $(STAGING_DIR)/usr/include/mpatrol; \
67 cp -dpf tools/*.h $(STAGING_DIR)/usr/include/mpatrol)
68 touch $(TARGET_DIR)/$(MPATROL_TARGET_BINARY)
70 mpatrol: $(MPATROL_SYMBOL_DEPS) $(TARGET_DIR)/$(MPATROL_TARGET_BINARY)
72 mpatrol-clean:
73 (cd $(TARGET_DIR)/usr/lib; rm -f libmpatrol* libmpalloc*)
74 (cd $(TARGET_DIR)/usr/bin; \
75 rm -f mpatrol mprof mptrace mleak mpsym mpedit hexwords)
76 (cd $(STAGING_DIR)/usr/include; \
77 rm -rf mpatrol.h mpalloc.h mpdebug.h mpatrol)
78 $(MAKE) -C $(MPATROL_DIR)/build/unix clobber
80 mpatrol-dirclean:
81 rm -rf $(MPATROL_DIR)
84 #############################################################
86 # Toplevel Makefile options
88 #############################################################
89 ifeq ($(BR2_PACKAGE_MPATROL),y)
90 TARGETS+=mpatrol
91 endif