2 # iASL compiler/disassembler
6 # Note: This makefile is intended to be used from within the native
7 # ACPICA directory structure, from under generate/unix. It specifically
8 # places all object files in a generate/unix subdirectory, not within
9 # the various ACPICA source directories. This prevents collisions
10 # between different compilations of the same source file with different
11 # compile options, and prevents pollution of the source code.
13 include ..
/Makefile.config
14 FINAL_PROG
= ..
/$(BINDIR
)/iasl
18 # Search paths for source files
23 $(ACPICA_DISASSEMBLER
)\
34 $(wildcard $(ASL_COMPILER
)/*.h
)\
35 $(OBJDIR
)/aslcompiler.y.h\
36 $(OBJDIR
)/dtparser.y.h\
37 $(OBJDIR
)/prparser.y.h
40 $(OBJDIR
)/aslcompilerlex.o\
41 $(OBJDIR
)/aslcompilerparse.o\
42 $(OBJDIR
)/dtparserlex.o\
43 $(OBJDIR
)/dtparserparse.o\
44 $(OBJDIR
)/prparserlex.o\
45 $(OBJDIR
)/prparserparse.o\
54 $(OBJDIR
)/aslallocate.o\
55 $(OBJDIR
)/aslanalyze.o\
57 $(OBJDIR
)/aslbtypes.o\
59 $(OBJDIR
)/aslcodegen.o\
60 $(OBJDIR
)/aslcompile.o\
63 $(OBJDIR
)/aslexternal.o\
65 $(OBJDIR
)/aslfileio.o\
69 $(OBJDIR
)/asllength.o\
70 $(OBJDIR
)/asllisting.o\
71 $(OBJDIR
)/asllistsup.o\
73 $(OBJDIR
)/asllookup.o\
76 $(OBJDIR
)/aslmapenter.o\
77 $(OBJDIR
)/aslmapoutput.o\
78 $(OBJDIR
)/aslmaputils.o\
79 $(OBJDIR
)/aslmessages.o\
80 $(OBJDIR
)/aslmethod.o\
81 $(OBJDIR
)/aslnamesp.o\
82 $(OBJDIR
)/asloffset.o\
83 $(OBJDIR
)/aslopcodes.o\
84 $(OBJDIR
)/asloperands.o\
86 $(OBJDIR
)/asloptions.o\
87 $(OBJDIR
)/aslparseop.o\
88 $(OBJDIR
)/aslpredef.o\
89 $(OBJDIR
)/aslprepkg.o\
90 $(OBJDIR
)/aslprintf.o\
92 $(OBJDIR
)/aslresource.o\
93 $(OBJDIR
)/aslrestype1.o\
94 $(OBJDIR
)/aslrestype1i.o\
95 $(OBJDIR
)/aslrestype2.o\
96 $(OBJDIR
)/aslrestype2d.o\
97 $(OBJDIR
)/aslrestype2e.o\
98 $(OBJDIR
)/aslrestype2q.o\
99 $(OBJDIR
)/aslrestype2s.o\
100 $(OBJDIR
)/aslrestype2w.o\
101 $(OBJDIR
)/aslstartup.o\
102 $(OBJDIR
)/aslstubs.o\
104 $(OBJDIR
)/asltransform.o\
106 $(OBJDIR
)/aslutils.o\
108 $(OBJDIR
)/aslwalks.o\
110 $(OBJDIR
)/aslxrefout.o\
111 $(OBJDIR
)/cvcompiler.o\
112 $(OBJDIR
)/cvdisasm.o\
113 $(OBJDIR
)/cvparser.o\
115 $(OBJDIR
)/dbfileio.o\
116 $(OBJDIR
)/dmbuffer.o\
117 $(OBJDIR
)/dmcstyle.o\
118 $(OBJDIR
)/dmdeferred.o\
119 $(OBJDIR
)/dmextern.o\
121 $(OBJDIR
)/dmopcode.o\
123 $(OBJDIR
)/dmresrcl.o\
124 $(OBJDIR
)/dmresrcl2.o\
125 $(OBJDIR
)/dmresrcs.o\
126 $(OBJDIR
)/dmrestag.o\
127 $(OBJDIR
)/dmswitch.o\
129 $(OBJDIR
)/dmtables.o\
130 $(OBJDIR
)/dmtbdump.o\
131 $(OBJDIR
)/dmtbdump1.o\
132 $(OBJDIR
)/dmtbdump2.o\
133 $(OBJDIR
)/dmtbdump3.o\
134 $(OBJDIR
)/dmtbinfo.o\
135 $(OBJDIR
)/dmtbinfo1.o\
136 $(OBJDIR
)/dmtbinfo2.o\
137 $(OBJDIR
)/dmtbinfo3.o\
141 $(OBJDIR
)/dscontrol.o\
143 $(OBJDIR
)/dsobject.o\
144 $(OBJDIR
)/dsopcode.o\
145 $(OBJDIR
)/dspkginit.o\
149 $(OBJDIR
)/dswload2.o\
150 $(OBJDIR
)/dswscope.o\
151 $(OBJDIR
)/dswstate.o\
152 $(OBJDIR
)/dtcompile.o\
153 $(OBJDIR
)/dtexpress.o\
156 $(OBJDIR
)/dtsubtable.o\
158 $(OBJDIR
)/dttable1.o\
159 $(OBJDIR
)/dttable2.o\
160 $(OBJDIR
)/dttemplate.o\
162 $(OBJDIR
)/exconcat.o\
163 $(OBJDIR
)/exconvrt.o\
164 $(OBJDIR
)/excreate.o\
169 $(OBJDIR
)/exoparg1.o\
170 $(OBJDIR
)/exoparg2.o\
171 $(OBJDIR
)/exoparg3.o\
172 $(OBJDIR
)/exoparg6.o\
174 $(OBJDIR
)/exregion.o\
175 $(OBJDIR
)/exresnte.o\
176 $(OBJDIR
)/exresolv.o\
179 $(OBJDIR
)/exstoren.o\
180 $(OBJDIR
)/exstorob.o\
181 $(OBJDIR
)/exsystem.o\
184 $(OBJDIR
)/nsaccess.o\
188 $(OBJDIR
)/nsobject.o\
190 $(OBJDIR
)/nssearch.o\
194 $(OBJDIR
)/osunixxf.o\
195 $(OBJDIR
)/prexpress.o\
196 $(OBJDIR
)/prmacros.o\
201 $(OBJDIR
)/psobject.o\
202 $(OBJDIR
)/psopcode.o\
203 $(OBJDIR
)/psopinfo.o\
211 $(OBJDIR
)/tbinstal.o\
215 $(OBJDIR
)/tbxfload.o\
216 $(OBJDIR
)/utaddress.o\
219 $(OBJDIR
)/utbuffer.o\
223 $(OBJDIR
)/utdecode.o\
224 $(OBJDIR
)/utdelete.o\
227 $(OBJDIR
)/utglobal.o\
234 $(OBJDIR
)/utnonansi.o\
235 $(OBJDIR
)/utobject.o\
236 $(OBJDIR
)/utownerid.o\
237 $(OBJDIR
)/utpredef.o\
238 $(OBJDIR
)/utresdecode.o\
241 $(OBJDIR
)/utstrtoul64.o\
242 $(OBJDIR
)/utstrsuppt.o\
243 $(OBJDIR
)/utstring.o\
246 $(OBJDIR
)/utxferror.o
249 $(OBJDIR
)/aslcompiler.y\
250 $(OBJDIR
)/aslcompilerlex.c\
251 $(OBJDIR
)/aslcompilerparse.c\
252 $(OBJDIR
)/dtparserlex.c\
253 $(OBJDIR
)/dtparserparse.c\
254 $(OBJDIR
)/prparserlex.c\
255 $(OBJDIR
)/prparserparse.c
258 $(OBJDIR
)/aslcompiler.y.h\
259 $(OBJDIR
)/dtparser.y.h\
260 $(OBJDIR
)/prparser.y.h
263 $(ASL_COMPILER
)/aslcstyle.y\
264 $(ASL_COMPILER
)/aslhelpers.y\
265 $(ASL_COMPILER
)/aslparser.y\
266 $(ASL_COMPILER
)/aslprimaries.y\
267 $(ASL_COMPILER
)/aslresources.y\
268 $(ASL_COMPILER
)/aslrules.y\
269 $(ASL_COMPILER
)/aslsupport.y\
270 $(ASL_COMPILER
)/asltokens.y\
271 $(ASL_COMPILER
)/asltypes.y
274 $(ASL_COMPILER
)/aslcompiler.l\
275 $(ASL_COMPILER
)/aslsupport.l\
276 $(OBJDIR
)/aslcompiler.y.h
280 # Flags specific to iASL compiler
290 include ..
/Makefile.rules
293 # Function to safely execute yacc:
294 # Generate the output files to a temporary directory,
295 # move the file to $(OBJDIR), and discard the directory.
298 _d
=`mktemp -d $(OBJDIR)/$(1).XXXXXX` &&\
300 $(YACC
) $(YFLAGS
) -v
-d
-p
$(1) $(abspath
$(2)) &&\
302 mv
$$_d/y.tab
$(suffix $(3)) $(3);\
308 # Macro processing for iASL .y files
310 $(OBJDIR
)/aslcompiler.y
: $(ASL_PARSER
)
311 @echo
"- " $(MACROPROC
) " Preprocess main iASL parser"
312 @
$(MACROPROC
) $(MFLAGS
) $(ASL_COMPILER
)/aslparser.y
> $@
315 # Parser and Lexer - intermediate C files
317 $(OBJDIR
)/aslcompilerlex.c
: $(ASL_LEXER
)
318 @echo
"- " $(LEX
) " "$<
319 @
$(LEX
) $(LFLAGS
) -PAslCompiler
-o
$@
$(ASL_COMPILER
)/aslcompiler.l
321 $(OBJDIR
)/aslcompilerparse.c
$(OBJDIR
)/aslcompiler.y.h
: $(OBJDIR
)/aslcompiler.y
322 @echo
"- " $(YACC
) " "$<
323 @
$(call safe_yacc
,AslCompiler
,$<,$@
)
325 $(OBJDIR
)/dtparserlex.c
: $(ASL_COMPILER
)/dtparser.l
$(OBJDIR
)/dtparser.y.h
326 @echo
"- " $(LEX
) " "$<
327 @
$(LEX
) $(LFLAGS
) -PDtParser
-o
$@
$<
329 $(OBJDIR
)/dtparserparse.c
$(OBJDIR
)/dtparser.y.h
: $(ASL_COMPILER
)/dtparser.y
330 @echo
"- " $(YACC
) " "$<
331 @
$(call safe_yacc
,DtParser
,$<,$@
)
333 $(OBJDIR
)/prparserlex.c
: $(ASL_COMPILER
)/prparser.l
$(OBJDIR
)/prparser.y.h
334 @echo
"- " $(LEX
) " "$<
335 @
$(LEX
) $(LFLAGS
) -PPrParser
-o
$@
$<
337 $(OBJDIR
)/prparserparse.c
$(OBJDIR
)/prparser.y.h
: $(ASL_COMPILER
)/prparser.y
338 @echo
"- " $(YACC
) " "$<
339 @
$(call safe_yacc
,PrParser
,$<,$@
)
342 # Parsers and Lexers - final object files
344 # Cannot use the common compile warning flags since the C files are created
345 # by the utilities above and they are not necessarily ANSI C, etc.
347 $(OBJDIR
)/aslcompilerlex.o
: $(OBJDIR
)/aslcompilerlex.c
348 @echo
"- " "Intermediate" $<
349 @
$(CC
) -c
$(CFLAGS
) -Wall
-Werror
-o
$@
$<
351 $(OBJDIR
)/aslcompilerparse.o
: $(OBJDIR
)/aslcompilerparse.c
352 @echo
"- " "Intermediate" $<
353 @
$(CC
) -c
$(CFLAGS
) -Wall
-Werror
-o
$@
$<
355 $(OBJDIR
)/dtparserlex.o
: $(OBJDIR
)/dtparserlex.c
356 @echo
"- " "Intermediate" $<
357 @
$(CC
) -c
$(CFLAGS
) -Wall
-Werror
-o
$@
$<
359 $(OBJDIR
)/dtparserparse.o
: $(OBJDIR
)/dtparserparse.c
360 @echo
"- " "Intermediate" $<
361 @
$(CC
) -c
$(CFLAGS
) -Wall
-Werror
-o
$@
$<
363 $(OBJDIR
)/prparserlex.o
: $(OBJDIR
)/prparserlex.c
364 @echo
"- " "Intermediate" $<
365 @
$(CC
) -c
$(CFLAGS
) -Wall
-Werror
-o
$@
$<
367 $(OBJDIR
)/prparserparse.o
: $(OBJDIR
)/prparserparse.c
368 @echo
"- " "Intermediate" $<
369 @
$(CC
) -c
$(CFLAGS
) -Wall
-Werror
-o
$@
$<