Hello I am having some trouble trying to set a variable inside a target. When reading the variable, it comes up blank. Below is my make file code. The eval statement below highlighted in red is not working. Can you provide some assistance please? I am using GNU Make 4.1
$(DIR_A2LGEN_SETUP)/McData-setup.a2l: $(BSW_A2LS) $(DIR_SCRIPTS)/update_mcdata_a2l.py $(DIR_SCRIPTS)/update_copyright_info.py $(DIR_SCRIPTS)/merge_a2l_files.py $(DIR_TARGET)/$(PROJECT).odx-f $(DIR_A2L)/Merger.ini @echo "A2L $@" @rm -rf $(DIR_A2LGEN) @rm -rf $(DIR_A2LLOGS) @rm -rf $(DIR_A2LGEN_SETUP) @rm -rf $(DIR_A2LGEN_UPDATE) @rm -rf $(DIR_A2LGEN_MODIFY) @rm -rf $(DIR_A2LGEN_CHECK) @rm -rf $(DIR_A2LGEN_SUPPLIER) @mkdir -p $(DIR_A2LGEN) @mkdir -p $(DIR_A2LLOGS) @mkdir -p $(DIR_A2LGEN_SETUP) @mkdir -p $(DIR_A2LGEN_UPDATE) @mkdir -p $(DIR_A2LGEN_MODIFY) @mkdir -p $(DIR_A2LGEN_CHECK) @mkdir -p $(DIR_A2LGEN_SUPPLIER) @find $(DIR_BSWPROJECT) -type f -name "*.a2l" | xargs -i cp {} $(DIR_A2LGEN_SETUP) #TODO: IS this still needed @cp $(DIR_A2L)/_Master*.a2l $(DIR_A2LGEN_SETUP) @python $(DIR_SCRIPTS)/update_mcdata_a2l.py $(DIR_A2LGEN_SETUP) @python $(DIR_SCRIPTS)/update_copyright_info.py \ -a $(DIR_A2LGEN_SETUP)/McData.a2l.patched \ -o $(DIR_A2LGEN_SETUP)/McData-copyright.a2l @python $(DIR_SCRIPTS)/merge_two_files.py \ -f1 $(CAN_A2L) \ -f2 $(DIR_A2LGEN_SETUP)/McData-copyright.a2l \ -sp '/end DAQ' \ -ep '/end IF_DATA' \ -op $(DIR_A2LGEN_SETUP)/McData-copyright-can.a2l # When there are no supplier a2l files then the merge process doesn't need to be done. ifneq ($(wildcard $(DIR_SUPPLIER)),) @find $(DIR_SUPPLIER) -type f -name "*.a2l" | xargs -i cp {} $(DIR_A2LGEN_SUPPLIER) $(eval SUPPLIER_A2l := $(sort $(shell find $(DIR_A2LGEN_SUPPLIER) -type f -name "*.a2l"))) @echo "A2L Supplier folder detected" @echo "Supplier a2l $(SUPPLIER_A2l)" # Just becuase there is a supplier folder does not mean it has a2l files. ifeq ($(SUPPLIER_A2l),"*.a2l") @echo "A2L Supplier a2l files found" @python $(DIR_SCRIPTS)/merge_a2l_files.py \ -s $(DIR_A2LGEN_SUPPLIER) \ -b a2l_file_list_supplier.opt \ -P $(DIR_A2L)/Merger.ini \ -M $(DIR_A2LGEN_SETUP)/McData-copyright-can.a2l \ -O $(DIR_A2LGEN_SETUP)/McData-setup.a2l \ -L $(DIR_A2LLOGS)/Log0-A2LMerger.log \ -g $(DIR_BUILDGEN) @ASAP2Merger.exe \ @$(DIR_BUILDGEN)/a2l_file_list_supplier.opt \ > $(subst $(DIR_A2LGEN_SETUP),$(DIR_A2LLOGS),$(@:.a2l=.log)) \ || echo "A2L $(DIR_A2LLOGS)/Log0-A2L-Supplier-Merger.log - Check for warnings/errors!" else @cp $(DIR_A2LGEN_SETUP)/McData-copyright-can.a2l $(DIR_A2LGEN_SETUP)/McData-setup.a2l @echo "A2L Supplier folder detected but no a2l files present" endif else @cp $(DIR_A2LGEN_SETUP)/McData-copyright-can.a2l $(DIR_A2LGEN_SETUP)/McData-setup.a2l @echo "A2L Supplier folder not available" endif Ed L Wolf Technical Advisor - Embedded Software e.l.w...@cummins.com Cummins Inc. Mail Code: C7004 1460 National Road Columbus, Indiana 47201 United States