10d02842fSSascha Wildner#
20d02842fSSascha Wildner# iASL compiler/disassembler
30d02842fSSascha Wildner#
40d02842fSSascha Wildner
50d02842fSSascha Wildner#
60d02842fSSascha Wildner# Note: This makefile is intended to be used from within the native
70d02842fSSascha Wildner# ACPICA directory structure, from under generate/unix. It specifically
80d02842fSSascha Wildner# places all object files in a generate/unix subdirectory, not within
90d02842fSSascha Wildner# the various ACPICA source directories. This prevents collisions
100d02842fSSascha Wildner# between different compilations of the same source file with different
110d02842fSSascha Wildner# compile options, and prevents pollution of the source code.
120d02842fSSascha Wildner#
130d02842fSSascha Wildnerinclude ../Makefile.config
140d02842fSSascha WildnerFINAL_PROG = ../$(BINDIR)/iasl
150d02842fSSascha WildnerPROG = $(OBJDIR)/iasl
160d02842fSSascha Wildner
170d02842fSSascha Wildner#
180d02842fSSascha Wildner# Search paths for source files
190d02842fSSascha Wildner#
200d02842fSSascha Wildnervpath %.c \
210d02842fSSascha Wildner    $(ASL_COMPILER)\
220d02842fSSascha Wildner    $(ACPICA_DEBUGGER)\
230d02842fSSascha Wildner    $(ACPICA_DISASSEMBLER)\
240d02842fSSascha Wildner    $(ACPICA_DISPATCHER)\
250d02842fSSascha Wildner    $(ACPICA_EXECUTER)\
260d02842fSSascha Wildner    $(ACPICA_NAMESPACE)\
270d02842fSSascha Wildner    $(ACPICA_PARSER)\
280d02842fSSascha Wildner    $(ACPICA_TABLES)\
290d02842fSSascha Wildner    $(ACPICA_UTILITIES)\
300d02842fSSascha Wildner    $(ACPICA_COMMON)\
310d02842fSSascha Wildner    $(ACPICA_OSL)
320d02842fSSascha Wildner
330d02842fSSascha WildnerHEADERS = \
340d02842fSSascha Wildner    $(wildcard $(ASL_COMPILER)/*.h)\
350d02842fSSascha Wildner    $(OBJDIR)/aslcompiler.y.h\
360d02842fSSascha Wildner    $(OBJDIR)/dtparser.y.h\
370d02842fSSascha Wildner    $(OBJDIR)/prparser.y.h
380d02842fSSascha Wildner
390d02842fSSascha WildnerOBJECTS = \
400d02842fSSascha Wildner	$(OBJDIR)/aslcompilerlex.o\
410d02842fSSascha Wildner	$(OBJDIR)/aslcompilerparse.o\
420d02842fSSascha Wildner	$(OBJDIR)/dtparserlex.o\
430d02842fSSascha Wildner	$(OBJDIR)/dtparserparse.o\
440d02842fSSascha Wildner	$(OBJDIR)/prparserlex.o\
450d02842fSSascha Wildner	$(OBJDIR)/prparserparse.o\
460d02842fSSascha Wildner	$(OBJDIR)/adfile.o\
470d02842fSSascha Wildner	$(OBJDIR)/adisasm.o\
480d02842fSSascha Wildner	$(OBJDIR)/adwalk.o\
49d4972a9cSSascha Wildner	$(OBJDIR)/ahids.o\
500d02842fSSascha Wildner	$(OBJDIR)/ahpredef.o\
510d02842fSSascha Wildner	$(OBJDIR)/aslanalyze.o\
520d02842fSSascha Wildner	$(OBJDIR)/aslbtypes.o\
530d02842fSSascha Wildner	$(OBJDIR)/aslcodegen.o\
540d02842fSSascha Wildner	$(OBJDIR)/aslcompile.o\
550d02842fSSascha Wildner	$(OBJDIR)/aslerror.o\
560d02842fSSascha Wildner	$(OBJDIR)/aslfiles.o\
570d02842fSSascha Wildner	$(OBJDIR)/aslfileio.o\
580d02842fSSascha Wildner	$(OBJDIR)/aslfold.o\
590d02842fSSascha Wildner	$(OBJDIR)/aslhex.o\
600d02842fSSascha Wildner	$(OBJDIR)/asllength.o\
610d02842fSSascha Wildner	$(OBJDIR)/asllisting.o\
620d02842fSSascha Wildner	$(OBJDIR)/asllistsup.o\
630d02842fSSascha Wildner	$(OBJDIR)/aslload.o\
640d02842fSSascha Wildner	$(OBJDIR)/asllookup.o\
650d02842fSSascha Wildner	$(OBJDIR)/aslmain.o\
660d02842fSSascha Wildner	$(OBJDIR)/aslmap.o\
67*9e1c0880SSascha Wildner	$(OBJDIR)/aslmessages.o\
680d02842fSSascha Wildner	$(OBJDIR)/aslmethod.o\
690d02842fSSascha Wildner	$(OBJDIR)/aslnamesp.o\
700d02842fSSascha Wildner	$(OBJDIR)/asloffset.o\
710d02842fSSascha Wildner	$(OBJDIR)/aslopcodes.o\
720d02842fSSascha Wildner	$(OBJDIR)/asloperands.o\
730d02842fSSascha Wildner	$(OBJDIR)/aslopt.o\
740d02842fSSascha Wildner	$(OBJDIR)/asloptions.o\
750d02842fSSascha Wildner	$(OBJDIR)/aslpredef.o\
760d02842fSSascha Wildner	$(OBJDIR)/aslprepkg.o\
770d02842fSSascha Wildner	$(OBJDIR)/aslresource.o\
780d02842fSSascha Wildner	$(OBJDIR)/aslrestype1.o\
790d02842fSSascha Wildner	$(OBJDIR)/aslrestype1i.o\
800d02842fSSascha Wildner	$(OBJDIR)/aslrestype2.o\
810d02842fSSascha Wildner	$(OBJDIR)/aslrestype2d.o\
820d02842fSSascha Wildner	$(OBJDIR)/aslrestype2e.o\
830d02842fSSascha Wildner	$(OBJDIR)/aslrestype2q.o\
840d02842fSSascha Wildner	$(OBJDIR)/aslrestype2s.o\
850d02842fSSascha Wildner	$(OBJDIR)/aslrestype2w.o\
860d02842fSSascha Wildner	$(OBJDIR)/aslstartup.o\
870d02842fSSascha Wildner	$(OBJDIR)/aslstubs.o\
880d02842fSSascha Wildner	$(OBJDIR)/asltransform.o\
890d02842fSSascha Wildner	$(OBJDIR)/asltree.o\
900d02842fSSascha Wildner	$(OBJDIR)/aslutils.o\
910d02842fSSascha Wildner	$(OBJDIR)/asluuid.o\
920d02842fSSascha Wildner	$(OBJDIR)/aslwalks.o\
930d02842fSSascha Wildner	$(OBJDIR)/aslxref.o\
94d4972a9cSSascha Wildner	$(OBJDIR)/cmfsize.o\
950d02842fSSascha Wildner	$(OBJDIR)/dtcompile.o\
960d02842fSSascha Wildner	$(OBJDIR)/dtexpress.o\
970d02842fSSascha Wildner	$(OBJDIR)/dtfield.o\
980d02842fSSascha Wildner	$(OBJDIR)/dtio.o\
990d02842fSSascha Wildner	$(OBJDIR)/dtsubtable.o\
1000d02842fSSascha Wildner	$(OBJDIR)/dttable.o\
1010d02842fSSascha Wildner	$(OBJDIR)/dttemplate.o\
1020d02842fSSascha Wildner	$(OBJDIR)/dtutils.o\
1030d02842fSSascha Wildner	$(OBJDIR)/dbfileio.o\
1040d02842fSSascha Wildner	$(OBJDIR)/dmbuffer.o\
1050d02842fSSascha Wildner	$(OBJDIR)/dmdeferred.o\
1060d02842fSSascha Wildner	$(OBJDIR)/dmextern.o\
1070d02842fSSascha Wildner	$(OBJDIR)/dmnames.o\
1080d02842fSSascha Wildner	$(OBJDIR)/dmobject.o\
1090d02842fSSascha Wildner	$(OBJDIR)/dmopcode.o\
1100d02842fSSascha Wildner	$(OBJDIR)/dmresrc.o\
1110d02842fSSascha Wildner	$(OBJDIR)/dmresrcl.o\
1120d02842fSSascha Wildner	$(OBJDIR)/dmresrcl2.o\
1130d02842fSSascha Wildner	$(OBJDIR)/dmresrcs.o\
1140d02842fSSascha Wildner	$(OBJDIR)/dmrestag.o\
1150d02842fSSascha Wildner	$(OBJDIR)/dmtable.o\
1160d02842fSSascha Wildner	$(OBJDIR)/dmtbdump.o\
1170d02842fSSascha Wildner	$(OBJDIR)/dmtbinfo.o\
1180d02842fSSascha Wildner	$(OBJDIR)/dmutils.o\
1190d02842fSSascha Wildner	$(OBJDIR)/dmwalk.o\
1200d02842fSSascha Wildner	$(OBJDIR)/dsargs.o\
1210d02842fSSascha Wildner	$(OBJDIR)/dscontrol.o\
1220d02842fSSascha Wildner	$(OBJDIR)/dsfield.o\
1230d02842fSSascha Wildner	$(OBJDIR)/dsobject.o\
1240d02842fSSascha Wildner	$(OBJDIR)/dsopcode.o\
1250d02842fSSascha Wildner	$(OBJDIR)/dsutils.o\
1260d02842fSSascha Wildner	$(OBJDIR)/dswexec.o\
1270d02842fSSascha Wildner	$(OBJDIR)/dswload.o\
1280d02842fSSascha Wildner	$(OBJDIR)/dswload2.o\
1290d02842fSSascha Wildner	$(OBJDIR)/dswscope.o\
1300d02842fSSascha Wildner	$(OBJDIR)/dswstate.o\
1310d02842fSSascha Wildner	$(OBJDIR)/exconvrt.o\
1320d02842fSSascha Wildner	$(OBJDIR)/excreate.o\
1330d02842fSSascha Wildner	$(OBJDIR)/exdump.o\
1340d02842fSSascha Wildner	$(OBJDIR)/exmisc.o\
1350d02842fSSascha Wildner	$(OBJDIR)/exmutex.o\
1360d02842fSSascha Wildner	$(OBJDIR)/exnames.o\
1370d02842fSSascha Wildner	$(OBJDIR)/exoparg1.o\
1380d02842fSSascha Wildner	$(OBJDIR)/exoparg2.o\
1390d02842fSSascha Wildner	$(OBJDIR)/exoparg3.o\
1400d02842fSSascha Wildner	$(OBJDIR)/exoparg6.o\
1410d02842fSSascha Wildner	$(OBJDIR)/exprep.o\
1420d02842fSSascha Wildner	$(OBJDIR)/exregion.o\
1430d02842fSSascha Wildner	$(OBJDIR)/exresnte.o\
1440d02842fSSascha Wildner	$(OBJDIR)/exresolv.o\
1450d02842fSSascha Wildner	$(OBJDIR)/exresop.o\
1460d02842fSSascha Wildner	$(OBJDIR)/exstore.o\
1470d02842fSSascha Wildner	$(OBJDIR)/exstoren.o\
1480d02842fSSascha Wildner	$(OBJDIR)/exstorob.o\
1490d02842fSSascha Wildner	$(OBJDIR)/exsystem.o\
1500d02842fSSascha Wildner	$(OBJDIR)/exutils.o\
1510d02842fSSascha Wildner	$(OBJDIR)/getopt.o\
1520d02842fSSascha Wildner	$(OBJDIR)/nsaccess.o\
1530d02842fSSascha Wildner	$(OBJDIR)/nsalloc.o\
1540d02842fSSascha Wildner	$(OBJDIR)/nsdump.o\
1550d02842fSSascha Wildner	$(OBJDIR)/nsnames.o\
1560d02842fSSascha Wildner	$(OBJDIR)/nsobject.o\
1570d02842fSSascha Wildner	$(OBJDIR)/nsparse.o\
1580d02842fSSascha Wildner	$(OBJDIR)/nssearch.o\
1590d02842fSSascha Wildner	$(OBJDIR)/nsutils.o\
1600d02842fSSascha Wildner	$(OBJDIR)/nswalk.o\
1610d02842fSSascha Wildner	$(OBJDIR)/nsxfobj.o\
1620d02842fSSascha Wildner	$(OBJDIR)/osunixxf.o\
1630d02842fSSascha Wildner	$(OBJDIR)/prexpress.o\
1640d02842fSSascha Wildner	$(OBJDIR)/prmacros.o\
1650d02842fSSascha Wildner	$(OBJDIR)/prscan.o\
1660d02842fSSascha Wildner	$(OBJDIR)/prutils.o\
1670d02842fSSascha Wildner	$(OBJDIR)/psargs.o\
1680d02842fSSascha Wildner	$(OBJDIR)/psloop.o\
1690d02842fSSascha Wildner	$(OBJDIR)/psobject.o\
1700d02842fSSascha Wildner	$(OBJDIR)/psopcode.o\
1710d02842fSSascha Wildner	$(OBJDIR)/psopinfo.o\
1720d02842fSSascha Wildner	$(OBJDIR)/psparse.o\
1730d02842fSSascha Wildner	$(OBJDIR)/psscope.o\
1740d02842fSSascha Wildner	$(OBJDIR)/pstree.o\
1750d02842fSSascha Wildner	$(OBJDIR)/psutils.o\
1760d02842fSSascha Wildner	$(OBJDIR)/pswalk.o\
177d4972a9cSSascha Wildner	$(OBJDIR)/tbdata.o\
1780d02842fSSascha Wildner	$(OBJDIR)/tbfadt.o\
1790d02842fSSascha Wildner	$(OBJDIR)/tbinstal.o\
1800d02842fSSascha Wildner	$(OBJDIR)/tbprint.o\
1810d02842fSSascha Wildner	$(OBJDIR)/tbutils.o\
1820d02842fSSascha Wildner	$(OBJDIR)/tbxface.o\
1830d02842fSSascha Wildner	$(OBJDIR)/utaddress.o\
1840d02842fSSascha Wildner	$(OBJDIR)/utalloc.o\
1850d02842fSSascha Wildner	$(OBJDIR)/utbuffer.o\
1860d02842fSSascha Wildner	$(OBJDIR)/utcache.o\
1870d02842fSSascha Wildner	$(OBJDIR)/utcopy.o\
1880d02842fSSascha Wildner	$(OBJDIR)/utdebug.o\
1890d02842fSSascha Wildner	$(OBJDIR)/utdecode.o\
1900d02842fSSascha Wildner	$(OBJDIR)/utdelete.o\
1910d02842fSSascha Wildner	$(OBJDIR)/uterror.o\
1920d02842fSSascha Wildner	$(OBJDIR)/utexcep.o\
1930d02842fSSascha Wildner	$(OBJDIR)/utglobal.o\
1940d02842fSSascha Wildner	$(OBJDIR)/utinit.o\
1950d02842fSSascha Wildner	$(OBJDIR)/utlock.o\
1960d02842fSSascha Wildner	$(OBJDIR)/utmath.o\
1970d02842fSSascha Wildner	$(OBJDIR)/utmisc.o\
1980d02842fSSascha Wildner	$(OBJDIR)/utmutex.o\
1990d02842fSSascha Wildner	$(OBJDIR)/utobject.o\
2000d02842fSSascha Wildner	$(OBJDIR)/utownerid.o\
2010d02842fSSascha Wildner	$(OBJDIR)/utpredef.o\
2020d02842fSSascha Wildner	$(OBJDIR)/utresrc.o\
2030d02842fSSascha Wildner	$(OBJDIR)/utstate.o\
2040d02842fSSascha Wildner	$(OBJDIR)/utstring.o\
2050d02842fSSascha Wildner	$(OBJDIR)/utxface.o\
2060d02842fSSascha Wildner	$(OBJDIR)/utxferror.o
2070d02842fSSascha Wildner
2080d02842fSSascha WildnerINTERMEDIATES = \
2090d02842fSSascha Wildner	$(OBJDIR)/aslcompilerlex.c\
2100d02842fSSascha Wildner	$(OBJDIR)/aslcompilerparse.c\
2110d02842fSSascha Wildner	$(OBJDIR)/dtparserlex.c\
2120d02842fSSascha Wildner	$(OBJDIR)/dtparserparse.c\
2130d02842fSSascha Wildner	$(OBJDIR)/prparserlex.c\
2140d02842fSSascha Wildner	$(OBJDIR)/prparserparse.c
2150d02842fSSascha Wildner
2160d02842fSSascha WildnerMISC = \
2170d02842fSSascha Wildner	$(OBJDIR)/aslcompiler.y.h\
2180d02842fSSascha Wildner	$(OBJDIR)/dtparser.y.h\
2190d02842fSSascha Wildner	$(OBJDIR)/prparser.y.h
2200d02842fSSascha Wildner
2210d02842fSSascha Wildner#
2220d02842fSSascha Wildner# Flags specific to iASL compiler
2230d02842fSSascha Wildner#
2240d02842fSSascha WildnerCFLAGS += \
2250d02842fSSascha Wildner    -DACPI_ASL_COMPILER\
2260d02842fSSascha Wildner    -I$(ASL_COMPILER)\
2270d02842fSSascha Wildner    -I$(OBJDIR)
2280d02842fSSascha Wildner
2290d02842fSSascha Wildner#
2300d02842fSSascha Wildner# Common Rules
2310d02842fSSascha Wildner#
2320d02842fSSascha Wildnerinclude ../Makefile.rules
2330d02842fSSascha Wildner
2340d02842fSSascha Wildner
2350d02842fSSascha Wildner#
2360d02842fSSascha Wildner# Parser and Lexer - intermediate C files
2370d02842fSSascha Wildner#
2380d02842fSSascha Wildner$(OBJDIR)/aslcompilerlex.c :   $(ASL_COMPILER)/aslcompiler.l $(ASL_COMPILER)/aslsupport.l $(OBJDIR)/aslcompiler.y.h
2390d02842fSSascha Wildner	$(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
2400d02842fSSascha Wildner
2410d02842fSSascha Wildner$(OBJDIR)/aslcompiler.y.h :    $(ASL_COMPILER)/aslcompiler.y
2420d02842fSSascha Wildner	$(YACC) $(YFLAGS) -pAslCompiler -o/dev/null --defines=$@ $<
2430d02842fSSascha Wildner
2440d02842fSSascha Wildner$(OBJDIR)/aslcompilerparse.c : $(ASL_COMPILER)/aslcompiler.y
2450d02842fSSascha Wildner	$(YACC) $(YFLAGS) -pAslCompiler -o$@ --defines=/dev/null $<
2460d02842fSSascha Wildner
2470d02842fSSascha Wildner$(OBJDIR)/dtparserlex.c :      $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h
2480d02842fSSascha Wildner	$(LEX) $(LFLAGS) -PDtParser -o$@ $<
2490d02842fSSascha Wildner
2500d02842fSSascha Wildner$(OBJDIR)/dtparser.y.h :       $(ASL_COMPILER)/dtparser.y
2510d02842fSSascha Wildner	$(YACC) $(YFLAGS) -pDtParser -o/dev/null --defines=$@ $<
2520d02842fSSascha Wildner
2530d02842fSSascha Wildner$(OBJDIR)/dtparserparse.c :    $(ASL_COMPILER)/dtparser.y
2540d02842fSSascha Wildner	$(YACC) $(YFLAGS) -pDtParser -o$@ --defines=/dev/null $<
2550d02842fSSascha Wildner
2560d02842fSSascha Wildner$(OBJDIR)/prparserlex.c :      $(ASL_COMPILER)/prparser.l $(OBJDIR)/prparser.y.h
2570d02842fSSascha Wildner	$(LEX) $(LFLAGS) -PPrParser -o$@ $<
2580d02842fSSascha Wildner
2590d02842fSSascha Wildner$(OBJDIR)/prparser.y.h :       $(ASL_COMPILER)/prparser.y
2600d02842fSSascha Wildner	$(YACC) $(YFLAGS) -pPrParser -o/dev/null --defines=$@ $<
2610d02842fSSascha Wildner
2620d02842fSSascha Wildner$(OBJDIR)/prparserparse.c :    $(ASL_COMPILER)/prparser.y
2630d02842fSSascha Wildner	$(YACC) $(YFLAGS) -pPrParser -o$@ --defines=/dev/null $<
2640d02842fSSascha Wildner
2650d02842fSSascha Wildner
2660d02842fSSascha Wildner#
2670d02842fSSascha Wildner# Parsers and Lexers - final object files
2680d02842fSSascha Wildner#
2690d02842fSSascha Wildner# Cannot use the common compile warning flags since the C files are created
2700d02842fSSascha Wildner# by the utilities above and they are not necessarily ANSI C, etc.
2710d02842fSSascha Wildner#
2720d02842fSSascha Wildner$(OBJDIR)/aslcompilerlex.o :   $(OBJDIR)/aslcompilerlex.c
2730d02842fSSascha Wildner	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
2740d02842fSSascha Wildner
2750d02842fSSascha Wildner$(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
2760d02842fSSascha Wildner	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
2770d02842fSSascha Wildner
2780d02842fSSascha Wildner$(OBJDIR)/dtparserlex.o :      $(OBJDIR)/dtparserlex.c
2790d02842fSSascha Wildner	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
2800d02842fSSascha Wildner
2810d02842fSSascha Wildner$(OBJDIR)/dtparserparse.o :    $(OBJDIR)/dtparserparse.c
2820d02842fSSascha Wildner	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
2830d02842fSSascha Wildner
2840d02842fSSascha Wildner$(OBJDIR)/prparserlex.o :      $(OBJDIR)/prparserlex.c
2850d02842fSSascha Wildner	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
2860d02842fSSascha Wildner
2870d02842fSSascha Wildner$(OBJDIR)/prparserparse.o :    $(OBJDIR)/prparserparse.c
2880d02842fSSascha Wildner	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
289