diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-01-09 01:12:56 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-01-09 01:12:56 -0500 |
commit | ddfe24398d883b9e8e4ab4781726b8305776fd83 (patch) | |
tree | 4842b9061f95c64f488cd719ae3fd9fe7c21afca | |
parent | 17d741924a6f41d6f163891a6ef64497b6010497 (diff) |
build: Restructure Makefile to handle depends and clean ups
Restructured the Makefile to automate the dependencies.
Also a lot of changes to consolidate changes.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | Makefile | 302 |
1 files changed, 161 insertions, 141 deletions
@@ -9,19 +9,28 @@ KS_PATCHLEVEL = 1 | |||
9 | KS_EXTRAVERSION = | 9 | KS_EXTRAVERSION = |
10 | 10 | ||
11 | # file format version | 11 | # file format version |
12 | FILE_VERSION = 0 | 12 | FILE_VERSION = 5 |
13 | 13 | ||
14 | CC = gcc | 14 | CC = gcc |
15 | AR = ar | 15 | AR = ar |
16 | EXT = -std=gnu99 | 16 | EXT = -std=gnu99 |
17 | INCLUDES = -I. -I/usr/local/include | 17 | |
18 | MAKEFLAGS += --no-print-directory | ||
18 | 19 | ||
19 | LIBS = -L. -ltracecmd -ldl | 20 | LIBS = -L. -ltracecmd -ldl |
21 | LIB_FILE = libtracecmd.a | ||
20 | 22 | ||
21 | PACKAGES= gtk+-2.0 | 23 | PACKAGES= gtk+-2.0 |
22 | 24 | ||
25 | ifndef BUILDGUI | ||
26 | BUILDGUI = 0 | ||
27 | endif | ||
28 | |||
23 | ifeq ($(BUILDGUI), 1) | 29 | ifeq ($(BUILDGUI), 1) |
24 | CONFIG_FLAGS = $(shell pkg-config --cflags $(PACKAGES)) -DBUILDGUI \ | 30 | |
31 | CONFIG_INCLUDES = $(shell pkg-config --cflags $(PACKAGES)) | ||
32 | |||
33 | CONFIG_FLAGS = -DBUILDGUI \ | ||
25 | -DGTK_VERSION=$(shell pkg-config --modversion gtk+-2.0 | \ | 34 | -DGTK_VERSION=$(shell pkg-config --modversion gtk+-2.0 | \ |
26 | awk 'BEGIN{FS="."}{ a = ($$1 * (2^16)) + $$2 * (2^8) + $$3; printf ("%d", a);}') | 35 | awk 'BEGIN{FS="."}{ a = ($$1 * (2^16)) + $$2 * (2^8) + $$3; printf ("%d", a);}') |
27 | 36 | ||
@@ -34,8 +43,13 @@ EXTRAVERSION = $(KS_EXTRAVERSION) | |||
34 | GUI = 'GUI ' | 43 | GUI = 'GUI ' |
35 | GOBJ = $@ | 44 | GOBJ = $@ |
36 | 45 | ||
46 | REBUILD_GUI = /bin/true | ||
47 | G = | ||
48 | N = @/bin/true || | ||
49 | |||
37 | else | 50 | else |
38 | 51 | ||
52 | CONFIG_INCLUDES = | ||
39 | CONFIG_LIBS = | 53 | CONFIG_LIBS = |
40 | CONFIG_FLAGS = | 54 | CONFIG_FLAGS = |
41 | 55 | ||
@@ -46,18 +60,26 @@ EXTRAVERSION = $(TC_EXTRAVERSION) | |||
46 | GUI = | 60 | GUI = |
47 | GOBJ = " "$@ | 61 | GOBJ = " "$@ |
48 | 62 | ||
63 | REBUILD_GUI = $(MAKE) BUILDGUI=1 $@ | ||
64 | G = $(REBUILD_GUI); /bin/true || | ||
65 | N = | ||
49 | endif | 66 | endif |
50 | 67 | ||
68 | export Q VERBOSE | ||
69 | |||
51 | TRACECMD_VERSION = $(TC_VERSION).$(TC_PATCHLEVEL).$(TC_EXTRAVERSION) | 70 | TRACECMD_VERSION = $(TC_VERSION).$(TC_PATCHLEVEL).$(TC_EXTRAVERSION) |
52 | KERNELSHARK_VERSION = $(KS_VERSION).$(KS_PATCHLEVEL).$(KS_EXTRAVERSION) | 71 | KERNELSHARK_VERSION = $(KS_VERSION).$(KS_PATCHLEVEL).$(KS_EXTRAVERSION) |
53 | 72 | ||
54 | CFLAGS = -g -Wall $(CONFIG_FLAGS) | 73 | INCLUDES = -I. -I/usr/local/include $(CONFIG_INCLUDES) |
74 | |||
75 | CFLAGS = -g -Wall $(CONFIG_FLAGS) $(INCLUDES) | ||
55 | 76 | ||
56 | # copy a bit from Linux kbuild | 77 | # copy a bit from Linux kbuild |
57 | 78 | ||
58 | ifeq ("$(origin V)", "command line") | 79 | ifeq ("$(origin V)", "command line") |
59 | VERBOSE = $(V) | 80 | VERBOSE = $(V) |
60 | else | 81 | endif |
82 | ifndef VERBOSE | ||
61 | VERBOSE = 0 | 83 | VERBOSE = 0 |
62 | endif | 84 | endif |
63 | 85 | ||
@@ -71,52 +93,82 @@ ifeq ($(VERBOSE),1) | |||
71 | print_plugin_build = | 93 | print_plugin_build = |
72 | else | 94 | else |
73 | Q = @ | 95 | Q = @ |
74 | print_compile = @echo ' $(GUI)COMPILE '$(GOBJ); | 96 | print_compile = echo ' $(GUI)COMPILE '$(GOBJ); |
75 | print_app_build = @echo ' $(GUI)BUILD '$(GOBJ); | 97 | print_app_build = echo ' $(GUI)BUILD '$(GOBJ); |
76 | print_fpic_compile = @echo ' $(GUI)COMPILE FPIC '$(GOBJ); | 98 | print_fpic_compile = echo ' $(GUI)COMPILE FPIC '$(GOBJ); |
77 | print_shared_lib_compile = @echo ' $(GUI)COMPILE SHARED LIB '$(GOBJ); | 99 | print_shared_lib_compile = echo ' $(GUI)COMPILE SHARED LIB '$(GOBJ); |
78 | print_plugin_obj_compile = @echo ' $(GUI)COMPILE PLUGIN OBJ '$(GOBJ); | 100 | print_plugin_obj_compile = echo ' $(GUI)COMPILE PLUGIN OBJ '$(GOBJ); |
79 | print_plugin_build = @echo ' $(GUI)BUILD PLUGIN '$(GOBJ); | 101 | print_plugin_build = echo ' $(GUI)BUILD PLUGIN '$(GOBJ); |
80 | print_static_lib_build = @echo ' $(GUI)BUILD STATIC LIB '$(GOBJ); | 102 | print_static_lib_build = echo ' $(GUI)BUILD STATIC LIB '$(GOBJ); |
81 | endif | 103 | endif |
82 | 104 | ||
83 | do_fpic_compile = \ | 105 | do_fpic_compile = \ |
84 | $(Q)$(print_fpic_compile) \ | 106 | ($(print_fpic_compile) \ |
85 | $(CC) -c $(CFLAGS) $(EXT) $(INCLUDES) -fPIC $< -o $@ | 107 | $(CC) -c $(CFLAGS) $(EXT) -fPIC $< -o $@) |
86 | 108 | ||
87 | do_app_build = \ | 109 | do_app_build = \ |
88 | $(Q)$(print_app_build) \ | 110 | ($(print_app_build) \ |
89 | $(CC) $^ -rdynamic -o $@ $(CONFIG_LIBS) $(LIBS) | 111 | $(CC) $^ -rdynamic -o $@ $(CONFIG_LIBS) $(LIBS)) |
90 | 112 | ||
91 | do_compile_shared_library = \ | 113 | do_compile_shared_library = \ |
92 | $(Q)$(print_shared_lib_compile) \ | 114 | ($(print_shared_lib_compile) \ |
93 | $(CC) --shared $^ -o $@ | 115 | $(CC) --shared $^ -o $@) |
94 | 116 | ||
95 | do_compile_plugin_obj = \ | 117 | do_compile_plugin_obj = \ |
96 | $(Q)$(print_plugin_obj_compile) \ | 118 | ($(print_plugin_obj_compile) \ |
97 | $(CC) -c $(CFLAGS) -fPIC -o $@ $< | 119 | $(CC) -c $(CFLAGS) -fPIC -o $@ $<) |
98 | 120 | ||
99 | do_plugin_build = \ | 121 | do_plugin_build = \ |
100 | $(Q)$(print_plugin_build) \ | 122 | ($(print_plugin_build) \ |
101 | $(CC) -shared -nostartfiles -o $@ $< | 123 | $(CC) -shared -nostartfiles -o $@ $<) |
102 | 124 | ||
103 | do_build_static_lib = \ | 125 | do_build_static_lib = \ |
104 | $(Q)$(print_static_lib_build) \ | 126 | ($(print_static_lib_build) \ |
105 | $(RM) $@; $(AR) rcs $@ $^ | 127 | $(RM) $@; $(AR) rcs $@ $^) |
128 | |||
129 | |||
130 | define check_gui | ||
131 | if [ $(BUILDGUI) -ne 1 -a ! -z "$(filter $(gui_objs),$(@))" ]; then \ | ||
132 | $(REBUILD_GUI); \ | ||
133 | else \ | ||
134 | $(print_compile) \ | ||
135 | $(CC) -c $(CFLAGS) $(EXT) $< -o $@; \ | ||
136 | fi; | ||
137 | endef | ||
106 | 138 | ||
107 | %.o: %.c | 139 | %.o: %.c |
108 | $(print_compile) | 140 | $(Q)$(call check_gui) |
109 | $(Q)$(CC) -c $(CFLAGS) $(EXT) $(INCLUDES) $< -o $@ | 141 | |
142 | |||
143 | TRACE_CMD_OBJS = trace-cmd.o trace-read.o | ||
144 | TRACE_VIEW_OBJS = trace-view.o trace-view-store.o trace-filter.o trace-compat.o \ | ||
145 | trace-hash.o | ||
146 | TRACE_GRAPH_OBJS = trace-graph.o trace-compat.o trace-hash.o trace-filter.o | ||
147 | TRACE_VIEW_MAIN_OBJS = trace-view-main.o $(TRACE_VIEW_OBJS) | ||
148 | TRACE_GRAPH_MAIN_OBJS = trace-graph-main.o $(TRACE_GRAPH_OBJS) | ||
149 | KERNEL_SHARK_OBJS = $(TRACE_VIEW_OBJS) $(TRACE_GRAPH_OBJS) kernel-shark.o | ||
150 | |||
151 | PEVENT_LIB_OBJS = parse-events.o trace-seq.o | ||
152 | TCMD_LIB_OBJS = $(PEVENT_LIB_OBJS) trace-util.o trace-input.o trace-ftrace.o \ | ||
153 | trace-output.o trace-record.o | ||
154 | |||
155 | PLUGIN_OBJS = plugin_hrtimer.o plugin_kmem.o plugin_sched_switch.o \ | ||
156 | plugin_mac80211.o | ||
157 | |||
158 | PLUGINS := $(PLUGIN_OBJS:.o=.so) | ||
110 | 159 | ||
111 | PLUGINS = plugin_hrtimer.so plugin_mac80211.so plugin_sched_switch.so \ | 160 | ALL_OBJS = $(TRACE_CMD_OBJS) $(KERNEL_SHARK_OBJS) $(TRACE_VIEW_OBJS) $(TRACE_GRAPH_OBJS) \ |
112 | plugin_kmem.so | 161 | $(TCMD_LIB_OBJS) $(PLUGIN_OBJS) |
113 | 162 | ||
114 | CMD_TARGETS = tc_version.h libparsevent.a libtracecmd.a trace-cmd $(PLUGINS) | 163 | CMD_TARGETS = tc_version.h libparsevent.a $(LIB_FILE) trace-cmd $(PLUGINS) |
115 | 164 | ||
116 | GUI_TARGETS = ks_version.h trace-graph trace-view kernelshark | 165 | GUI_TARGETS = ks_version.h trace-graph trace-view kernelshark |
117 | 166 | ||
118 | TARGETS = $(CMD_TARGETS) $(GUI_TARGETS) | 167 | TARGETS = $(CMD_TARGETS) $(GUI_TARGETS) |
119 | 168 | ||
169 | |||
170 | # cpp $(INCLUDES) | ||
171 | |||
120 | ### | 172 | ### |
121 | # Default we just build trace-cmd | 173 | # Default we just build trace-cmd |
122 | # | 174 | # |
@@ -125,122 +177,54 @@ TARGETS = $(CMD_TARGETS) $(GUI_TARGETS) | |||
125 | 177 | ||
126 | all: $(CMD_TARGETS) | 178 | all: $(CMD_TARGETS) |
127 | 179 | ||
128 | gui: $(CMD_TARGETS) | 180 | gui: $(CMD_TARGETS) |
129 | $(Q)$(MAKE) BUILDGUI=1 all_gui | 181 | $(Q)$(MAKE) BUILDGUI=1 all_gui |
130 | 182 | ||
131 | all_gui: $(GUI_TARGETS) | 183 | all_gui: $(GUI_TARGETS) |
132 | 184 | ||
133 | LIB_FILE = libtracecmd.a | 185 | GUI_OBJS = $(KERNEL_SHARK_OBJS) $(TRACE_VIEW_MAIN_OBJS) $(TRACE_GRAPH_MAIN_OBJS) |
134 | |||
135 | HEADERS = parse-events.h trace-cmd.h trace-local.h trace-hash.h | ||
136 | |||
137 | trace-read.o:: $(HEADERS) | ||
138 | trace-cmd.o:: $(HEADERS) $(LIB_FILE) tc_version.h | ||
139 | trace-util.o:: $(HEADERS) | ||
140 | trace-ftrace.o:: $(HEADERS) | ||
141 | trace-input.o:: $(HEADERS) | ||
142 | trace-view.o:: $(HEADERS) trace-view-store.h trace-view.h | ||
143 | trace-view-store.o:: $(HEADERS) trace-view-store.h trace-view.h | ||
144 | trace-view-main.o:: $(HEADERS) trace-view-store.h trace-view.h libtracecmd.a | ||
145 | trace-filter.o:: $(HEADERS) | ||
146 | trace-graph.o:: $(HEADERS) trace-graph.h | ||
147 | trace-graph-main.o:: $(HEADERS) trace-graph.h libtracecmd.a | ||
148 | kernel-shark.o:: $(HEADERS) kernel-shark.h libtracecmd.a ks_version.h | ||
149 | |||
150 | TRACE_VIEW_OBJS = trace-view.o trace-view-store.o trace-filter.o trace-compat.o \ | ||
151 | trace-hash.o | ||
152 | |||
153 | trace-cmd:: trace-cmd.o trace-read.o | ||
154 | $(do_app_build) | ||
155 | |||
156 | trace-view:: trace-view-main.o $(TRACE_VIEW_OBJS) | ||
157 | $(do_app_build) | ||
158 | |||
159 | trace-graph:: trace-graph-main.o trace-graph.o trace-compat.o trace-hash.o trace-filter.o | ||
160 | $(do_app_build) | ||
161 | |||
162 | ifeq ($(BUILDGUI), 1) | ||
163 | kernelshark:: kernel-shark.o trace-compat.o $(TRACE_VIEW_OBJS) trace-graph.o \ | ||
164 | trace-hash.o | ||
165 | $(do_app_build) | ||
166 | else | ||
167 | kernelshark: force | ||
168 | @echo '**************************************' | ||
169 | @echo '** To build kernel shark: make gui **' | ||
170 | @echo '**************************************' | ||
171 | endif | ||
172 | |||
173 | .PHONY: gtk_depends | ||
174 | view_depends: | ||
175 | @pkg-config --cflags $(PACKAGES) | ||
176 | 186 | ||
177 | trace-view.o:: parse-events.h | 187 | gui_objs := $(sort $(GUI_OBJS)) |
178 | trace-graph.o:: parse-events.h | ||
179 | 188 | ||
180 | parse-events.o: parse-events.c parse-events.h | 189 | trace-cmd: $(TRACE_CMD_OBJS) |
181 | $(do_fpic_compile) | 190 | $(Q)$(do_app_build) |
182 | 191 | ||
183 | trace-seq.o: trace-seq.c parse-events.h | 192 | kernelshark: $(KERNEL_SHARK_OBJS) |
184 | $(do_fpic_compile) | 193 | $(Q)$(G)$(do_app_build) |
185 | 194 | ||
186 | trace-util.o:: trace-util.c | 195 | trace-view: $(TRACE_VIEW_MAIN_OBJS) |
187 | $(do_fpic_compile) | 196 | $(Q)$(G)$(do_app_build) |
188 | 197 | ||
189 | trace-input.o:: trace-input.c | 198 | trace-graph: $(TRACE_GRAPH_MAIN_OBJS) |
190 | $(do_fpic_compile) | 199 | $(Q)$(G)$(do_app_build) |
191 | 200 | ||
192 | trace-output.o:: trace-output.c | 201 | kernelshark: libtracecmd.a |
193 | $(do_fpic_compile) | 202 | trace-view: libtracecmd.a |
194 | 203 | trace-graph: libtracecmd.a | |
195 | trace-record.o:: trace-record.c | ||
196 | $(do_fpic_compile) | ||
197 | |||
198 | trace-ftrace.o:: trace-ftrace.c | ||
199 | $(do_fpic_compile) | ||
200 | |||
201 | PEVENT_LIB_OBJS = parse-events.o trace-seq.o | ||
202 | 204 | ||
203 | libparsevent.so: $(PEVENT_LIB_OBJS) | 205 | libparsevent.so: $(PEVENT_LIB_OBJS) |
204 | $(do_compile_shared_library) | 206 | $(Q)$(do_compile_shared_library) |
205 | 207 | ||
206 | libparsevent.a: $(PEVENT_LIB_OBJS) | 208 | libparsevent.a: $(PEVENT_LIB_OBJS) |
207 | $(do_build_static_lib) | 209 | $(Q)$(do_build_static_lib) |
208 | 210 | ||
209 | TCMD_LIB_OBJS = $(PEVENT_LIB_OBJS) trace-util.o trace-input.o trace-ftrace.o \ | 211 | $(TCMD_LIB_OBJS): %.o: %.c |
210 | trace-output.o trace-record.o | 212 | $(Q)$(do_fpic_compile) |
211 | 213 | ||
212 | libtracecmd.so: $(TCMD_LIB_OBJS) | 214 | libtracecmd.so: $(TCMD_LIB_OBJS) |
213 | $(do_compile_shared_library) | 215 | $(Q)$(do_compile_shared_library) |
214 | 216 | ||
215 | libtracecmd.a: $(TCMD_LIB_OBJS) | 217 | libtracecmd.a: $(TCMD_LIB_OBJS) |
216 | $(do_build_static_lib) | 218 | $(Q)$(do_build_static_lib) |
217 | |||
218 | plugin_hrtimer.o: plugin_hrtimer.c parse-events.h trace-cmd.h | ||
219 | $(do_compile_plugin_obj) | ||
220 | |||
221 | plugin_hrtimer.so: plugin_hrtimer.o | ||
222 | $(do_plugin_build) | ||
223 | |||
224 | plugin_kmem.o: plugin_kmem.c parse-events.h trace-cmd.h | ||
225 | $(do_compile_plugin_obj) | ||
226 | |||
227 | plugin_kmem.so: plugin_kmem.o | ||
228 | $(do_plugin_build) | ||
229 | 219 | ||
230 | plugin_sched_switch.o: plugin_sched_switch.c parse-events.h trace-cmd.h | 220 | $(PLUGIN_OBJS): %.o : %.c |
231 | $(do_compile_plugin_obj) | 221 | $(Q)$(do_compile_plugin_obj) |
232 | 222 | ||
233 | plugin_sched_switch.so: plugin_sched_switch.o | 223 | $(PLUGINS): %.so: %.o |
234 | $(do_plugin_build) | 224 | $(Q)$(do_plugin_build) |
235 | |||
236 | plugin_mac80211.o: plugin_mac80211.c parse-events.h trace-cmd.h | ||
237 | $(do_compile_plugin_obj) | ||
238 | |||
239 | plugin_mac80211.so: plugin_mac80211.o | ||
240 | $(do_plugin_build) | ||
241 | 225 | ||
242 | define make_version.h | 226 | define make_version.h |
243 | @(echo \#define VERSION_CODE $(shell \ | 227 | (echo \#define VERSION_CODE $(shell \ |
244 | expr $(VERSION) \* 256 + $(PATCHLEVEL)); \ | 228 | expr $(VERSION) \* 256 + $(PATCHLEVEL)); \ |
245 | echo '#define EXTRAVERSION ' $(EXTRAVERSION); \ | 229 | echo '#define EXTRAVERSION ' $(EXTRAVERSION); \ |
246 | echo '#define VERSION_STRING "'$(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)'"'; \ | 230 | echo '#define VERSION_STRING "'$(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)'"'; \ |
@@ -249,20 +233,65 @@ define make_version.h | |||
249 | endef | 233 | endef |
250 | 234 | ||
251 | define update_version.h | 235 | define update_version.h |
252 | $(call make_version.h, $@.tmp); \ | 236 | ($(call make_version.h, $@.tmp); \ |
253 | if [ -r $@ ] && cmp -s $@ $@.tmp; then \ | 237 | if [ -r $@ ] && cmp -s $@ $@.tmp; then \ |
254 | rm -f $@.tmp; \ | 238 | rm -f $@.tmp; \ |
255 | else \ | 239 | else \ |
256 | echo ' UPD $@'; \ | 240 | echo ' UPDATE $@'; \ |
257 | mv -f $@.tmp $@; \ | 241 | mv -f $@.tmp $@; \ |
258 | fi; | 242 | fi); |
259 | endef | 243 | endef |
260 | 244 | ||
261 | ks_version.h: force | 245 | ks_version.h: force |
262 | $(call update_version.h) | 246 | $(Q)$(G)$(call update_version.h) |
263 | 247 | ||
264 | tc_version.h: force | 248 | tc_version.h: force |
265 | $(call update_version.h) | 249 | $(Q)$(N)$(call update_version.h) |
250 | |||
251 | ## make deps | ||
252 | |||
253 | all_objs := $(sort $(ALL_OBJS)) | ||
254 | all_deps := $(all_objs:%.o=.%.d) | ||
255 | gui_deps := $(gui_objs:%.o=.%.d) | ||
256 | |||
257 | define check_gui_deps | ||
258 | if [ ! -z "$(filter $(gui_deps),$(@))" ]; then \ | ||
259 | if [ $(BUILDGUI) -ne 1 ]; then \ | ||
260 | $(REBUILD_GUI); \ | ||
261 | else \ | ||
262 | $(CC) -M $(CFLAGS) $< > $@; \ | ||
263 | fi \ | ||
264 | elif [ $(BUILDGUI) -eq 0 ]; then \ | ||
265 | $(CC) -M $(CFLAGS) $< > $@; \ | ||
266 | else \ | ||
267 | echo SKIPPING $@; \ | ||
268 | fi; | ||
269 | endef | ||
270 | |||
271 | $(all_deps): tc_version.h ks_version.h | ||
272 | |||
273 | $(all_deps): .%.d: %.c | ||
274 | $(Q)$(call check_gui_deps) | ||
275 | |||
276 | $(all_objs) : %.o : .%.d | ||
277 | |||
278 | dep_includes := $(wildcard $(all_deps)) | ||
279 | |||
280 | ifneq ($(dep_includes),) | ||
281 | include $(dep_includes) | ||
282 | endif | ||
283 | |||
284 | .PHONY: force | ||
285 | force: | ||
286 | |||
287 | TAGS: force | ||
288 | find . -name '*.[ch]' | xargs etags | ||
289 | |||
290 | clean: | ||
291 | $(RM) *.o *~ $(TARGETS) *.a *.so ctracecmd_wrap.c .*.d | ||
292 | |||
293 | |||
294 | ##### PYTHON STUFF ##### | ||
266 | 295 | ||
267 | PYTHON_INCLUDES = `python-config --includes` | 296 | PYTHON_INCLUDES = `python-config --includes` |
268 | PYGTK_CFLAGS = `pkg-config --cflags pygtk-2.0` | 297 | PYGTK_CFLAGS = `pkg-config --cflags pygtk-2.0` |
@@ -282,12 +311,3 @@ python: ctracecmd.so | |||
282 | 311 | ||
283 | .PHONY: python-gui | 312 | .PHONY: python-gui |
284 | python-gui: ctracecmd.so ctracecmdgui.so | 313 | python-gui: ctracecmd.so ctracecmdgui.so |
285 | |||
286 | .PHONY: force | ||
287 | force: | ||
288 | |||
289 | TAGS: force | ||
290 | find . -name '*.[ch]' | xargs etags | ||
291 | |||
292 | clean: | ||
293 | $(RM) *.o *~ $(TARGETS) *.a *.so ctracecmd_wrap.c | ||