On Tue, 18 Mar 2025 10:44:46 GMT, Joachim Kern <jk...@openjdk.org> wrote:
>> Ups, thank you for giving me the 'S'. But nevertheless if I make with >> `make all LOG=info` an `$(info generate_export_list: >> $(generate_export_list))` still shows an empty list > > I did not get the SetupExecute to function, even if I strip it down to a > simple example > > $(eval $(call SetupExecute, generate_export_list, \ > INFO := Generating export list for static libs, \ > DEPS := /path/libjli.a, \ > OUTPUT_FILE := /path/libjli.a.exp, \ > COMMAND := $(AR) $(ARFLAGS) -w $$(patsubst %.exp, %, $$@) | $(GREP) -v > '^.' | $(AWK) '{print $$$$1}' | $(SORT) -u >$$@, \ > )) > > $(java): $(STATIC_LIB_FILES) /path/libjli.a.exp > > I still get > `gmake[3]: *** No rule to make target '/path/libjli.a.exp', needed by > '/path2/java'. Stop. > ` > Why does make not recognize, that the rule is in my > `call SetupExecute, generate_export_list,` > macro? This is likely due to the missing subshell. There is an enhancement filed to fix this automatically but it has unfortunately not been prioritized: https://bugs.openjdk.org/browse/JDK-8233115 ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24062#discussion_r2000909674