Re: Difficulties from the combination of functions "call" and "eval"
> So that $(eval $(call GIBBERISH)) is wrong. Exactly *how* it's wrong > depends on what the $(call) is supposed to return. Currently you're > evaling something that doesn't look like a *STANDALONE* chunk of > Makefile, which results in the error *in the eval*. I have added another tab character to a multi-line variable definition which should be called for a specific evaluation. Now I get a bit of more "progress indication" from a different error message. … parallel-inc.make:249: *** recipe commences before first target. Stop. Would you like to give further hints (or advices) for another excerpt from this build script? Lines 183 - 203: define RESULT_CHECK for part in $(1); do \ if test "x$$(< $$part)" != "x0"; then \ $(PRINTF) "$$(TEXT3)" '$$part'; \ exit 12; \ fi; \ done \ && $$(TOUCH) '$(2)' endef define HANDLE_BACKGROUND_TASK @$(RM) '$(1)' $(file >$(2)) \ $(file >>$(2),for task in $$($(SEQ) $(PARALLEL_MAXIMUM) -1 0); \ do $(MAKE) -f $(3) -j1 index=$$task &; \ done) \ $(file >>$(2),wait) @cat '$(2)' $$SHELL '$(2)' $(eval $(call RESULT_CHECK,$(4),$(1))) endef Regards, Markus ___ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make
Re: Questionable line number in a message "missing separator"?
On Sat, Jan 17, 2015 at 12:52 PM, SF Markus Elfring wrote: >> Of course, if you had actually quoted the relevant lines from your >> Makefile, we could be more precise. > > Thanks for your interest. > > Do you get further ideas from an excerpt of my build script > "parallel-inc.make"? > > Lines 241 - 256: > $(EXIT_CODES_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS) \ > $(RESULT_SQL_DATABASE_NOTIFICATION3) \ > $(RUN_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS): \ > initialise_database \ > $(BUILD_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS) \ > $(HEADER_SEARCH_PARTS) > $(if > $(LET_RUN_FIND_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS_PARALLEL),\ > $(eval > LET_RUN_FIND_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS_PARALLEL::=)$(eval > $(call HANDLE_BACKGROUND_TASK,\ > $(RESULT_SQL_DATABASE_NOTIFICATION3),\ > $(RUN_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS),\ > $(BUILD_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS),\ > $(EXIT_CODES_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS > > find_functions_that_check_their_single_parameter_in_headers_with_parallel_groups: > \ > $(RESULT_SQL_DATABASE_NOTIFICATION3) > @$(ECHO) 'Header files were analysed.' So that $(eval $(call GIBBERISH)) is wrong. Exactly *how* it's wrong depends on what the $(call) is supposed to return. Currently you're evaling something that doesn't look like a *STANDALONE* chunk of Makefile, which results in the error *in the eval*. Paul, I still think $(eval) should have been named $(stick-arm-in-woodchipper), to make it less seductive to people trying to layer imperative programming on the declarative nature of make. Philip Guenther ___ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make
Re: Questionable line number in a message "missing separator"?
> Of course, if you had actually quoted the relevant lines from your > Makefile, we could be more precise. Thanks for your interest. Do you get further ideas from an excerpt of my build script "parallel-inc.make"? Lines 241 - 256: $(EXIT_CODES_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS) \ $(RESULT_SQL_DATABASE_NOTIFICATION3) \ $(RUN_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS): \ initialise_database \ $(BUILD_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS) \ $(HEADER_SEARCH_PARTS) $(if $(LET_RUN_FIND_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS_PARALLEL),\ $(eval LET_RUN_FIND_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS_PARALLEL::=)$(eval $(call HANDLE_BACKGROUND_TASK,\ $(RESULT_SQL_DATABASE_NOTIFICATION3),\ $(RUN_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS),\ $(BUILD_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS),\ $(EXIT_CODES_FUNCTIONS_THAT_CHECK_THEIR_SINGLE_PARAMETER_IN_HEADERS find_functions_that_check_their_single_parameter_in_headers_with_parallel_groups: \ $(RESULT_SQL_DATABASE_NOTIFICATION3) @$(ECHO) 'Header files were analysed.' Regards, Markus ___ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make
Re: Questionable line number in a message "missing separator"?
On Sat, Jan 17, 2015 at 11:06 AM, SF Markus Elfring wrote: > But the software tool "make 4.1-2.2" does not like > a specific place in this file at the moment. > > … > parallel-inc.make:247: *** missing separator. Stop. > > > The mentioned line has got a leading tab character > for the beginning of a recipe. > How can this syntax difficulty be resolved now? A line starting with a tab is only interpreted as part of a recipe if the previous non-comment line was either a rule or another recipe line. If the previous line was an include, a variable assignment, a vpath setting, etc then the previous recipe is closed and you can't add another recipe line to it. Of course, if you had actually quoted the relevant lines from your Makefile, we could be more precise. Philip Guenther ___ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make
Questionable line number in a message "missing separator"?
Hello, I can use some phony targets from my build script as expected. But the software tool "make 4.1-2.2" does not like a specific place in this file at the moment. … parallel-inc.make:247: *** missing separator. Stop. The mentioned line has got a leading tab character for the beginning of a recipe. How can this syntax difficulty be resolved now? Regards, Markus ___ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make