On Sun, 18 Jun 2017 13:03:10 +0200 SF Markus Elfring <elfr...@users.sourceforge.net> wrote:
> I have tried the following small script out together with the program > âGNU Make 4.2.1-1.7â on my openSUSE Tumbleweed system. That "script" seems like a makefile to me. > my_compilation?=echo > my_preparation?=cat > footer?=MOTD.txt > prepared_file?=MOTD.in > > MOTD%.log: MOTD%.txt MOTD%.in > ${my_compilation} "$<: $$(cat ${prepared_file} ${footer})" > $@ > > ${prepared_file}: MOTD.draft > ${my_preparation} $< > $@ > > > elfring@Sonne:~/Projekte/Bau> my_message=MOTD.log && rm -f > ${my_message}; touch MOTD.draft MOTD.txt && LANG=C make > --no-builtin-rules -f ../rule-check2.make && LANG=C ls -l MOTD.in > ${my_message} cat MOTD.draft > MOTD.in > ls: cannot access 'MOTD.log': No such file or directory > -rw-r--r-- 1 elfring users 6 Jun 18 12:56 MOTD.in > > > Now I wonder why the log file is not generated by this build approach at > the end. Where is my knowledge and understanding incomplete for this > software situation? Your MOTD.log is not generated because you did not tell make to generate it. It would have been generated if you would have called make with a command like: LANG=C make --no-builtin-rules -f ../rule-check2.make MOTD.log and if you had a rule to build MOTD.log It would also have been generated if your makefile would have contained a default rule which caused that file to be generated. The default rule in your makefile is ${prepared_file} which in this case is MOTD.in gets generated. There is no default rule for MOTD.txt, your makefile know how to generate every MOTD?*.txt but it does not know if any of them should be generated by default. In the documentation at https://www.gnu.org/software/make/manual/html_node/Rules.html it says: "a target that defines a pattern rule has no effect on the default goal." In fact, there is no rule at all for MOTD.txt as your rule for MOTD%.txt has a pattern which must match a none empty string. regards Henrik _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make