1
+ .PHONY : all clean install dev release debug sanitize
2
+ .SECONDEXPANSION :
3
+
1
4
# ########################################################################
2
5
# BUILD COMMON
3
6
# ########################################################################
@@ -36,35 +39,32 @@ E9TOOL_OBJS=\
36
39
src/e9tool/e9tool.o \
37
40
src/e9tool/e9types.o \
38
41
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
49
47
50
48
# ########################################################################
51
49
# CONVENTIONAL BUILD
52
50
# ########################################################################
53
51
52
+ all : CXXFLAGS += -DSYSTEM_LIBDW
53
+ all : E9TOOL_LDLIBS += -ldw -lZydis
54
54
all : e9tool e9patch
55
55
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 )
61
61
62
- e9patch : CXXFLAGS += -O2
63
62
e9patch : $(E9PATCH_OBJS )
64
- $(CXX ) $(CXXFLAGS ) $(E9PATCH_OBJS ) -o e9patch
65
- strip e9patch
63
+ $(CXX ) $(CXXFLAGS ) $^ -o $@ $(LDFLAGS ) $(LDLIBS )
66
64
67
65
clean :
66
+ $(MAKE ) -C contrib/libdw clean
67
+ $(MAKE ) -C contrib/zydis clean
68
68
rm -rf $(E9PATCH_OBJS ) $(E9TOOL_OBJS ) e9patch e9tool \
69
69
src/e9patch/e9loader_*.c e9loader_*.o e9loader_*.bin
70
70
@@ -84,10 +84,10 @@ src/e9patch/e9elf.o: src/e9patch/e9loader_elf.c
84
84
src/e9patch/e9pe.o : src/e9patch/e9loader_pe.c
85
85
86
86
contrib/zydis/libZydis.a :
87
- (cd contrib/zydis/ ; make)
87
+ $( MAKE ) -C contrib/zydis
88
88
89
89
contrib/libdw/libdw.a :
90
- (cd contrib/libdw/ ; make)
90
+ $( MAKE ) -C contrib/libdw
91
91
92
92
install : all
93
93
install -d " $( DESTDIR) $( PREFIX) /bin"
@@ -151,33 +151,17 @@ install: all
151
151
# SPECIAL BUILD
152
152
# ########################################################################
153
153
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
158
162
159
163
debug : CXXFLAGS += -O0 -g
160
- debug : $(E9PATCH_OBJS )
161
- $(CXX ) $(CXXFLAGS ) $(E9PATCH_OBJS ) -o e9patch
164
+ debug : dev
162
165
163
166
sanitize : 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