# Makefile.def # Set variables: # # for install: # ASL - path name of iASL compiler # # Internal variables to be pre-defined: # TOP - relative name of aslts directory # AMLMOD - name of resulting AML module (DefinitionBlock->AMLFileName) # without .aml extension. # Two level hierarchy of compilation: # optimization & (32/64 mode). # # Directory | Flags # |--------------------------- # | optimization | 32/64 mode # --------------------------------------- # opt/32 | | -r 1 # opt/64 | | -r 2 # nopt/32 | -oa | -r 1 # nopt/64 | -oa | -r 2 ifndef ASLTS_AMLDIR ifeq ("$(ASLTS_MODE)", "n32") ASLTS_AMLDIR=nopt/32 ASLTS_ASLFLAGS="-oa -r 1" endif ifeq ("$(ASLTS_MODE)", "n64") ASLTS_AMLDIR=nopt/64 ASLTS_ASLFLAGS="-oa -r 2" endif ifeq ("$(ASLTS_MODE)", "o32") ASLTS_AMLDIR=opt/32 ASLTS_ASLFLAGS="-r 1" endif ifeq ("$(ASLTS_MODE)", "o64") ASLTS_AMLDIR=opt/64 ASLTS_ASLFLAGS="-r 2" endif ifeq ("$(ASLTS_MODE)", "aslminus") ASLTS_AMLDIR=aslminus/ ASLTS_ASLFLAGS="-oa -r 2" endif ifeq ("$(ASLTS_MODE)", "aslplus") ASLTS_AMLDIR=aslplus/ ASLTS_ASLFLAGS="-oa -r 2" endif ifeq ("$(ASLTS_MODE)", "aslconvert") ASLTS_AMLDIR=aslconvert/ ASLTS_ASLFLAGS="-oa -r 2" endif endif ASLTS_VER ?= $(ASLTS_VER) COMMON_NO_OUTPUT_ASL_FLAGS= "-of -cr -vs" COMMON_ASL_FLAGS= $(COMMON_NO_OUTPUT_ASL_FLAGS)" -l -sc -sa -ic -ta -ts -so -lm -ln -ls -li" COMPILER_LOG="$(TOP)/tmp/aml/$(ASLTS_VER)/compile.txt" COMPILER_ERROR_LOG="$(TOP)/tmp/aml/$(ASLTS_VER)/error.txt" # Create general directory GDMODE=775 INST= install INST.dir= $(INST) -d -m $(GDMODE) $@ ASLMOD= MAIN # Empty all (specify 'all' target, if needed, before Makefile.def include) empty_all: FORCE # Rule to create directories located into aslts/tmp/aml; $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR): @$(INST.dir) # Make-install one particular Test Case for all modes install_all_modes_of_test_case: $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR) @rval=0; \ if [ -f "$(ASL)" ]; then \ dd=`pwd`; \ echo "---- Test path: $$dd" >> $(COMPILER_LOG); \ echo "---- Test path: $$dd" >> $(COMPILER_ERROR_LOG); \ >&2 echo "Test path: $$dd"; \ echo "---- Test type: $(ASLTS_AMLDIR) (Flags $(COMMON_ASL_FLAGS) $(ASLTS_ASLFLAGS) $(ADD_ASLFLAGS))" >> $(COMPILER_LOG); \ echo "---- Test type: $(ASLTS_AMLDIR) (Flags $(COMMON_ASL_FLAGS) $(ASLTS_ASLFLAGS) $(ADD_ASLFLAGS))" >> $(COMPILER_ERROR_LOG); \ for j in ${AMLMOD}; do \ rm -f $$j.aml; \ done; \ for j in ${ASLMOD} $(ASLMODADD); do \ echo "---- Compile: $$j.asl" >> $(COMPILER_LOG); \ >&2 printf "%-18s" " Type: $(ASLTS_AMLDIR) "; \ >&2 printf "Compile"; \ "$(ASL)" $(ASLTS_ASLFLAGS) "$(COMMON_ASL_FLAGS)" $(ADD_ASLFLAGS) $$j.asl >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ ret=$$?; \ echo "" >> $(COMPILER_LOG); \ >&2 printf " => Removing files"; \ rm $$j.asm; \ rm $$j.c; \ rm $$j.h; \ rm $$j.i; \ rm $$j.hex; \ rm $$j.lst; \ rm $$j.map; \ rm $$j.nsp; \ rm $$j.offset.h; \ rm $$j.src; \ >&2 printf " => Done "; \ if [ $$ret != 0 ]; then \ rval=1; \ >&2 echo "**** Unexpected iASL failure in $$dd/$$j.asl!"; \ fi; \ done; \ >&2 echo ""; \ if [ $$ret != 0 ]; then break; fi; \ for j in ${AMLMOD}; do \ ls -l $$j.aml >> $(COMPILER_LOG); \ echo "---- Move: $$j.aml $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR)" >> $(COMPILER_LOG); \ mv $$j.aml $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR); \ ret=$$?; \ if [ $$ret != 0 ]; then rval=2; echo "**** mv failed!" >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); break; fi; \ done; \ else \ echo "Bad iASL 0: <$(ASL)> does not exist"; \ exit 1; \ fi; # Make-install one particular Test Case for all modes. install_test_case: @if [ ! -f "$(ASL)" ]; then \ echo "Bad iASL 1: <$(ASL)> does not exist"; exit 1; \ fi; \ if [ "$(ASLTS_MODE)" = "aslminus" ]; then \ make install_disasm_test_case DISASM_FLAG="-dl" ASLTS_MODE=$(ASLTS_MODE) ASLTS_VER=$(ASLTS_VER); \ elif [ "$(ASLTS_MODE)" = "aslplus" ]; then \ make install_disasm_test_case DISASM_FLAG="-d" ASLTS_MODE=$(ASLTS_MODE) ASLTS_VER=$(ASLTS_VER); \ elif [ "$(ASLTS_MODE)" = "aslconvert" ]; then \ make install_converter_test_case ASLTS_MODE=$(ASLTS_MODE) ASLTS_VER=$(ASLTS_VER); \ else \ make install_all_modes_of_test_case ASLTS_MODE=$(ASLTS_MODE) ASLTS_VER=$(ASLTS_VER); \ fi TEST_SEQUENCE_ASL_FLAGS="$(ASLTS_ASLFLAGS) $(COMMON_NO_OUTPUT_ASL_FLAGS)" disasm_test_compile: $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR) @rval=0; \ for j in ${ASLMOD} $(ASLMODADD); do \ for k in ${AMLMOD}; do \ >&2 printf " => Compile with externals in place"; \ "$(ASL)" -p $$k-extInPlace -oE $(ADD_ASLFLAGS) $(TEST_SEQUENCE_ASL_FLAGS) $$j.asl >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ ret=$$?; \ if [ $$ret != 0 ]; then \ rval=2; \ >&2 printf " [[ Error: compiling $$k.aml with externals in place failed ]]\n"; \ >&2 printf " Flags used: -p $$k-extInPlace -oE $(ADD_ASLFLAGS) $(TEST_SEQUENCE_ASL_FLAGS)\n\n"; \ fi; \ done; \ done; \ if [ $$rval != 0 ]; then exit 1; fi disasm_test_disassemble: disasm_test_compile @rval=0; \ for k in ${AMLMOD}; do \ >&2 printf " => Disassemble"; \ "$(ASL)" -p $$k -oe -od $(COMMON_NO_OUTPUT_ASL_FLAGS) $(ADD_ASLFLAGS) $(DISASM_FLAG) $$k-extInPlace.aml >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ ret=$$?; \ if [ $$ret != 0 ]; then \ retval=2; \ >&2 printf " [[ Error: disassembly of $$k-extInPlace.aml failed ]]\n"; \ >&2 printf " Flags used: -oe -od $(COMMON_NO_OUTPUT_ASL_FLAGS) $(ADD_ASLFLAGS) $(DISASM_FLAG)\n\n"; \ fi; \ done; \ if [ $$rval != 0 ]; then exit 1; fi disasm_test_recompile: disasm_test_disassemble @rval=0; \ for k in ${AMLMOD}; do \ >&2 printf " => Recompile\n"; \ "$(ASL)" $(ADD_ASLFLAGS) $(TEST_SEQUENCE_ASL_FLAGS) $$k.dsl >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ ret=$$?; \ if [ $$ret != 0 ]; then \ rval=2; \ >&2 printf " [[ Error: re-compilation of $$k-$$l.dsl failed]]\n"; \ >&2 printf " Flags used: $(ADD_ASLFLAGS) $(TEST_SEQUENCE_ASL_FLAGS)\n\n"; \ fi; \ rm $$k.dsl; \ echo "---- Move: $$k.aml $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR)" >> $(COMPILER_LOG); \ mv $$k.aml $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR); \ ret=$$?; \ if [ $$ret != 0 ]; then rval=2; echo "**** mv failed!" >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); break; fi; \ done; \ install_disasm_test_case: if [ "x$(ADD_ASLFLAGS)" != "x-f" ]; then \ make disasm_test_recompile; \ make clean; \ else \ >&2 echo "Skipping disassembler test for this test case"; \ fi; converter_test_convert: $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR) @rval=0; \ for j in ${ASLMOD} $(ASLMODADD); do \ >&2 printf " Convert"; \ "$(ASL)" $(ADD_ASLFLAGS) -cr -ca $$j.asl >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ ret=$$?; \ if [ $$ret != 0 ]; then \ rval=2; \ >&2 printf " [[ Error: conversion of $$j.asl failed ]]\n"; \ >&2 printf " Flags used: -ca\n\n"; \ fi; \ done; \ if [ $$rval != 0 ]; then exit 1; fi converter_test_recompile: converter_test_convert @rval=0; \ for j in ${ASLMOD} $(ASLMODADD); do \ for k in ${AMLMOD}; do \ >&2 printf " => Recompile"; \ "$(ASL)" $(ADD_ASLFLAGS) $(TEST_SEQUENCE_ASL_FLAGS) -p $$k $$j.dsl >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ ret=$$?; \ if [ $$ret != 0 ]; then \ rval=2; \ >&2 printf " [[ Error: re-compilation of $$j.dsl failed]]\n"; \ >&2 printf " Flags used: $(ADD_ASLFLAGS) $(TEST_SEQUENCE_ASL_FLAGS) -p $$k\n\n"; \ else \ >&2 printf " => Done\n"; \ fi; \ echo "---- Move: $$k.aml $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR)" >> $(COMPILER_LOG); \ mv $$k.aml $(TOP)/tmp/aml/$(ASLTS_VER)/$(ASLTS_AMLDIR); \ ret=$$?; \ if [ $$ret != 0 ]; then rval=2; echo "**** mv failed!" >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); break; fi; \ done; \ done; \ install_converter_test_case: if [ "x$(ADD_ASLFLAGS)" != "x-f" ]; then \ make converter_test_recompile; \ make clean; \ else \ >&2 echo "Skipping converter test for this test case"; \ fi; # Compile one particular Test Case for all modes. # No moving results to aslts/tmp/aml directory. compile_test_case: @rval=0; \ echo "Compile_test_case" if [ -f "$(ASL)" ]; then \ for j in ${ASLMOD} $(ASLMODADD); do \ "$(ASL)" $(ASLTS_ASLFLAGS) $(ADD_ASLFLAGS) $$j.asl; \ ret=$$?; \ if [ $$ret != 0 ]; then rval=1; echo "**** Unexpected iASL failure!"; exit 1; fi; \ done; \ else \ echo "Bad iASL 4: <$(ASL)> does not exist"; \ rval=1; \ fi; \ if [ $$rval != 0 ]; then exit 1; fi