OSDN Git Service

7cc4e9cbb291149afd52663721653ae63054ee66
[drdeamon64/drdeamon64.git] / libgoblin / Makefile
1 ##DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
2 #
3 #                         D r . D e a m o n  6 4
4 #                        for INTEL64(R), AMD64(R)
5 #    
6 #   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
7 #
8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions are met:
10 #
11 # 1. Redistributions of source code must retain the above copyright notice,
12 #    this list of conditions and the following disclaimer.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 #    notice, this list of conditions and the following disclaimer in the
15 #    documentation and/or other materials provided with the distribution.
16 #
17 # THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 # DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
21 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27 # OF THE POSSIBILITY OF SUCH DAMAGE.
28 #
29 ##DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
30
31 ## File Info -----------------------------------------------------------
32 # File: Makefile
33 # Function: 
34 # Comment: 
35 ##----------------------------------------------------------------------
36
37 # Section 1 : Setting Build Command ####################################
38 MAKE = make
39
40 SUPER_HEADER =  ../include/drd64_conf.h \
41                                 ../include/drd64_defines.h \
42                                 ../include/drd64_types.h \
43                                 ../include/drd64_error.h
44 USER_HEADER = ../include/libgoblin.h
45 LIB_HEADER = ../include/libfiletype.h
46
47 FLAGS_DEBUG = -g -Wall
48
49 TARGET = libgoblin.a
50 OBJS = drd64_libgoblin_api.o \
51                 drd64_libgoblin_proginfo.o \
52                 drd64_libgoblin_binfo.o \
53                 drd64_libgoblin_binaryfile.o \
54                 drd64_libgoblin_srcfile.o \
55                 drd64_libgoblin_checkbin.o \
56                 drd64_libgoblin_common.o \
57                 drd64_libgoblin_readbin.o \
58                 drd64_libgoblin_loadprog.o \
59                 drd64_libgoblin_objinfo.o \
60                 drd64_libgoblin_objinfo_search.o \
61                 drd64_libgoblin_objinfo_postproc.o \
62                 drd64_libgoblin_section.o \
63                 drd64_libgoblin_elf.o \
64                 drd64_libgoblin_elf_dynamic.o \
65                 drd64_libgoblin_elf_dynsym.o \
66                 drd64_libgoblin_elf_gnuver.o \
67                 drd64_libgoblin_elf_hash.o \
68                 drd64_libgoblin_elf_symtab.o \
69                 drd64_libgoblin_elf_rela.o \
70                 drd64_libgoblin_elf_proghdr.o \
71                 drd64_libgoblin_elf_section.o \
72                 drd64_libgoblin_elf32.o \
73                 drd64_libgoblin_dwarf.o \
74                 drd64_libgoblin_dwarf_abbrev.o \
75                 drd64_libgoblin_dwarf_ranges.o \
76                 drd64_libgoblin_dwarf_attrform.o \
77                 drd64_libgoblin_dwarf_expression.o \
78                 drd64_libgoblin_dwarf_info.o \
79                 drd64_libgoblin_dwarf_line.o \
80                 drd64_libgoblin_dwarf_oldline.o \
81                 drd64_libgoblin_dwarf_tag_compileunit.o \
82                 drd64_libgoblin_dwarf_tag_type.o \
83                 drd64_libgoblin_dwarf_tag_struct.o \
84                 drd64_libgoblin_dwarf_tag_parameter.o \
85                 drd64_libgoblin_dwarf_tag_function.o \
86                 drd64_libgoblin_dwarf_tag_array.o \
87                 drd64_libgoblin_dwarf_tag_class.o \
88                 drd64_libgoblin_dwarf_tag_exception.o \
89                 drd64_libgoblin_dwarf_tag_notclang.o \
90                 drd64_libgoblin_dwarf_tag_dispatch.o \
91                 drd64_libgoblin_dwarf_common.o \
92                 drd64_libgoblin_index_dwarfinfo.o \
93                 drd64_libgoblin_debug_elf.o \
94                 drd64_libgoblin_debug_dwarf_str.o \
95                 drd64_libgoblin_debug_dwarf.o \
96                 drd64_libgoblin_debug_objinfo.o
97 HEADER = drd64_libgoblin.h \
98                 drd64_libgoblin_section_defs.h \
99                 drd64_libgoblin_type.h \
100                 drd64_libgoblin_proginfo.h \
101                 drd64_libgoblin_binfo.h \
102                 drd64_libgoblin_binaryfile.h \
103                 drd64_libgoblin_srcfile.h \
104                 drd64_libgoblin_checkbin.h \
105                 drd64_libgoblin_common.h \
106                 drd64_libgoblin_readbin.h \
107                 drd64_libgoblin_loadprog.h \
108                 drd64_libgoblin_objinfo.h \
109                 drd64_libgoblin_objinfo_search.h \
110                 drd64_libgoblin_objinfo_postproc.h \
111                 drd64_libgoblin_section.h \
112                 drd64_libgoblin_elf.h \
113                 drd64_libgoblin_elf_dynamic.h \
114                 drd64_libgoblin_elf_dynsym.h \
115                 drd64_libgoblin_elf_gnuver.h \
116                 drd64_libgoblin_elf_hash.h \
117                 drd64_libgoblin_elf_symtab.h \
118                 drd64_libgoblin_elf_rela.h \
119                 drd64_libgoblin_elf_proghdr.h \
120                 drd64_libgoblin_elf_section.h \
121                 drd64_libgoblin_elf32.h \
122                 drd64_libgoblin_dwarf.h \
123                 drd64_libgoblin_dwarf_abbrev.h \
124                 drd64_libgoblin_dwarf_ranges.h \
125                 drd64_libgoblin_dwarf_attrform.h \
126                 drd64_libgoblin_dwarf_expression.h \
127                 drd64_libgoblin_dwarf_info.h \
128                 drd64_libgoblin_dwarf_line.h \
129                 drd64_libgoblin_dwarf_oldline.h \
130                 drd64_libgoblin_dwarf_tag_compileunit.h \
131                 drd64_libgoblin_dwarf_tag_type.h \
132                 drd64_libgoblin_dwarf_tag_struct.h \
133                 drd64_libgoblin_dwarf_tag_parameter.h \
134                 drd64_libgoblin_dwarf_tag_function.h \
135                 drd64_libgoblin_dwarf_tag_array.h \
136                 drd64_libgoblin_dwarf_tag_class.h \
137                 drd64_libgoblin_dwarf_tag_exception.h \
138                 drd64_libgoblin_dwarf_tag_notclang.h \
139                 drd64_libgoblin_dwarf_tag_dispatch.h \
140                 drd64_libgoblin_dwarf_common.h \
141                 drd64_libgoblin_index_dwarfinfo.h \
142                 drd64_libgoblin_debug_elf.h \
143                 drd64_libgoblin_debug_dwarf_str.h \
144                 drd64_libgoblin_debug_dwarf.h \
145                 drd64_libgoblin_debug_objinfo.h \
146                 drd64_libgoblin_addrinfo.h \
147                 $(USER_HEADER) $(SUPER_HEADER) $(LIB_HEADER) 
148 LIBRARY = ../libfiletype.a \
149                         ../libbrownie.a
150
151 TEST_FLAGS_COMPILE = -I/usr/local/include
152 TEST_FLAGS_LINKER = -L/usr/local/lib -lcunit -L.. -lfiletype -lbrownie
153 TEST_TARGET = test_libgoblin
154 TEST_HEADER = test_libgoblin.h
155 TEST_OBJS = test_libgoblin.o \
156                         test_libgoblin_api.o \
157                         test_libgoblin_proginfo.o \
158                         test_libgoblin_binaryfile.o \
159                         test_libgoblin_srcfile.o \
160                         test_libgoblin_loadprog.o \
161                         test_libgoblin_binfo.o \
162                         test_libgoblin_objinfo.o \
163                         test_libgoblin_readbin.o \
164                         test_libgoblin_dwarf_expression.o
165
166 TESTPROG = ../testdata/dwarftest
167
168 CALLGRAPH = CallGraph.txt
169
170
171 all:    $(TARGET) test
172 build:  $(TARGET) $(CALLGRAPH)
173 test:   $(TEST_TARGET) $(TESTPROG)
174         ./$(TEST_TARGET) | tee result.log
175
176
177 $(TARGET): $(OBJS) $(LIB_OBJS)
178         ar rv $(TARGET) $(OBJS) $(LIBRARY)
179         ranlib $(TARGET)
180         cp $(TARGET) ..
181
182 drd64_libgoblin_api.o: drd64_libgoblin_api.c $(HEADER)
183         $(CC) -c -o drd64_libgoblin_api.o $(FLAGS_DEBUG) \
184                                 drd64_libgoblin_api.c
185 drd64_libgoblin_proginfo.o: drd64_libgoblin_proginfo.c $(HEADER)
186         $(CC) -c -o drd64_libgoblin_proginfo.o $(FLAGS_DEBUG) \
187                                 drd64_libgoblin_proginfo.c
188 drd64_libgoblin_binfo.o: drd64_libgoblin_binfo.c $(HEADER)
189         $(CC) -c -o drd64_libgoblin_binfo.o $(FLAGS_DEBUG) \
190                                 drd64_libgoblin_binfo.c
191 drd64_libgoblin_binaryfile.o: drd64_libgoblin_binaryfile.c $(HEADER)
192         $(CC) -c -o drd64_libgoblin_binaryfile.o $(FLAGS_DEBUG) \
193                                 drd64_libgoblin_binaryfile.c
194 drd64_libgoblin_srcfile.o: drd64_libgoblin_srcfile.c $(HEADER)
195         $(CC) -c -o drd64_libgoblin_srcfile.o $(FLAGS_DEBUG) \
196                                 drd64_libgoblin_srcfile.c
197 drd64_libgoblin_checkbin.o: drd64_libgoblin_checkbin.c $(HEADER)
198         $(CC) -c -o drd64_libgoblin_checkbin.o $(FLAGS_DEBUG) \
199                                 drd64_libgoblin_checkbin.c
200 drd64_libgoblin_common.o: drd64_libgoblin_common.c $(HEADER)
201         $(CC) -c -o drd64_libgoblin_common.o $(FLAGS_DEBUG) \
202                                 drd64_libgoblin_common.c
203 drd64_libgoblin_readbin.o: drd64_libgoblin_readbin.c $(HEADER)
204         $(CC) -c -o drd64_libgoblin_readbin.o $(FLAGS_DEBUG) \
205                                 drd64_libgoblin_readbin.c
206 drd64_libgoblin_loadprog.o: drd64_libgoblin_loadprog.c $(HEADER)
207         $(CC) -c -o drd64_libgoblin_loadprog.o $(FLAGS_DEBUG) \
208                                 drd64_libgoblin_loadprog.c
209 drd64_libgoblin_objinfo.o: drd64_libgoblin_objinfo.c $(HEADER)
210         $(CC) -c -o drd64_libgoblin_objinfo.o $(FLAGS_DEBUG) \
211                                 drd64_libgoblin_objinfo.c
212 drd64_libgoblin_objinfo_search.o: drd64_libgoblin_objinfo_search.c $(HEADER)
213         $(CC) -c -o drd64_libgoblin_objinfo_search.o $(FLAGS_DEBUG) \
214                                 drd64_libgoblin_objinfo_search.c
215 drd64_libgoblin_objinfo_postproc.o: drd64_libgoblin_objinfo_postproc.c $(HEADER)
216         $(CC) -c -o drd64_libgoblin_objinfo_postproc.o $(FLAGS_DEBUG) \
217                                 drd64_libgoblin_objinfo_postproc.c
218 drd64_libgoblin_section.o: drd64_libgoblin_section.c $(HEADER)
219         $(CC) -c -o drd64_libgoblin_section.o $(FLAGS_DEBUG) \
220                                 drd64_libgoblin_section.c
221
222 drd64_libgoblin_elf.o: drd64_libgoblin_elf.c $(HEADER)
223         $(CC) -c -o drd64_libgoblin_elf.o $(FLAGS_DEBUG) \
224                                 drd64_libgoblin_elf.c
225 drd64_libgoblin_elf_dynamic.o: drd64_libgoblin_elf_dynamic.c $(HEADER)
226         $(CC) -c -o drd64_libgoblin_elf_dynamic.o $(FLAGS_DEBUG) \
227                                 drd64_libgoblin_elf_dynamic.c
228 drd64_libgoblin_elf_dynsym.o: drd64_libgoblin_elf_dynsym.c $(HEADER)
229         $(CC) -c -o drd64_libgoblin_elf_dynsym.o $(FLAGS_DEBUG) \
230                                 drd64_libgoblin_elf_dynsym.c
231 drd64_libgoblin_elf_gnuver.o: drd64_libgoblin_elf_gnuver.c $(HEADER)
232         $(CC) -c -o drd64_libgoblin_elf_gnuver.o $(FLAGS_DEBUG) \
233                                 drd64_libgoblin_elf_gnuver.c
234 drd64_libgoblin_elf_hash.o: drd64_libgoblin_elf_hash.c $(HEADER)
235         $(CC) -c -o drd64_libgoblin_elf_hash.o $(FLAGS_DEBUG) \
236                                 drd64_libgoblin_elf_hash.c
237 drd64_libgoblin_elf_symtab.o: drd64_libgoblin_elf_symtab.c $(HEADER)
238         $(CC) -c -o drd64_libgoblin_elf_symtab.o $(FLAGS_DEBUG) \
239                                 drd64_libgoblin_elf_symtab.c
240 drd64_libgoblin_elf_rela.o: drd64_libgoblin_elf_rela.c $(HEADER)
241         $(CC) -c -o drd64_libgoblin_elf_rela.o $(FLAGS_DEBUG) \
242                                 drd64_libgoblin_elf_rela.c
243 drd64_libgoblin_elf_proghdr.o: drd64_libgoblin_elf_proghdr.c $(HEADER)
244         $(CC) -c -o drd64_libgoblin_elf_proghdr.o $(FLAGS_DEBUG) \
245                                 drd64_libgoblin_elf_proghdr.c
246 drd64_libgoblin_elf_section.o: drd64_libgoblin_elf_section.c $(HEADER)
247         $(CC) -c -o drd64_libgoblin_elf_section.o $(FLAGS_DEBUG) \
248                                 drd64_libgoblin_elf_section.c
249 drd64_libgoblin_elf32.o: drd64_libgoblin_elf32.c $(HEADER)
250         $(CC) -c -o drd64_libgoblin_elf32.o $(FLAGS_DEBUG) \
251                                 drd64_libgoblin_elf32.c
252
253 drd64_libgoblin_dwarf.o: drd64_libgoblin_dwarf.c $(HEADER)
254         $(CC) -c -o drd64_libgoblin_dwarf.o $(FLAGS_DEBUG) \
255                                 drd64_libgoblin_dwarf.c
256 drd64_libgoblin_dwarf_abbrev.o: drd64_libgoblin_dwarf_abbrev.c $(HEADER)
257         $(CC) -c -o drd64_libgoblin_dwarf_abbrev.o $(FLAGS_DEBUG) \
258                                 drd64_libgoblin_dwarf_abbrev.c
259 drd64_libgoblin_dwarf_ranges.o: drd64_libgoblin_dwarf_ranges.c $(HEADER)
260         $(CC) -c -o drd64_libgoblin_dwarf_ranges.o $(FLAGS_DEBUG) \
261                                 drd64_libgoblin_dwarf_ranges.c
262 drd64_libgoblin_dwarf_attrform.o: \
263                 drd64_libgoblin_dwarf_attrform.c $(HEADER)
264         $(CC) -c -o drd64_libgoblin_dwarf_attrform.o $(FLAGS_DEBUG) \
265                                 drd64_libgoblin_dwarf_attrform.c
266 drd64_libgoblin_dwarf_expression.o: \
267                 drd64_libgoblin_dwarf_expression.c $(HEADER)
268         $(CC) -c -o drd64_libgoblin_dwarf_expression.o $(FLAGS_DEBUG) \
269                                 drd64_libgoblin_dwarf_expression.c
270 drd64_libgoblin_dwarf_info.o: \
271                 drd64_libgoblin_dwarf_info.c $(HEADER)
272         $(CC) -c -o drd64_libgoblin_dwarf_info.o $(FLAGS_DEBUG) \
273                                 drd64_libgoblin_dwarf_info.c
274 drd64_libgoblin_dwarf_line.o: \
275                 drd64_libgoblin_dwarf_line.c $(HEADER)
276         $(CC) -c -o drd64_libgoblin_dwarf_line.o $(FLAGS_DEBUG) \
277                                 drd64_libgoblin_dwarf_line.c
278 drd64_libgoblin_dwarf_oldline.o: \
279                 drd64_libgoblin_dwarf_oldline.c $(HEADER)
280         $(CC) -c -o drd64_libgoblin_dwarf_oldline.o $(FLAGS_DEBUG) \
281                                 drd64_libgoblin_dwarf_oldline.c
282 drd64_libgoblin_dwarf_tag_compileunit.o: \
283                 drd64_libgoblin_dwarf_tag_compileunit.c $(HEADER)
284         $(CC) -c -o drd64_libgoblin_dwarf_tag_compileunit.o $(FLAGS_DEBUG) \
285                                 drd64_libgoblin_dwarf_tag_compileunit.c
286 drd64_libgoblin_dwarf_tag_type.o: \
287                 drd64_libgoblin_dwarf_tag_type.c $(HEADER)
288         $(CC) -c -o drd64_libgoblin_dwarf_tag_type.o $(FLAGS_DEBUG) \
289                                 drd64_libgoblin_dwarf_tag_type.c
290 drd64_libgoblin_dwarf_tag_struct.o: \
291                 drd64_libgoblin_dwarf_tag_struct.c $(HEADER)
292         $(CC) -c -o drd64_libgoblin_dwarf_tag_struct.o $(FLAGS_DEBUG) \
293                                 drd64_libgoblin_dwarf_tag_struct.c
294 drd64_libgoblin_dwarf_tag_parameter.o: \
295                 drd64_libgoblin_dwarf_tag_parameter.c $(HEADER)
296         $(CC) -c -o drd64_libgoblin_dwarf_tag_parameter.o $(FLAGS_DEBUG) \
297                                 drd64_libgoblin_dwarf_tag_parameter.c
298 drd64_libgoblin_dwarf_tag_function.o: \
299                 drd64_libgoblin_dwarf_tag_function.c $(HEADER)
300         $(CC) -c -o drd64_libgoblin_dwarf_tag_function.o $(FLAGS_DEBUG) \
301                                 drd64_libgoblin_dwarf_tag_function.c
302 drd64_libgoblin_dwarf_tag_array.o: \
303                 drd64_libgoblin_dwarf_tag_array.c $(HEADER)
304         $(CC) -c -o drd64_libgoblin_dwarf_tag_array.o $(FLAGS_DEBUG) \
305                                 drd64_libgoblin_dwarf_tag_array.c
306 drd64_libgoblin_dwarf_tag_class.o: \
307                 drd64_libgoblin_dwarf_tag_class.c $(HEADER)
308         $(CC) -c -o drd64_libgoblin_dwarf_tag_class.o $(FLAGS_DEBUG) \
309                                 drd64_libgoblin_dwarf_tag_class.c
310 drd64_libgoblin_dwarf_tag_exception.o: \
311                 drd64_libgoblin_dwarf_tag_exception.c $(HEADER)
312         $(CC) -c -o drd64_libgoblin_dwarf_tag_exception.o $(FLAGS_DEBUG) \
313                                 drd64_libgoblin_dwarf_tag_exception.c
314 drd64_libgoblin_dwarf_tag_notclang.o: \
315                 drd64_libgoblin_dwarf_tag_notclang.c $(HEADER)
316         $(CC) -c -o drd64_libgoblin_dwarf_tag_notclang.o $(FLAGS_DEBUG) \
317                                 drd64_libgoblin_dwarf_tag_notclang.c
318 drd64_libgoblin_dwarf_tag_dispatch.o: \
319                 drd64_libgoblin_dwarf_tag_dispatch.c $(HEADER)
320         $(CC) -c -o drd64_libgoblin_dwarf_tag_dispatch.o $(FLAGS_DEBUG) \
321                                 drd64_libgoblin_dwarf_tag_dispatch.c
322 drd64_libgoblin_dwarf_common.o: drd64_libgoblin_dwarf_common.c $(HEADER)
323         $(CC) -c -o drd64_libgoblin_dwarf_common.o $(FLAGS_DEBUG) \
324                                 drd64_libgoblin_dwarf_common.c
325 drd64_libgoblin_index_dwarfinfo.o: \
326                 drd64_libgoblin_index_dwarfinfo.c $(HEADER)
327         $(CC) -c -o drd64_libgoblin_index_dwarfinfo.o $(FLAGS_DEBUG) \
328                                 drd64_libgoblin_index_dwarfinfo.c
329
330 drd64_libgoblin_debug_elf.o: drd64_libgoblin_debug_elf.c $(HEADER)
331         $(CC) -c -o drd64_libgoblin_debug_elf.o $(FLAGS_DEBUG) \
332                                 drd64_libgoblin_debug_elf.c
333 drd64_libgoblin_debug_dwarf_str.o: drd64_libgoblin_debug_dwarf_str.c $(HEADER)
334         $(CC) -c -o drd64_libgoblin_debug_dwarf_str.o $(FLAGS_DEBUG) \
335                                 drd64_libgoblin_debug_dwarf_str.c
336 drd64_libgoblin_debug_dwarf.o: drd64_libgoblin_debug_dwarf.c $(HEADER)
337         $(CC) -c -o drd64_libgoblin_debug_dwarf.o $(FLAGS_DEBUG) \
338                                 drd64_libgoblin_debug_dwarf.c
339 drd64_libgoblin_debug_objinfo.o: drd64_libgoblin_debug_objinfo.c $(HEADER)
340         $(CC) -c -o drd64_libgoblin_debug_objinfo.o $(FLAGS_DEBUG) \
341                                 drd64_libgoblin_debug_objinfo.c
342
343 #$(TEST_TARGET): elftest.c ../include/libgoblin.h $(TARGET)
344 #       $(CC) -g -o $(TEST_TARGET) elftest.c $(TARGET)
345
346 test_libgoblin.o: test_libgoblin.c $(HEADER) $(TEST_HEADER)
347         $(CC) -c -o test_libgoblin.o \
348                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
349                         test_libgoblin.c
350 test_libgoblin_api.o: test_libgoblin_api.c $(HEADER) $(TEST_HEADER)
351         $(CC) -c -o test_libgoblin_api.o \
352                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
353                         test_libgoblin_api.c
354 test_libgoblin_binfo.o: test_libgoblin_binfo.c $(HEADER) $(TEST_HEADER)
355         $(CC) -c -o test_libgoblin_binfo.o \
356                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
357                         test_libgoblin_binfo.c
358 test_libgoblin_objinfo.o: test_libgoblin_objinfo.c $(HEADER) $(TEST_HEADER)
359         $(CC) -c -o test_libgoblin_objinfo.o \
360                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
361                         test_libgoblin_objinfo.c
362 test_libgoblin_proginfo.o: test_libgoblin_proginfo.c $(HEADER) $(TEST_HEADER)
363         $(CC) -c -o test_libgoblin_proginfo.o \
364                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
365                         test_libgoblin_proginfo.c
366 test_libgoblin_binaryfile.o: test_libgoblin_binaryfile.c $(HEADER) $(TEST_HEADER)
367         $(CC) -c -o test_libgoblin_binaryfile.o \
368                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
369                         test_libgoblin_binaryfile.c
370 test_libgoblin_srcfile.o: test_libgoblin_srcfile.c $(HEADER) $(TEST_HEADER)
371         $(CC) -c -o test_libgoblin_srcfile.o \
372                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
373                         test_libgoblin_srcfile.c
374 test_libgoblin_loadprog.o: test_libgoblin_loadprog.c $(HEADER) $(TEST_HEADER)
375         $(CC) -c -o test_libgoblin_loadprog.o \
376                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
377                         test_libgoblin_loadprog.c
378 test_libgoblin_readbin.o: test_libgoblin_readbin.c $(HEADER) $(TEST_HEADER)
379         $(CC) -c -o test_libgoblin_readbin.o \
380                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
381                         test_libgoblin_readbin.c
382 test_libgoblin_dwarf_expression.o: test_libgoblin_dwarf_expression.c $(HEADER) $(TEST_HEADER)
383         $(CC) -c -o test_libgoblin_dwarf_expression.o \
384                         $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
385                         test_libgoblin_dwarf_expression.c
386
387 ../libfiletype.a:
388         $(MAKE) -C ../libfiletype all
389
390 ../libbrownie.a:
391         $(MAKE) -C ../libbrownie all
392
393
394 $(TEST_TARGET): $(TEST_OBJS) $(TARGET) $(LIBRARY)
395         $(CC) -o $(TEST_TARGET) $(FLAGS_DEBUG) $(TEST_OBJS) $(TARGET) $(TEST_FLAGS_LINKER)
396
397
398 $(TESTPROG):
399         $(MAKE) -C ../testdata all clean
400 #       $(MAKE) -C ../testpg/testpg02 all clean
401
402 $(CALLGRAPH):
403         env CC=cc cflow -A -P -g -X -n *.c $(HEADER) > $(CALLGRAPH)
404
405 clean:
406         rm -f *.o
407         rm -f *.xml
408         rm -f *.core
409         rm -f *.log
410         rm -f $(CALLGRAPH)
411         rm -f $(TARGET)
412         rm -f $(TEST_TARGET)
413