Closed ecm-pushbx closed 9 months ago
Quoth https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html#Automatic-Variables
In an explicit rule, there is no stem; so ‘$*’ cannot be determined in that way. Instead, if the target name ends with a recognized suffix (see Old-Fashioned Suffix Rules), ‘$*’ is set to the target name minus the suffix. For example, if the target name is ‘foo.c’, then ‘$*’ is set to ‘foo’, since ‘.c’ is a suffix. GNU make does this bizarre thing only for compatibility with other implementations of make. You should generally avoid using ‘$*’ except in implicit rules or static pattern rules.
If the target name in an explicit rule does not end with a recognized suffix, ‘$*’ is set to the empty string for that rule.
https://github.com/FDOS/kernel/blob/2efe4ab9f4a645eb3b44a178c99eb03c4cfa6ead/boot/makefile#L11
In the makefile the recipe line
$(NASM) -dISFAT12 boot.asm -l$*.lst -ofat12com.bin
creates the file.lst
(just dot L S T, no name portion) on our server and the desktop box (both running Debian). This seems to have been added in https://sourceforge.net/p/freedos/svn/1492/