acpica/generate/unix/iasl/Makefile
Robert Moore d8a0e964dd iASL/Makefile: Add parallel compilation support.
This patch enables parallel compilation for iASL. Fixes issues
caused by the YACC header generation.
Reported by Andrew McDermott, fixed by Lv Zheng.
2013-09-18 13:15:38 -07:00

285 lines
7.0 KiB
Makefile

#
# iASL compiler/disassembler
#
#
# Note: This makefile is intended to be used from within the native
# ACPICA directory structure, from under generate/unix. It specifically
# places all object files in a generate/unix subdirectory, not within
# the various ACPICA source directories. This prevents collisions
# between different compilations of the same source file with different
# compile options, and prevents pollution of the source code.
#
include ../Makefile.config
FINAL_PROG = ../$(BINDIR)/iasl
PROG = $(OBJDIR)/iasl
#
# Search paths for source files
#
vpath %.c \
$(ASL_COMPILER)\
$(ACPICA_DEBUGGER)\
$(ACPICA_DISASSEMBLER)\
$(ACPICA_DISPATCHER)\
$(ACPICA_EXECUTER)\
$(ACPICA_NAMESPACE)\
$(ACPICA_PARSER)\
$(ACPICA_TABLES)\
$(ACPICA_UTILITIES)\
$(ACPICA_COMMON)\
$(ACPICA_OSL)
HEADERS = \
$(wildcard $(ASL_COMPILER)/*.h)\
$(OBJDIR)/aslcompiler.y.h\
$(OBJDIR)/dtparser.y.h\
$(OBJDIR)/prparser.y.h
OBJECTS = \
$(OBJDIR)/aslcompilerlex.o\
$(OBJDIR)/aslcompilerparse.o\
$(OBJDIR)/dtparserlex.o\
$(OBJDIR)/dtparserparse.o\
$(OBJDIR)/prparserlex.o\
$(OBJDIR)/prparserparse.o\
$(OBJDIR)/adfile.o\
$(OBJDIR)/adisasm.o\
$(OBJDIR)/adwalk.o\
$(OBJDIR)/ahpredef.o\
$(OBJDIR)/aslanalyze.o\
$(OBJDIR)/aslbtypes.o\
$(OBJDIR)/aslcodegen.o\
$(OBJDIR)/aslcompile.o\
$(OBJDIR)/aslerror.o\
$(OBJDIR)/aslfiles.o\
$(OBJDIR)/aslfileio.o\
$(OBJDIR)/aslfold.o\
$(OBJDIR)/aslhex.o\
$(OBJDIR)/asllength.o\
$(OBJDIR)/asllisting.o\
$(OBJDIR)/asllistsup.o\
$(OBJDIR)/aslload.o\
$(OBJDIR)/asllookup.o\
$(OBJDIR)/aslmain.o\
$(OBJDIR)/aslmap.o\
$(OBJDIR)/aslmethod.o\
$(OBJDIR)/aslnamesp.o\
$(OBJDIR)/asloffset.o\
$(OBJDIR)/aslopcodes.o\
$(OBJDIR)/asloperands.o\
$(OBJDIR)/aslopt.o\
$(OBJDIR)/asloptions.o\
$(OBJDIR)/aslpredef.o\
$(OBJDIR)/aslprepkg.o\
$(OBJDIR)/aslresource.o\
$(OBJDIR)/aslrestype1.o\
$(OBJDIR)/aslrestype1i.o\
$(OBJDIR)/aslrestype2.o\
$(OBJDIR)/aslrestype2d.o\
$(OBJDIR)/aslrestype2e.o\
$(OBJDIR)/aslrestype2q.o\
$(OBJDIR)/aslrestype2s.o\
$(OBJDIR)/aslrestype2w.o\
$(OBJDIR)/aslstartup.o\
$(OBJDIR)/aslstubs.o\
$(OBJDIR)/asltransform.o\
$(OBJDIR)/asltree.o\
$(OBJDIR)/aslutils.o\
$(OBJDIR)/asluuid.o\
$(OBJDIR)/aslwalks.o\
$(OBJDIR)/aslxref.o\
$(OBJDIR)/dtcompile.o\
$(OBJDIR)/dtexpress.o\
$(OBJDIR)/dtfield.o\
$(OBJDIR)/dtio.o\
$(OBJDIR)/dtsubtable.o\
$(OBJDIR)/dttable.o\
$(OBJDIR)/dttemplate.o\
$(OBJDIR)/dtutils.o\
$(OBJDIR)/dbfileio.o\
$(OBJDIR)/dmbuffer.o\
$(OBJDIR)/dmdeferred.o\
$(OBJDIR)/dmextern.o\
$(OBJDIR)/dmnames.o\
$(OBJDIR)/dmobject.o\
$(OBJDIR)/dmopcode.o\
$(OBJDIR)/dmresrc.o\
$(OBJDIR)/dmresrcl.o\
$(OBJDIR)/dmresrcl2.o\
$(OBJDIR)/dmresrcs.o\
$(OBJDIR)/dmrestag.o\
$(OBJDIR)/dmtable.o\
$(OBJDIR)/dmtbdump.o\
$(OBJDIR)/dmtbinfo.o\
$(OBJDIR)/dmutils.o\
$(OBJDIR)/dmwalk.o\
$(OBJDIR)/dsargs.o\
$(OBJDIR)/dscontrol.o\
$(OBJDIR)/dsfield.o\
$(OBJDIR)/dsobject.o\
$(OBJDIR)/dsopcode.o\
$(OBJDIR)/dsutils.o\
$(OBJDIR)/dswexec.o\
$(OBJDIR)/dswload.o\
$(OBJDIR)/dswload2.o\
$(OBJDIR)/dswscope.o\
$(OBJDIR)/dswstate.o\
$(OBJDIR)/exconvrt.o\
$(OBJDIR)/excreate.o\
$(OBJDIR)/exdump.o\
$(OBJDIR)/exmisc.o\
$(OBJDIR)/exmutex.o\
$(OBJDIR)/exnames.o\
$(OBJDIR)/exoparg1.o\
$(OBJDIR)/exoparg2.o\
$(OBJDIR)/exoparg3.o\
$(OBJDIR)/exoparg6.o\
$(OBJDIR)/exprep.o\
$(OBJDIR)/exregion.o\
$(OBJDIR)/exresnte.o\
$(OBJDIR)/exresolv.o\
$(OBJDIR)/exresop.o\
$(OBJDIR)/exstore.o\
$(OBJDIR)/exstoren.o\
$(OBJDIR)/exstorob.o\
$(OBJDIR)/exsystem.o\
$(OBJDIR)/exutils.o\
$(OBJDIR)/getopt.o\
$(OBJDIR)/nsaccess.o\
$(OBJDIR)/nsalloc.o\
$(OBJDIR)/nsdump.o\
$(OBJDIR)/nsnames.o\
$(OBJDIR)/nsobject.o\
$(OBJDIR)/nsparse.o\
$(OBJDIR)/nssearch.o\
$(OBJDIR)/nsutils.o\
$(OBJDIR)/nswalk.o\
$(OBJDIR)/nsxfobj.o\
$(OBJDIR)/osunixxf.o\
$(OBJDIR)/prexpress.o\
$(OBJDIR)/prmacros.o\
$(OBJDIR)/prscan.o\
$(OBJDIR)/prutils.o\
$(OBJDIR)/psargs.o\
$(OBJDIR)/psloop.o\
$(OBJDIR)/psobject.o\
$(OBJDIR)/psopcode.o\
$(OBJDIR)/psopinfo.o\
$(OBJDIR)/psparse.o\
$(OBJDIR)/psscope.o\
$(OBJDIR)/pstree.o\
$(OBJDIR)/psutils.o\
$(OBJDIR)/pswalk.o\
$(OBJDIR)/tbfadt.o\
$(OBJDIR)/tbinstal.o\
$(OBJDIR)/tbprint.o\
$(OBJDIR)/tbutils.o\
$(OBJDIR)/tbxface.o\
$(OBJDIR)/utaddress.o\
$(OBJDIR)/utalloc.o\
$(OBJDIR)/utbuffer.o\
$(OBJDIR)/utcache.o\
$(OBJDIR)/utcopy.o\
$(OBJDIR)/utdebug.o\
$(OBJDIR)/utdecode.o\
$(OBJDIR)/utdelete.o\
$(OBJDIR)/uterror.o\
$(OBJDIR)/utexcep.o\
$(OBJDIR)/utglobal.o\
$(OBJDIR)/utinit.o\
$(OBJDIR)/utlock.o\
$(OBJDIR)/utmath.o\
$(OBJDIR)/utmisc.o\
$(OBJDIR)/utmutex.o\
$(OBJDIR)/utobject.o\
$(OBJDIR)/utownerid.o\
$(OBJDIR)/utpredef.o\
$(OBJDIR)/utresrc.o\
$(OBJDIR)/utstate.o\
$(OBJDIR)/utstring.o\
$(OBJDIR)/utxface.o\
$(OBJDIR)/utxferror.o
INTERMEDIATES = \
$(OBJDIR)/aslcompilerlex.c\
$(OBJDIR)/aslcompilerparse.c\
$(OBJDIR)/dtparserlex.c\
$(OBJDIR)/dtparserparse.c\
$(OBJDIR)/prparserlex.c\
$(OBJDIR)/prparserparse.c
MISC = \
$(OBJDIR)/aslcompiler.y.h\
$(OBJDIR)/dtparser.y.h\
$(OBJDIR)/prparser.y.h
#
# Flags specific to iASL compiler
#
CFLAGS += \
-DACPI_ASL_COMPILER\
-I$(ASL_COMPILER)\
-I$(OBJDIR)
#
# Common Rules
#
include ../Makefile.rules
#
# Parser and Lexer - intermediate C files
#
$(OBJDIR)/aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l $(ASL_COMPILER)/aslsupport.l $(OBJDIR)/aslcompiler.y.h
$(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
$(OBJDIR)/aslcompiler.y.h : $(ASL_COMPILER)/aslcompiler.y
$(YACC) $(YFLAGS) -pAslCompiler -o/dev/null --defines=$@ $<
$(OBJDIR)/aslcompilerparse.c : $(ASL_COMPILER)/aslcompiler.y
$(YACC) $(YFLAGS) -pAslCompiler -o$@ --defines=/dev/null $<
$(OBJDIR)/dtparserlex.c : $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h
$(LEX) $(LFLAGS) -PDtParser -o$@ $<
$(OBJDIR)/dtparser.y.h : $(ASL_COMPILER)/dtparser.y
$(YACC) $(YFLAGS) -pDtParser -o/dev/null --defines=$@ $<
$(OBJDIR)/dtparserparse.c : $(ASL_COMPILER)/dtparser.y
$(YACC) $(YFLAGS) -pDtParser -o$@ --defines=/dev/null $<
$(OBJDIR)/prparserlex.c : $(ASL_COMPILER)/prparser.l $(OBJDIR)/prparser.y.h
$(LEX) $(LFLAGS) -PPrParser -o$@ $<
$(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparser.y
$(YACC) $(YFLAGS) -pPrParser -o/dev/null --defines=$@ $<
$(OBJDIR)/prparserparse.c : $(ASL_COMPILER)/prparser.y
$(YACC) $(YFLAGS) -pPrParser -o$@ --defines=/dev/null $<
#
# Parsers and Lexers - final object files
#
# Cannot use the common compile warning flags since the C files are created
# by the utilities above and they are not necessarily ANSI C, etc.
#
$(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<