2 L4DIR ?= $(PKGDIR)/../..
4 include $(L4DIR)/mk/Makeconf
6 # path- and version-specific variables
7 VALGRIND_VERSION = 3.6.0-svn
8 VALGRIND_SRC = $(shell find $(PKGDIR)/src/ -name valgrind-$(VALGRIND_VERSION))
9 VALGRIND_BUILD = $(OBJ_DIR)/OBJ-$(SYSTEM)/vg
12 REQUIRES_LIBS = l4re_c-util
14 # variables used for passing to Valgrind's build system
15 # gcc need a "," after defsym and a "=" after dynamic-linker
16 L4_LDFLAGS_WITH_LIBC=`echo "$(LDFLAGS)" | \
17 sed 's/'--dynamic-linker\ '/'-Wl,--dynamic-linker\='/g' | \
18 sed 's/'--defsym\ '/'-Wl,--defsym\,'/g' | \
19 sed 's/'--start-group\ '/'-Wl,--start-group\ '/g' | \
20 sed 's/'--end-group\ '/'-Wl,--end-group\ '/g' | \
21 sed 's$$'-T$(LDS_stat_bin)'$$''$$g'`
24 L4_CRT0 = $(CRTI_stat_bin) $(CRTBEGIN_stat_bin)
28 include $(L4DIR)/mk/prog.mk
33 ifeq ($(BUILD_ARCH), x86)
35 TMP_LDFLAGS = $(addprefix -L, $(L4LIBDIR))
36 TMP_LDFLAGS += -Wl,--start-group
37 TMP_LDFLAGS += -Wl,--defsym,__L4_KIP_ADDR__=$(L4_KIP_ADDR) \
38 -Wl,--defsym,__L4_STACK_ADDR__=$(L4_STACK_ADDR)
39 TMP_LDFLAGS += $(REQUIRES_LIBS_LIST)
40 TMP_LDFLAGS += -Wl,--end-group
41 TMP_LDFLAGS += -Wl,--warn-common -gc-sections
42 L4_LDFLAGS = $(TMP_LDFLAGS)
44 valgrind : check_rediff valgrind_conf
45 @echo -e "\033[35;1m___...---=== COMPILING ===---...___\033[0m"
46 L4_CFLAGS="$(L4_CFLAGS)" \
47 L4_CPPFLAGS="$(CPPFLAGS)" \
48 L4_CXXFLAGS="$(CXXFLAGS)" \
49 L4_CRT0="$(L4_CRT0)" \
50 L4_CRT1="$(CRT1_stat_bin)" \
52 L4_CFLAGS="$(L4_CFLAGS)" \
53 L4_CPPFLAGS="$(CPPFLAGS)" \
54 L4_LDFLAGS="$(L4_LDFLAGS)" \
55 L4_LDFLAGS_WITH_LIBC="$(L4_LDFLAGS_WITH_LIBC)" \
56 L4_OBJ_BASE="$(OBJ_BASE)" \
57 L4_LDS_stat_bin="$(LDS_stat_bin)" \
58 VG_LDFLAGS="$(VG_LDFLAGS)" \
59 LD="$(LINK_PROGRAM)" \
61 make -C $(VALGRIND_BUILD)
64 if [ ! -e $(VALGRIND_BUILD)/config.ready ]; then \
65 echo -e "\033[35;1m___...---=== CONFIG ===---...___\033[0m" && \
66 echo OBJ: $(VALGRIND_BUILD) && \
67 mkdir -p $(VALGRIND_BUILD) && \
68 cd $(VALGRIND_BUILD) && \
69 AR="$(AR)" CC="$(CC)" CXX="$(CXX)" STRIP="$(STRIP)" RANLIB="$(RANLIB)"\
70 $(VALGRIND_SRC)/configure \
71 --enable-maintainer-mode \
73 --build=i386-linux && \
74 touch $(VALGRIND_BUILD)/config.ready; \
77 # this rule checks whether the modified file copies from other l4 packages
78 # are still up-to-date
80 @cd $(PKGDIR)/.. && shasum -c $(SRC_DIR)/ext-checksums
82 .PHONY = valgrind_conf valgrind
90 @echo -e "\033[35;1m___...---=== CLEAN ===---...___\033[0m"