Sync ACPICA with Intel's version 20180508 (from previously 20170831).
[dragonfly.git] / sys / contrib / dev / acpica / generate / unix / iasl / Makefile
blob98dac7131dfa88d5786de91da7886e00ea64a265
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
15 PROG = $(OBJDIR)/iasl
18 # Search paths for source files
20 vpath %.c \
21 $(ASL_COMPILER)\
22 $(ACPICA_DEBUGGER)\
23 $(ACPICA_DISASSEMBLER)\
24 $(ACPICA_DISPATCHER)\
25 $(ACPICA_EXECUTER)\
26 $(ACPICA_NAMESPACE)\
27 $(ACPICA_PARSER)\
28 $(ACPICA_TABLES)\
29 $(ACPICA_UTILITIES)\
30 $(ACPICA_COMMON)\
31 $(ACPICA_OSL)
33 HEADERS = \
34 $(wildcard $(ASL_COMPILER)/*.h)\
35 $(OBJDIR)/aslcompiler.y.h\
36 $(OBJDIR)/dtparser.y.h\
37 $(OBJDIR)/prparser.y.h
39 OBJECTS = \
40 $(OBJDIR)/aslcompilerlex.o\
41 $(OBJDIR)/aslcompilerparse.o\
42 $(OBJDIR)/dtparserlex.o\
43 $(OBJDIR)/dtparserparse.o\
44 $(OBJDIR)/prparserlex.o\
45 $(OBJDIR)/prparserparse.o\
46 $(OBJDIR)/acfileio.o\
47 $(OBJDIR)/adfile.o\
48 $(OBJDIR)/adisasm.o\
49 $(OBJDIR)/adwalk.o\
50 $(OBJDIR)/ahids.o\
51 $(OBJDIR)/ahpredef.o\
52 $(OBJDIR)/ahtable.o\
53 $(OBJDIR)/ahuuids.o\
54 $(OBJDIR)/aslallocate.o\
55 $(OBJDIR)/aslanalyze.o\
56 $(OBJDIR)/aslascii.o\
57 $(OBJDIR)/aslbtypes.o\
58 $(OBJDIR)/aslcache.o\
59 $(OBJDIR)/aslcodegen.o\
60 $(OBJDIR)/aslcompile.o\
61 $(OBJDIR)/asldebug.o\
62 $(OBJDIR)/aslerror.o\
63 $(OBJDIR)/aslexternal.o\
64 $(OBJDIR)/aslfiles.o\
65 $(OBJDIR)/aslfileio.o\
66 $(OBJDIR)/aslfold.o\
67 $(OBJDIR)/aslhelp.o\
68 $(OBJDIR)/aslhex.o\
69 $(OBJDIR)/asllength.o\
70 $(OBJDIR)/asllisting.o\
71 $(OBJDIR)/asllistsup.o\
72 $(OBJDIR)/aslload.o\
73 $(OBJDIR)/asllookup.o\
74 $(OBJDIR)/aslmain.o\
75 $(OBJDIR)/aslmap.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\
85 $(OBJDIR)/aslopt.o\
86 $(OBJDIR)/asloptions.o\
87 $(OBJDIR)/aslparseop.o\
88 $(OBJDIR)/aslpredef.o\
89 $(OBJDIR)/aslprepkg.o\
90 $(OBJDIR)/aslprintf.o\
91 $(OBJDIR)/aslprune.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\
103 $(OBJDIR)/aslpld.o\
104 $(OBJDIR)/asltransform.o\
105 $(OBJDIR)/asltree.o\
106 $(OBJDIR)/aslutils.o\
107 $(OBJDIR)/asluuid.o\
108 $(OBJDIR)/aslwalks.o\
109 $(OBJDIR)/aslxref.o\
110 $(OBJDIR)/aslxrefout.o\
111 $(OBJDIR)/cvcompiler.o\
112 $(OBJDIR)/cvdisasm.o\
113 $(OBJDIR)/cvparser.o\
114 $(OBJDIR)/cmfsize.o\
115 $(OBJDIR)/dbfileio.o\
116 $(OBJDIR)/dmbuffer.o\
117 $(OBJDIR)/dmcstyle.o\
118 $(OBJDIR)/dmdeferred.o\
119 $(OBJDIR)/dmextern.o\
120 $(OBJDIR)/dmnames.o\
121 $(OBJDIR)/dmopcode.o\
122 $(OBJDIR)/dmresrc.o\
123 $(OBJDIR)/dmresrcl.o\
124 $(OBJDIR)/dmresrcl2.o\
125 $(OBJDIR)/dmresrcs.o\
126 $(OBJDIR)/dmrestag.o\
127 $(OBJDIR)/dmswitch.o\
128 $(OBJDIR)/dmtable.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\
138 $(OBJDIR)/dmutils.o\
139 $(OBJDIR)/dmwalk.o\
140 $(OBJDIR)/dsargs.o\
141 $(OBJDIR)/dscontrol.o\
142 $(OBJDIR)/dsfield.o\
143 $(OBJDIR)/dsobject.o\
144 $(OBJDIR)/dsopcode.o\
145 $(OBJDIR)/dspkginit.o\
146 $(OBJDIR)/dsutils.o\
147 $(OBJDIR)/dswexec.o\
148 $(OBJDIR)/dswload.o\
149 $(OBJDIR)/dswload2.o\
150 $(OBJDIR)/dswscope.o\
151 $(OBJDIR)/dswstate.o\
152 $(OBJDIR)/dtcompile.o\
153 $(OBJDIR)/dtexpress.o\
154 $(OBJDIR)/dtfield.o\
155 $(OBJDIR)/dtio.o\
156 $(OBJDIR)/dtsubtable.o\
157 $(OBJDIR)/dttable.o\
158 $(OBJDIR)/dttable1.o\
159 $(OBJDIR)/dttable2.o\
160 $(OBJDIR)/dttemplate.o\
161 $(OBJDIR)/dtutils.o\
162 $(OBJDIR)/exconcat.o\
163 $(OBJDIR)/exconvrt.o\
164 $(OBJDIR)/excreate.o\
165 $(OBJDIR)/exdump.o\
166 $(OBJDIR)/exmisc.o\
167 $(OBJDIR)/exmutex.o\
168 $(OBJDIR)/exnames.o\
169 $(OBJDIR)/exoparg1.o\
170 $(OBJDIR)/exoparg2.o\
171 $(OBJDIR)/exoparg3.o\
172 $(OBJDIR)/exoparg6.o\
173 $(OBJDIR)/exprep.o\
174 $(OBJDIR)/exregion.o\
175 $(OBJDIR)/exresnte.o\
176 $(OBJDIR)/exresolv.o\
177 $(OBJDIR)/exresop.o\
178 $(OBJDIR)/exstore.o\
179 $(OBJDIR)/exstoren.o\
180 $(OBJDIR)/exstorob.o\
181 $(OBJDIR)/exsystem.o\
182 $(OBJDIR)/exutils.o\
183 $(OBJDIR)/getopt.o\
184 $(OBJDIR)/nsaccess.o\
185 $(OBJDIR)/nsalloc.o\
186 $(OBJDIR)/nsdump.o\
187 $(OBJDIR)/nsnames.o\
188 $(OBJDIR)/nsobject.o\
189 $(OBJDIR)/nsparse.o\
190 $(OBJDIR)/nssearch.o\
191 $(OBJDIR)/nsutils.o\
192 $(OBJDIR)/nswalk.o\
193 $(OBJDIR)/nsxfobj.o\
194 $(OBJDIR)/osunixxf.o\
195 $(OBJDIR)/prexpress.o\
196 $(OBJDIR)/prmacros.o\
197 $(OBJDIR)/prscan.o\
198 $(OBJDIR)/prutils.o\
199 $(OBJDIR)/psargs.o\
200 $(OBJDIR)/psloop.o\
201 $(OBJDIR)/psobject.o\
202 $(OBJDIR)/psopcode.o\
203 $(OBJDIR)/psopinfo.o\
204 $(OBJDIR)/psparse.o\
205 $(OBJDIR)/psscope.o\
206 $(OBJDIR)/pstree.o\
207 $(OBJDIR)/psutils.o\
208 $(OBJDIR)/pswalk.o\
209 $(OBJDIR)/tbdata.o\
210 $(OBJDIR)/tbfadt.o\
211 $(OBJDIR)/tbinstal.o\
212 $(OBJDIR)/tbprint.o\
213 $(OBJDIR)/tbutils.o\
214 $(OBJDIR)/tbxface.o\
215 $(OBJDIR)/tbxfload.o\
216 $(OBJDIR)/utaddress.o\
217 $(OBJDIR)/utalloc.o\
218 $(OBJDIR)/utascii.o\
219 $(OBJDIR)/utbuffer.o\
220 $(OBJDIR)/utcache.o\
221 $(OBJDIR)/utcopy.o\
222 $(OBJDIR)/utdebug.o\
223 $(OBJDIR)/utdecode.o\
224 $(OBJDIR)/utdelete.o\
225 $(OBJDIR)/uterror.o\
226 $(OBJDIR)/utexcep.o\
227 $(OBJDIR)/utglobal.o\
228 $(OBJDIR)/uthex.o\
229 $(OBJDIR)/utinit.o\
230 $(OBJDIR)/utlock.o\
231 $(OBJDIR)/utmath.o\
232 $(OBJDIR)/utmisc.o\
233 $(OBJDIR)/utmutex.o\
234 $(OBJDIR)/utnonansi.o\
235 $(OBJDIR)/utobject.o\
236 $(OBJDIR)/utownerid.o\
237 $(OBJDIR)/utpredef.o\
238 $(OBJDIR)/utresdecode.o\
239 $(OBJDIR)/utresrc.o\
240 $(OBJDIR)/utstate.o\
241 $(OBJDIR)/utstrtoul64.o\
242 $(OBJDIR)/utstrsuppt.o\
243 $(OBJDIR)/utstring.o\
244 $(OBJDIR)/utuuid.o\
245 $(OBJDIR)/utxface.o\
246 $(OBJDIR)/utxferror.o
248 INTERMEDIATES = \
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
257 MISC = \
258 $(OBJDIR)/aslcompiler.y.h\
259 $(OBJDIR)/dtparser.y.h\
260 $(OBJDIR)/prparser.y.h
262 ASL_PARSER = \
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
273 ASL_LEXER = \
274 $(ASL_COMPILER)/aslcompiler.l\
275 $(ASL_COMPILER)/aslsupport.l\
276 $(OBJDIR)/aslcompiler.y.h
280 # Flags specific to iASL compiler
282 CFLAGS += \
283 -DACPI_ASL_COMPILER\
284 -I$(ASL_COMPILER)\
285 -I$(OBJDIR)
288 # Common Rules
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.
297 safe_yacc = \
298 _d=`mktemp -d $(OBJDIR)/$(1).XXXXXX` &&\
299 cd $$_d &&\
300 $(YACC) $(YFLAGS) -v -d -p$(1) $(abspath $(2)) &&\
301 cd - > /dev/null;\
302 mv $$_d/y.tab$(suffix $(3)) $(3);\
303 _r=$$?;\
304 rm -fr $$_d;\
305 exit $$_r
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$@ $<