1+ .PHONY : all clean install dev release debug sanitize
2+ .SECONDEXPANSION :
3+
14# ########################################################################
25# BUILD COMMON
36# ########################################################################
@@ -36,35 +39,32 @@ E9TOOL_OBJS=\
3639 src/e9tool/e9tool.o \
3740 src/e9tool/e9types.o \
3841 src/e9tool/e9x86_64.o
39- E9TOOL_LIBS =\
40- contrib/zydis/libZydis.a \
41- contrib/libdw/libdw.a
42- E9TOOL_CXXFLAGS =\
43- -I src/e9tool/ -Wno-unused-function \
44- -I contrib/zydis/include/ \
45- -I contrib/zydis/dependencies/zycore/include/
46- E9TOOL_LDFLAGS =\
47- -Wl,--dynamic-list=src/e9tool/e9tool.syms \
48- -ldl -lz
42+
43+ E9TOOL_LIBS ::=
44+ E9TOOL_CXXFLAGS ::= -Isrc/e9tool -Wno-unused-function
45+ E9TOOL_LDFLAGS ::= -Wl,--dynamic-list=src/e9tool/e9tool.syms
46+ E9TOOL_LDLIBS ::= -ldl -lz
4947
5048# ########################################################################
5149# CONVENTIONAL BUILD
5250# ########################################################################
5351
52+ all : CXXFLAGS += -DSYSTEM_LIBDW
53+ all : E9TOOL_LDLIBS += -ldw -lZydis
5454all : e9tool e9patch
5555
56- e9tool : CXXFLAGS += -O2 -DSYSTEM_LIBDW $(E9TOOL_CXXFLAGS )
57- e9tool : contrib/zydis/libZydis.a $( E9TOOL_OBJS )
58- $( CXX ) $( CXXFLAGS ) $( E9TOOL_OBJS ) contrib/zydis/libZydis.a -o e9tool \
59- $( E9TOOL_LDFLAGS ) -ldw
60- strip e9tool
56+ e9tool : CXXFLAGS += $(E9TOOL_CXXFLAGS )
57+ e9tool : LDFLAGS += $( E9TOOL_LDFLAGS )
58+ e9tool : LDLIBS += $( E9TOOL_LDLIBS )
59+ e9tool : $( E9TOOL_OBJS ) $$( E9TOOL_LIBS )
60+ $( CXX ) $( CXXFLAGS ) $^ -o $@ $( LDFLAGS ) $( LDLIBS )
6161
62- e9patch : CXXFLAGS += -O2
6362e9patch : $(E9PATCH_OBJS )
64- $(CXX ) $(CXXFLAGS ) $(E9PATCH_OBJS ) -o e9patch
65- strip e9patch
63+ $(CXX ) $(CXXFLAGS ) $^ -o $@ $(LDFLAGS ) $(LDLIBS )
6664
6765clean :
66+ $(MAKE ) -C contrib/libdw clean
67+ $(MAKE ) -C contrib/zydis clean
6868 rm -rf $(E9PATCH_OBJS ) $(E9TOOL_OBJS ) e9patch e9tool \
6969 src/e9patch/e9loader_*.c e9loader_*.o e9loader_*.bin
7070
@@ -84,10 +84,10 @@ src/e9patch/e9elf.o: src/e9patch/e9loader_elf.c
8484src/e9patch/e9pe.o : src/e9patch/e9loader_pe.c
8585
8686contrib/zydis/libZydis.a :
87- (cd contrib/zydis/ ; make)
87+ $( MAKE ) -C contrib/zydis
8888
8989contrib/libdw/libdw.a :
90- (cd contrib/libdw/ ; make)
90+ $( MAKE ) -C contrib/libdw
9191
9292install : all
9393 install -d " $( DESTDIR) $( PREFIX) /bin"
@@ -151,33 +151,17 @@ install: all
151151# SPECIAL BUILD
152152# ########################################################################
153153
154- release : CXXFLAGS += -O2 -D NDEBUG
155- release : $(E9PATCH_OBJS )
156- $(CXX ) $(CXXFLAGS ) $(E9PATCH_OBJS ) -o e9patch
157- strip e9patch
154+ dev : E9TOOL_CXXFLAGS += -Icontrib/libdw \
155+ -Icontrib/zydis/include -Icontrib/zydis/dependencies/zycore/include
156+ dev : E9TOOL_LIBS += contrib/zydis/libZydis.a contrib/libdw/libdw.a
157+ dev : e9patch e9tool
158+
159+ release : CXXFLAGS += -O2 -DNDEBUG
160+ release : dev
161+ strip e9patch e9tool
158162
159163debug : CXXFLAGS += -O0 -g
160- debug : $(E9PATCH_OBJS )
161- $(CXX ) $(CXXFLAGS ) $(E9PATCH_OBJS ) -o e9patch
164+ debug : dev
162165
163166sanitize : CXXFLAGS += -O0 -g -fsanitize=address
164- sanitize : $(E9PATCH_OBJS )
165- $(CXX ) $(CXXFLAGS ) $(E9PATCH_OBJS ) -o e9patch
166-
167- tool : CXXFLAGS += -O2 $(E9TOOL_CXXFLAGS ) -I contrib/libdw/
168- tool : $(E9TOOL_OBJS ) $(E9TOOL_LIBS )
169- $(CXX ) $(CXXFLAGS ) $(E9TOOL_OBJS ) $(E9TOOL_LIBS ) -o e9tool \
170- $(E9TOOL_LDFLAGS)
171- strip e9tool
172-
173- tool.debug : CXXFLAGS += -O0 -g $(E9TOOL_CXXFLAGS ) -I contrib/libdw/
174- tool.debug : $(E9TOOL_OBJS ) $(E9TOOL_LIBS )
175- $(CXX ) $(CXXFLAGS ) $(E9TOOL_OBJS ) $(E9TOOL_LIBS ) -o e9tool \
176- $(E9TOOL_LDFLAGS)
177-
178- tool.sanitize : CXXFLAGS += -O0 -g -fsanitize=address $(E9TOOL_CXXFLAGS ) \
179- -I contrib/libdw/
180- tool.sanitize : $(E9TOOL_OBJS ) $(E9TOOL_LIBS )
181- $(CXX ) $(CXXFLAGS ) $(E9TOOL_OBJS ) $(E9TOOL_LIBS ) -o e9tool \
182- $(E9TOOL_LDFLAGS)
183-
167+ sanitize : dev
0 commit comments