]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/build/Makefile
update
[l4.git] / l4 / pkg / valgrind / build / Makefile
1 PKGDIR ?= ..
2 L4DIR ?= $(PKGDIR)/../..
3
4 include $(L4DIR)/mk/Makeconf
5
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
10
11 # basic BID settings
12 L4_MULTITHREADED = y
13 REQUIRES_LIBS    = l4re_c-util
14
15 # variables used for passing to Valgrind's build system
16 # gcc need a "," after defsym and a "=" after dynamic-linker
17 L4_LDFLAGS_WITH_LIBC=`echo "$(LDFLAGS)" | 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'`
22 L4_CFLAGS  = $(CFLAGS)
23
24 L4_CRT0 = $(CRTI_stat_bin) $(CRTBEGIN_stat_bin)
25
26 SYSTEMS = x86-l4f
27
28 include $(L4DIR)/mk/prog.mk
29
30 all :: valgrind
31
32 ifneq ($(SYSTEM), )
33 ifeq ($(BUILD_ARCH), x86)
34
35 TMP_LDFLAGS = $(addprefix -L, $(L4LIBDIR_PROG_NOEXC-$(BID_INT_NOEXC)))
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 += --warn-common -gc-sections
42 L4_LDFLAGS = $(TMP_LDFLAGS)
43
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)" \
51         L4_CRTN="$(CRTN)" \
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)" \
60         AR="$(AR)" \
61                 make -C $(VALGRIND_BUILD)
62
63 valgrind_conf :
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 \
72                                                   --host=i386-l4re \
73                                                   --build=i386-linux; \
74                 touch $(VALGRIND_BUILD)/config.ready; \
75         fi
76
77 # this rule checks whether the modified file copies from other l4 packages
78 # are still up-to-date
79 check_rediff:
80         @cd $(PKGDIR)/.. && shasum -c $(SRC_DIR)/ext-checksums
81
82 .PHONY = valgrind_conf valgrind
83
84 endif # ARCH_x86
85 else
86 valgrind :
87 endif # SYSTEM != ""
88
89 clean cleanall::
90         @echo -e "\033[35;1m___...---=== CLEAN ===---...___\033[0m"
91         $(RM) -r $(OBJ_DIR)/*
92