Home | History | Annotate | Line # | Download | only in iasl
Makefile revision 1.1.1.9.6.1
      1 #
      2 # iASL compiler/disassembler
      3 #
      4 
      5 #
      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.
     12 #
     13 include ../Makefile.config
     14 FINAL_PROG = ../$(BINDIR)/iasl
     15 PROG = $(OBJDIR)/iasl
     16 
     17 #
     18 # Search paths for source files
     19 #
     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)
     32 
     33 HEADERS = \
     34     $(wildcard $(ASL_COMPILER)/*.h)\
     35     $(OBJDIR)/aslcompiler.y.h\
     36     $(OBJDIR)/dtparser.y.h\
     37     $(OBJDIR)/prparser.y.h
     38 
     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)/aslanalyze.o\
     55 	$(OBJDIR)/aslascii.o\
     56 	$(OBJDIR)/aslbtypes.o\
     57 	$(OBJDIR)/aslcodegen.o\
     58 	$(OBJDIR)/aslcompile.o\
     59 	$(OBJDIR)/asldebug.o\
     60 	$(OBJDIR)/aslerror.o\
     61 	$(OBJDIR)/aslexternal.o\
     62 	$(OBJDIR)/aslfiles.o\
     63 	$(OBJDIR)/aslfileio.o\
     64 	$(OBJDIR)/aslfold.o\
     65 	$(OBJDIR)/aslhelp.o\
     66 	$(OBJDIR)/aslhex.o\
     67 	$(OBJDIR)/asllength.o\
     68 	$(OBJDIR)/asllisting.o\
     69 	$(OBJDIR)/asllistsup.o\
     70 	$(OBJDIR)/aslload.o\
     71 	$(OBJDIR)/asllookup.o\
     72 	$(OBJDIR)/aslmain.o\
     73 	$(OBJDIR)/aslmap.o\
     74 	$(OBJDIR)/aslmapenter.o\
     75 	$(OBJDIR)/aslmapoutput.o\
     76 	$(OBJDIR)/aslmaputils.o\
     77 	$(OBJDIR)/aslmessages.o\
     78 	$(OBJDIR)/aslmethod.o\
     79 	$(OBJDIR)/aslnamesp.o\
     80 	$(OBJDIR)/asloffset.o\
     81 	$(OBJDIR)/aslopcodes.o\
     82 	$(OBJDIR)/asloperands.o\
     83 	$(OBJDIR)/aslopt.o\
     84 	$(OBJDIR)/asloptions.o\
     85 	$(OBJDIR)/aslpredef.o\
     86 	$(OBJDIR)/aslprepkg.o\
     87 	$(OBJDIR)/aslprintf.o\
     88 	$(OBJDIR)/aslprune.o\
     89 	$(OBJDIR)/aslresource.o\
     90 	$(OBJDIR)/aslrestype1.o\
     91 	$(OBJDIR)/aslrestype1i.o\
     92 	$(OBJDIR)/aslrestype2.o\
     93 	$(OBJDIR)/aslrestype2d.o\
     94 	$(OBJDIR)/aslrestype2e.o\
     95 	$(OBJDIR)/aslrestype2q.o\
     96 	$(OBJDIR)/aslrestype2s.o\
     97 	$(OBJDIR)/aslrestype2w.o\
     98 	$(OBJDIR)/aslstartup.o\
     99 	$(OBJDIR)/aslstubs.o\
    100 	$(OBJDIR)/aslpld.o\
    101 	$(OBJDIR)/asltransform.o\
    102 	$(OBJDIR)/asltree.o\
    103 	$(OBJDIR)/aslutils.o\
    104 	$(OBJDIR)/asluuid.o\
    105 	$(OBJDIR)/aslwalks.o\
    106 	$(OBJDIR)/aslxref.o\
    107 	$(OBJDIR)/aslxrefout.o\
    108 	$(OBJDIR)/cvcompiler.o\
    109 	$(OBJDIR)/cvdisasm.o\
    110 	$(OBJDIR)/cvparser.o\
    111 	$(OBJDIR)/cmfsize.o\
    112 	$(OBJDIR)/dbfileio.o\
    113 	$(OBJDIR)/dmbuffer.o\
    114 	$(OBJDIR)/dmcstyle.o\
    115 	$(OBJDIR)/dmdeferred.o\
    116 	$(OBJDIR)/dmextern.o\
    117 	$(OBJDIR)/dmnames.o\
    118 	$(OBJDIR)/dmopcode.o\
    119 	$(OBJDIR)/dmresrc.o\
    120 	$(OBJDIR)/dmresrcl.o\
    121 	$(OBJDIR)/dmresrcl2.o\
    122 	$(OBJDIR)/dmresrcs.o\
    123 	$(OBJDIR)/dmrestag.o\
    124 	$(OBJDIR)/dmtable.o\
    125 	$(OBJDIR)/dmtables.o\
    126 	$(OBJDIR)/dmtbdump.o\
    127 	$(OBJDIR)/dmtbinfo.o\
    128 	$(OBJDIR)/dmutils.o\
    129 	$(OBJDIR)/dmwalk.o\
    130 	$(OBJDIR)/dsargs.o\
    131 	$(OBJDIR)/dscontrol.o\
    132 	$(OBJDIR)/dsfield.o\
    133 	$(OBJDIR)/dsobject.o\
    134 	$(OBJDIR)/dsopcode.o\
    135 	$(OBJDIR)/dsutils.o\
    136 	$(OBJDIR)/dswexec.o\
    137 	$(OBJDIR)/dswload.o\
    138 	$(OBJDIR)/dswload2.o\
    139 	$(OBJDIR)/dswscope.o\
    140 	$(OBJDIR)/dswstate.o\
    141 	$(OBJDIR)/dtcompile.o\
    142 	$(OBJDIR)/dtexpress.o\
    143 	$(OBJDIR)/dtfield.o\
    144 	$(OBJDIR)/dtio.o\
    145 	$(OBJDIR)/dtsubtable.o\
    146 	$(OBJDIR)/dttable.o\
    147 	$(OBJDIR)/dttable1.o\
    148 	$(OBJDIR)/dttable2.o\
    149 	$(OBJDIR)/dttemplate.o\
    150 	$(OBJDIR)/dtutils.o\
    151 	$(OBJDIR)/exconcat.o\
    152 	$(OBJDIR)/exconvrt.o\
    153 	$(OBJDIR)/excreate.o\
    154 	$(OBJDIR)/exdump.o\
    155 	$(OBJDIR)/exmisc.o\
    156 	$(OBJDIR)/exmutex.o\
    157 	$(OBJDIR)/exnames.o\
    158 	$(OBJDIR)/exoparg1.o\
    159 	$(OBJDIR)/exoparg2.o\
    160 	$(OBJDIR)/exoparg3.o\
    161 	$(OBJDIR)/exoparg6.o\
    162 	$(OBJDIR)/exprep.o\
    163 	$(OBJDIR)/exregion.o\
    164 	$(OBJDIR)/exresnte.o\
    165 	$(OBJDIR)/exresolv.o\
    166 	$(OBJDIR)/exresop.o\
    167 	$(OBJDIR)/exstore.o\
    168 	$(OBJDIR)/exstoren.o\
    169 	$(OBJDIR)/exstorob.o\
    170 	$(OBJDIR)/exsystem.o\
    171 	$(OBJDIR)/exutils.o\
    172 	$(OBJDIR)/getopt.o\
    173 	$(OBJDIR)/nsaccess.o\
    174 	$(OBJDIR)/nsalloc.o\
    175 	$(OBJDIR)/nsdump.o\
    176 	$(OBJDIR)/nsnames.o\
    177 	$(OBJDIR)/nsobject.o\
    178 	$(OBJDIR)/nsparse.o\
    179 	$(OBJDIR)/nssearch.o\
    180 	$(OBJDIR)/nsutils.o\
    181 	$(OBJDIR)/nswalk.o\
    182 	$(OBJDIR)/nsxfobj.o\
    183 	$(OBJDIR)/osunixxf.o\
    184 	$(OBJDIR)/prexpress.o\
    185 	$(OBJDIR)/prmacros.o\
    186 	$(OBJDIR)/prscan.o\
    187 	$(OBJDIR)/prutils.o\
    188 	$(OBJDIR)/psargs.o\
    189 	$(OBJDIR)/psloop.o\
    190 	$(OBJDIR)/psobject.o\
    191 	$(OBJDIR)/psopcode.o\
    192 	$(OBJDIR)/psopinfo.o\
    193 	$(OBJDIR)/psparse.o\
    194 	$(OBJDIR)/psscope.o\
    195 	$(OBJDIR)/pstree.o\
    196 	$(OBJDIR)/psutils.o\
    197 	$(OBJDIR)/pswalk.o\
    198 	$(OBJDIR)/tbdata.o\
    199 	$(OBJDIR)/tbfadt.o\
    200 	$(OBJDIR)/tbinstal.o\
    201 	$(OBJDIR)/tbprint.o\
    202 	$(OBJDIR)/tbutils.o\
    203 	$(OBJDIR)/tbxface.o\
    204 	$(OBJDIR)/tbxfload.o\
    205 	$(OBJDIR)/utaddress.o\
    206 	$(OBJDIR)/utalloc.o\
    207 	$(OBJDIR)/utascii.o\
    208 	$(OBJDIR)/utbuffer.o\
    209 	$(OBJDIR)/utcache.o\
    210 	$(OBJDIR)/utcopy.o\
    211 	$(OBJDIR)/utdebug.o\
    212 	$(OBJDIR)/utdecode.o\
    213 	$(OBJDIR)/utdelete.o\
    214 	$(OBJDIR)/uterror.o\
    215 	$(OBJDIR)/utexcep.o\
    216 	$(OBJDIR)/utglobal.o\
    217 	$(OBJDIR)/uthex.o\
    218 	$(OBJDIR)/utinit.o\
    219 	$(OBJDIR)/utlock.o\
    220 	$(OBJDIR)/utmath.o\
    221 	$(OBJDIR)/utmisc.o\
    222 	$(OBJDIR)/utmutex.o\
    223 	$(OBJDIR)/utnonansi.o\
    224 	$(OBJDIR)/utobject.o\
    225 	$(OBJDIR)/utownerid.o\
    226 	$(OBJDIR)/utpredef.o\
    227 	$(OBJDIR)/utresrc.o\
    228 	$(OBJDIR)/utstate.o\
    229 	$(OBJDIR)/utstrtoul64.o\
    230 	$(OBJDIR)/utstring.o\
    231 	$(OBJDIR)/utuuid.o\
    232 	$(OBJDIR)/utxface.o\
    233 	$(OBJDIR)/utxferror.o
    234 
    235 INTERMEDIATES = \
    236 	$(OBJDIR)/aslcompiler.y\
    237 	$(OBJDIR)/aslcompilerlex.c\
    238 	$(OBJDIR)/aslcompilerparse.c\
    239 	$(OBJDIR)/dtparserlex.c\
    240 	$(OBJDIR)/dtparserparse.c\
    241 	$(OBJDIR)/prparserlex.c\
    242 	$(OBJDIR)/prparserparse.c
    243 
    244 MISC = \
    245 	$(OBJDIR)/aslcompiler.y.h\
    246 	$(OBJDIR)/dtparser.y.h\
    247 	$(OBJDIR)/prparser.y.h
    248 
    249 ASL_PARSER = \
    250 	$(ASL_COMPILER)/aslcstyle.y\
    251 	$(ASL_COMPILER)/aslhelpers.y\
    252 	$(ASL_COMPILER)/aslparser.y\
    253 	$(ASL_COMPILER)/aslprimaries.y\
    254 	$(ASL_COMPILER)/aslresources.y\
    255 	$(ASL_COMPILER)/aslrules.y\
    256 	$(ASL_COMPILER)/aslsupport.y\
    257 	$(ASL_COMPILER)/asltokens.y\
    258 	$(ASL_COMPILER)/asltypes.y
    259 
    260 ASL_LEXER = \
    261 	$(ASL_COMPILER)/aslcompiler.l\
    262 	$(ASL_COMPILER)/aslsupport.l\
    263 	$(OBJDIR)/aslcompiler.y.h
    264 
    265 
    266 #
    267 # Flags specific to iASL compiler
    268 #
    269 CFLAGS += \
    270     -DACPI_ASL_COMPILER\
    271     -I$(ASL_COMPILER)\
    272     -I$(OBJDIR)
    273 
    274 #
    275 # Common Rules
    276 #
    277 include ../Makefile.rules
    278 
    279 #
    280 # Function to safely execute yacc
    281 #
    282 safe_yacc = \
    283 	_d=`mktemp -d $(OBJDIR)/$(1).XXXXXX` &&\
    284 	cd $$_d &&\
    285 	$(YACC) $(YFLAGS) -v -d -p$(1) $(abspath $(2)) &&\
    286 	cd - &&\
    287 	mv $$_d/y.tab$(suffix $(3)) $(3);\
    288 	_r=$$?;\
    289 	rm -fr $$_d;\
    290 	exit $$_r
    291 
    292 #
    293 # Macro processing for iASL .y files
    294 #
    295 $(OBJDIR)/aslcompiler.y :      $(ASL_PARSER)
    296 	$(MACROPROC) $(MFLAGS) $(ASL_COMPILER)/aslparser.y > $@
    297 
    298 #
    299 # Parser and Lexer - intermediate C files
    300 #
    301 $(OBJDIR)/aslcompilerlex.c :   $(ASL_LEXER)
    302 	$(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
    303 
    304 $(OBJDIR)/aslcompilerparse.c $(OBJDIR)/aslcompiler.y.h : $(OBJDIR)/aslcompiler.y
    305 	$(call safe_yacc,AslCompiler,$<,$@)
    306 
    307 $(OBJDIR)/dtparserlex.c :      $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h
    308 	$(LEX) $(LFLAGS) -PDtParser -o$@ $<
    309 
    310 $(OBJDIR)/dtparserparse.c $(OBJDIR)/dtparser.y.h :       $(ASL_COMPILER)/dtparser.y
    311 	$(call safe_yacc,DtParser,$<,$@)
    312 
    313 $(OBJDIR)/prparserlex.c :      $(ASL_COMPILER)/prparser.l $(OBJDIR)/prparser.y.h
    314 	$(LEX) $(LFLAGS) -PPrParser -o$@ $<
    315 
    316 $(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h :       $(ASL_COMPILER)/prparser.y
    317 	$(call safe_yacc,PrParser,$<,$@)
    318 
    319 #
    320 # Parsers and Lexers - final object files
    321 #
    322 # Cannot use the common compile warning flags since the C files are created
    323 # by the utilities above and they are not necessarily ANSI C, etc.
    324 #
    325 $(OBJDIR)/aslcompilerlex.o :   $(OBJDIR)/aslcompilerlex.c
    326 	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
    327 
    328 $(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
    329 	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
    330 
    331 $(OBJDIR)/dtparserlex.o :      $(OBJDIR)/dtparserlex.c
    332 	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
    333 
    334 $(OBJDIR)/dtparserparse.o :    $(OBJDIR)/dtparserparse.c
    335 	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
    336 
    337 $(OBJDIR)/prparserlex.o :      $(OBJDIR)/prparserlex.c
    338 	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
    339 
    340 $(OBJDIR)/prparserparse.o :    $(OBJDIR)/prparserparse.c
    341 	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
    342