]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/compiler/Makefile
Import ACPICA 20120215.
[FreeBSD/FreeBSD.git] / source / compiler / Makefile
1 #
2 # iASL compiler/disassembler
3 #
4 # NOTE: This makefile is intended to be used within the native
5 # ACPICA source tree.
6 #
7
8 #
9 # Configuration
10 # Notes:
11 #   gcc should be version 4 or greater, otherwise some of the options
12 #       used will not be recognized.
13 #   Global optimization flags (such as -O2, -Os) are not used, since
14 #       they cause issues on some compilers.
15 #   The _GNU_SOURCE symbol is required for many hosts.
16 #
17 PROG = iasl
18
19 HOST =          _LINUX
20 NOMAN =         YES
21 COMPILE =       $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
22
23 ACPICA_SRC =            ../../source
24 ACPICA_COMMON =         $(ACPICA_SRC)/common
25 ACPICA_TOOLS =          $(ACPICA_SRC)/tools
26 ACPICA_OSL =            $(ACPICA_SRC)/os_specific/service_layers
27 ACPICA_CORE =           $(ACPICA_SRC)/components
28 ACPICA_INCLUDE =        $(ACPICA_SRC)/include
29 ACPICA_DEBUGGER =       $(ACPICA_CORE)/debugger
30 ACPICA_DISASSEMBLER =   $(ACPICA_CORE)/disassembler
31 ACPICA_DISPATCHER =     $(ACPICA_CORE)/dispatcher
32 ACPICA_EVENTS =         $(ACPICA_CORE)/events
33 ACPICA_EXECUTER =       $(ACPICA_CORE)/executer
34 ACPICA_HARDWARE =       $(ACPICA_CORE)/hardware
35 ACPICA_NAMESPACE =      $(ACPICA_CORE)/namespace
36 ACPICA_PARSER =         $(ACPICA_CORE)/parser
37 ACPICA_RESOURCES =      $(ACPICA_CORE)/resources
38 ACPICA_TABLES =         $(ACPICA_CORE)/tables
39 ACPICA_UTILITIES =      $(ACPICA_CORE)/utilities
40 ASL_COMPILER =          $(ACPICA_SRC)/compiler
41 INSTALLDIR =            /usr/bin
42 INSTALLPROG =           cp --remove-destination $(PROG) $(INSTALLDIR)
43
44 ACPICA_HEADERS = \
45     $(wildcard $(ACPICA_INCLUDE)/*.h) \
46     $(wildcard $(ACPICA_INCLUDE)/platform/*.h)
47
48 #
49 # Search paths for source files
50 #
51 vpath %.c \
52     $(ASL_COMPILER) \
53     $(ACPICA_DEBUGGER) \
54     $(ACPICA_DISASSEMBLER) \
55     $(ACPICA_DISPATCHER) \
56     $(ACPICA_EXECUTER) \
57     $(ACPICA_NAMESPACE) \
58     $(ACPICA_PARSER) \
59     $(ACPICA_TABLES) \
60     $(ACPICA_UTILITIES) \
61     $(ACPICA_COMMON) \
62     $(ACPICA_OSL)
63
64 HEADERS = \
65     $(wildcard $(ASL_COMPILER)/*.h) \
66     aslcompiler.y.h \
67     dtparser.y.h
68
69 OBJECTS = \
70         aslcompilerlex.o \
71         aslcompilerparse.o \
72         dtparserlex.o \
73         dtparserparse.o \
74         adfile.o \
75         adisasm.o \
76         adwalk.o \
77         aslanalyze.o \
78         aslbtypes.o \
79         aslcodegen.o \
80         aslcompile.o \
81         aslerror.o \
82         aslfiles.o \
83         aslfold.o \
84         asllength.o \
85         asllisting.o \
86         aslload.o \
87         asllookup.o \
88         aslmain.o \
89         aslmap.o \
90         aslopcodes.o \
91         asloperands.o \
92         aslopt.o \
93         aslpredef.o \
94         aslresource.o \
95         aslrestype1.o \
96         aslrestype1i.o \
97         aslrestype2.o \
98         aslrestype2d.o \
99         aslrestype2e.o \
100         aslrestype2s.o \
101         aslrestype2q.o \
102         aslrestype2w.o \
103         aslstartup.o \
104         aslstubs.o \
105         asltransform.o \
106         asltree.o \
107         aslutils.o \
108         asluuid.o \
109         aslwalks.o \
110         dtcompile.o \
111         dtexpress.o \
112         dtfield.o \
113         dtio.o \
114         dtsubtable.o \
115         dttable.o \
116         dttemplate.o \
117         dtutils.o \
118         dbfileio.o \
119         dmbuffer.o \
120         dmextern.o \
121         dmnames.o \
122         dmobject.o \
123         dmopcode.o \
124         dmresrc.o \
125         dmresrcl.o \
126         dmresrcl2.o \
127         dmresrcs.o \
128         dmrestag.o \
129         dmtable.o \
130         dmtbdump.o \
131         dmtbinfo.o \
132         dmutils.o \
133         dmwalk.o \
134         dsargs.o \
135         dscontrol.o \
136         dsfield.o \
137         dsobject.o \
138         dsopcode.o \
139         dsutils.o \
140         dswexec.o \
141         dswload.o \
142         dswload2.o \
143         dswscope.o \
144         dswstate.o \
145         exconvrt.o \
146         excreate.o \
147         exdump.o \
148         exmisc.o \
149         exmutex.o \
150         exnames.o \
151         exoparg1.o \
152         exoparg2.o \
153         exoparg3.o \
154         exoparg6.o \
155         exprep.o \
156         exregion.o \
157         exresnte.o \
158         exresolv.o \
159         exresop.o \
160         exstore.o \
161         exstoren.o \
162         exstorob.o \
163         exsystem.o \
164         exutils.o \
165         getopt.o \
166         nsaccess.o \
167         nsalloc.o \
168         nsdump.o \
169         nsnames.o \
170         nsobject.o \
171         nsparse.o \
172         nssearch.o \
173         nsutils.o \
174         nswalk.o \
175         nsxfobj.o \
176         osunixxf.o \
177         psargs.o \
178         psloop.o \
179         psopcode.o \
180         psparse.o \
181         psscope.o \
182         pstree.o \
183         psutils.o \
184         pswalk.o \
185         tbfadt.o \
186         tbinstal.o \
187         tbutils.o \
188         tbxface.o \
189         utaddress.o \
190         utalloc.o \
191         utcache.o \
192         utcopy.o \
193         utdebug.o \
194         utdecode.o \
195         utdelete.o \
196         utglobal.o \
197         utinit.o \
198         utlock.o \
199         utmath.o \
200         utmisc.o \
201         utmutex.o \
202         utobject.o \
203         utresrc.o \
204         utstate.o \
205         utxferror.o \
206         utxface.o
207
208 INTERMEDIATES = \
209         aslcompilerlex.c \
210         aslcompilerparse.c \
211         dtparserlex.c \
212         dtparserparse.c
213
214 MISC = \
215     aslcompilerparse.h \
216         aslcompiler.y.h \
217         aslcompilerparse.output \
218     dtparserparse.h \
219         dtparser.y.h \
220         dtparserparse.output
221
222 CFLAGS+= \
223     -D$(HOST) \
224     -D_GNU_SOURCE \
225     -DACPI_ASL_COMPILER \
226     -I$(ACPICA_INCLUDE) \
227     -I$(ASL_COMPILER)
228
229 CWARNINGFLAGS = \
230     -ansi \
231     -Wall \
232     -Wbad-function-cast \
233     -Wdeclaration-after-statement \
234     -Werror \
235     -Wformat=2 \
236     -Wmissing-declarations \
237     -Wmissing-prototypes \
238     -Wstrict-aliasing=0 \
239     -Wstrict-prototypes \
240     -Wswitch-default \
241     -Wpointer-arith \
242     -Wundef
243
244 #
245 # gcc 4+ flags
246 #
247 CWARNINGFLAGS += \
248     -Waddress \
249     -Waggregate-return \
250     -Wchar-subscripts \
251     -Wempty-body \
252     -Wlogical-op \
253     -Wmissing-declarations \
254     -Wmissing-field-initializers \
255     -Wmissing-parameter-type \
256     -Wnested-externs \
257     -Wold-style-declaration \
258     -Wold-style-definition \
259     -Wredundant-decls \
260     -Wtype-limits
261
262 #
263 # Bison/Flex configuration
264 #
265 YACC=    bison
266 YFLAGS+= -v -d -y
267
268 LEX=     flex
269 LFLAGS+= -i -s
270
271 #
272 # Root rule
273 #
274 $(PROG) : $(INTERMEDIATES) $(MISC) $(OBJECTS)
275         $(CC) $(OBJECTS) $(LDFLAGS) -o $(PROG)
276
277 #
278 # Parser and Lexer - intermediate C files
279 #
280 aslcompilerlex.c :   $(ASL_COMPILER)/aslcompiler.l
281         ${LEX} ${LFLAGS} -PAslCompiler -o$@ $?
282
283 aslcompilerparse.c aslcompilerparse.h : $(ASL_COMPILER)/aslcompiler.y
284         ${YACC} ${YFLAGS} -pAslCompiler -o$@ $?
285
286 dtparserlex.c :      $(ASL_COMPILER)/dtparser.l
287         ${LEX} ${LFLAGS} -PDtParser -o$@ $?
288
289 dtparserparse.c dtparserparse.h : $(ASL_COMPILER)/dtparser.y
290         ${YACC} ${YFLAGS} -pDtParser -o$@ $?
291
292 # Rename headers produced by bison/yacc
293
294 dtparser.y.h: dtparserparse.h
295         @echo Copy intermediate file:
296         @cp -f -v dtparserparse.h dtparser.y.h
297
298 aslcompiler.y.h : aslcompilerparse.h
299         @echo Copy intermediate file:
300         @cp -f -v aslcompilerparse.h aslcompiler.y.h
301
302
303 #
304 # Parsers and Lexers - final object files
305 #
306 # Cannot use the common compile warning flags since the C files are created
307 # by the utilities above and they are not necessarily ANSI C, etc.
308 #
309 aslcompilerlex.o :   aslcompilerlex.c
310         $(CC) -c $(CFLAGS) -Wall -Werror -Wstrict-aliasing=0 -o$@ $?
311
312 aslcompilerparse.o : aslcompilerparse.c
313         $(CC) -c $(CFLAGS) -Wall -Werror -Wstrict-aliasing=0 -o$@ $?
314
315 dtparserlex.o :      dtparserlex.c
316         $(CC) -c $(CFLAGS) -Wall -Werror -Wstrict-aliasing=0 -o$@ $?
317
318 dtparserparse.o :    dtparserparse.c
319         $(CC) -c $(CFLAGS) -Wall -Werror -Wstrict-aliasing=0 -o$@ $?
320
321
322 %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
323         $(COMPILE)
324
325 clean :
326         rm -f $(PROG) $(PROG).exe $(OBJECTS) $(INTERMEDIATES) $(MISC)
327
328 install :
329         $(INSTALLPROG)