1# Makefile.def 2 3# Set variables: 4# 5# for install: 6# ASL - path name of iASL compiler 7# 8# Internal variables to be pre-defined: 9# TOP - relative name of aslts directory 10# AMLMOD - name of resulting AML module (DefinitionBlock->AMLFileName) 11# without .aml extension. 12 13# Two level hierarchy of compilation: 14# optimization & (32/64 mode). 15# 16# Directory | Flags 17# |--------------------------- 18# | optimization | 32/64 mode 19# --------------------------------------- 20# opt/32 | | -r 1 21# opt/64 | | -r 2 22# nopt/32 | -oa | -r 1 23# nopt/64 | -oa | -r 2 24 25SETOF_INDEXES= 0 1 2 3 26SETOF_AMLDIRS= nopt/32 nopt/64 opt/32 opt/64 27SETOF_ASLFAGS= "-oa -r 1" "-oa -r 2" "-r 1" "-r 2" 28COMMON_ASL_FLAGS= "-cr -vs -l -sc -sa -ic -ta -ts -so -lm -ln -ls -li" 29 30COMPILER_LOG="$(TOP)/tmp/aml/$(aslversion)/compile.txt" 31COMPILER_ERROR_LOG="$(TOP)/tmp/aml/$(aslversion)/error.txt" 32 33# Create general directory 34 35GDMODE=775 36INST= install 37INST.dir= $(INST) -d -m $(GDMODE) $@ 38ASLMOD= MAIN 39 40# Empty all (specify 'all' target, if needed, before Makefile.def include) 41 42empty_all: FORCE 43 44# Rule to create directories located into aslts/tmp/aml; 45# aslversion is determined dynamically. 46 47${SETOF_AMLDIRS:%=$(TOP)/tmp/aml/$(aslversion)/%}: 48 @$(INST.dir) 49 50# Make-install one particular Test Case for all modes 51 52install_all_modes_of_test_case: ${SETOF_AMLDIRS:%=$(TOP)/tmp/aml/$(aslversion)/%} 53 @rval=0; \ 54 if [ -f "$(ASL)" ]; then \ 55 dd=`pwd`; \ 56 echo "---- Test path: $$dd" >> $(COMPILER_LOG); \ 57 echo "---- Test path: $$dd" >> $(COMPILER_ERROR_LOG); \ 58 for i in ${SETOF_INDEXES}; do \ 59 set -- $(SETOF_AMLDIRS); \ 60 shift $$i; \ 61 CUR_AMLDIR=$$1; \ 62 set -- $(SETOF_ASLFAGS); \ 63 shift $$i; \ 64 CUR_ASLFLAGS=$$1; \ 65 echo "---- Test type: $$CUR_AMLDIR (Flags $(COMMON_ASL_FLAGS) $$CUR_ASLFLAGS $(ADD_ASLFLAGS))" >> $(COMPILER_LOG); \ 66 echo "---- Test type: $$CUR_AMLDIR (Flags $(COMMON_ASL_FLAGS) $$CUR_ASLFLAGS $(ADD_ASLFLAGS))" >> $(COMPILER_ERROR_LOG); \ 67 for j in ${AMLMOD}; do \ 68 rm -f $$j.aml; \ 69 done; \ 70 for j in ${ASLMOD} $(ASLMODADD); do \ 71 echo "---- Compile: $$j.asl" >> $(COMPILER_LOG); \ 72 "$(ASL)" $$CUR_ASLFLAGS "$(COMMON_ASL_FLAGS)" $(ADD_ASLFLAGS) $$j.asl >> $(COMPILER_LOG) 2>> $(COMPILER_ERROR_LOG); \ 73 ret=$$?; \ 74 echo "" >> $(COMPILER_LOG); \ 75 rm $$j.asm; \ 76 rm $$j.c; \ 77 rm $$j.h; \ 78 rm $$j.i; \ 79 rm $$j.hex; \ 80 rm $$j.lst; \ 81 rm $$j.map; \ 82 rm $$j.nsp; \ 83 rm $$j.offset.h; \ 84 rm $$j.src; \ 85 if [ $$ret != 0 ]; then \ 86 rval=1; \ 87 >&2 echo "**** Unexpected iASL failure in $$dd/$$j.asl!"; \ 88 exit 1; \ 89 fi; \ 90 done; \ 91 if [ $$ret != 0 ]; then break; fi; \ 92 for j in ${AMLMOD}; do \ 93 ls -l $$j.aml >> $(COMPILER_LOG); \ 94 echo "---- Move: $$j.aml $(TOP)/tmp/aml/$(aslversion)/$$CUR_AMLDIR" >> $(COMPILER_LOG); \ 95 mv $$j.aml $(TOP)/tmp/aml/$(aslversion)/$$CUR_AMLDIR; \ 96 ret=$$?; \ 97 if [ $$ret != 0 ]; then rval=2; echo "**** mv failed!"; break; fi; \ 98 done; \ 99 done; \ 100 else \ 101 echo "Bad iASL 0: <$(ASL)> does not exist"; \ 102 rval=1; \ 103 fi; \ 104 if [ $$rval != 0 ]; then exit 1; fi 105 106# Make-install one particular Test Case for all modes. 107# Move results to aslts/tmp/aml directory. 108# Determine current version of iASL. 109# Create aslts/tmp/aml/<version> directory with the precautions. 110 111install_test_case: 112 @if [ ! -f "$(ASL)" ]; then \ 113 echo "Bad iASL 1: <$(ASL)> does not exist"; exit 1; \ 114 else \ 115 aslversion=""; \ 116 testcasedir=`pwd`; \ 117 cd $(TOP); \ 118 if [ $$? -ne 0 ]; then \ 119 echo "Bad dir: $(TOP)"; exit 1; \ 120 else \ 121 dd=`pwd`; \ 122 base=`basename "$$dd"`; \ 123 if [ x$$base != xaslts ]; then \ 124 echo "Bad base name of ASLTS Test Suite: <$$base> of <$$dd>"; exit 1; \ 125 else \ 126 x=`"$(ASL)" -va xxx | grep "Compiler version"`; \ 127 echo "---- iASL version: $$x"; \ 128 if [ -z "$$x" ]; then \ 129 echo "Bad iASL 2: bad signon <$(ASL)>"; exit 1; \ 130 else \ 131 aslversion=`echo "$$x" | awk -F" " '{ print $$5}'`; \ 132 if [ -z "$$aslversion" ]; then \ 133 echo "Bad iASL 3: could not get version <$(ASL)>"; exit 1; \ 134 else \ 135 if [ ! -d ./tmp ]; then \ 136 mkdir tmp; \ 137 fi; \ 138 cd ./tmp; \ 139 if [ $$? -ne 0 ]; then \ 140 echo "Bad dir: aslts/tmp"; exit 1; \ 141 else \ 142 if [ ! -d ./aml ]; then \ 143 mkdir aml; \ 144 fi; \ 145 cd ./aml; \ 146 if [ $$? -ne 0 ]; then \ 147 echo "Bad dir: aslts/tmp/aml"; exit 1; \ 148 else \ 149 if [ ! -d "./$$aslversion" ]; then \ 150 mkdir $$aslversion; \ 151 fi; \ 152 cd ./$$aslversion; \ 153 if [ $$? -ne 0 ]; then \ 154 echo "Bad dir: aslts/tmp"; exit 1; \ 155 else \ 156 cd "$$testcasedir"; \ 157 export aslversion; make install_all_modes_of_test_case; \ 158 fi; \ 159 fi; \ 160 fi; \ 161 fi; \ 162 fi; \ 163 fi; \ 164 fi; \ 165 fi 166 167# Compile one particular Test Case for all modes. 168# No moving results to aslts/tmp/aml directory. 169 170compile_test_case: 171 @rval=0; \ 172 173 echo "Compile_test_case" 174 175 if [ -f "$(ASL)" ]; then \ 176 for i in ${SETOF_INDEXES}; do \ 177 set -- $(SETOF_AMLDIRS); \ 178 shift $$i; \ 179 CUR_AMLDIR=$$1; \ 180 set -- $(SETOF_ASLFAGS); \ 181 shift $$i; \ 182 CUR_ASLFLAGS=$$1; \ 183 for j in ${ASLMOD} $(ASLMODADD); do \ 184 "$(ASL)" $$CUR_ASLFLAGS $(ADD_ASLFLAGS) $$j.asl; \ 185 ret=$$?; \ 186 if [ $$ret != 0 ]; then rval=1; echo "**** Unexpected iASL failure!"; exit 1; fi; \ 187 done; \ 188 done; \ 189 else \ 190 echo "Bad iASL 4: <$(ASL)> does not exist"; \ 191 rval=1; \ 192 fi; \ 193 if [ $$rval != 0 ]; then exit 1; fi 194 195