smake.1 (schily-2021-08-14.tar.bz2) | : | smake.1 (schily-2021-09-18.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 334 | skipping to change at line 334 | |||
functionality and automated adaptivity of smake. | functionality and automated adaptivity of smake. | |||
Automake special purpose macros | Automake special purpose macros | |||
The special purpose macros that have names that match MAKE_* (see section Special Macros) are part of the | The special purpose macros that have names that match MAKE_* (see section Special Macros) are part of the | |||
automake features of smake. The related special macros are set up by sma ke to contain values that have | automake features of smake. The related special macros are set up by sma ke to contain values that have | |||
been retrieved from the results of the uname(2), sysinfo(2) or sysctl( 2) system calls. The values for | been retrieved from the results of the uname(2), sysinfo(2) or sysctl( 2) system calls. The values for | |||
these macros may however be overwritten from a makefile or from a command line macro definition. | these macros may however be overwritten from a makefile or from a command line macro definition. | |||
Automake special targets | Automake special targets | |||
The special target .INCLUDE_FAILED allows to define a rule that is evalua ted in case that an include | The special target .INCLUDE_FAILED allows to define a rule that is evalua ted in case that an include | |||
files does not exist and could not be made from other rules. As the asoc | files does not exist and could not be made from other rules. As the as | |||
iated command for this target is | sociated command for this target | |||
typically a shell script, the shell script can be written to create fall | is typically a shell script, the shell script can be written to create fa | |||
back rules in a platform inde- | ll back rules in a platform | |||
pendent way. | independent way. | |||
Search Rules For Files | Search Rules For Files | |||
In many cases, it is desirable to hold object files in a special direc tory which is different from the | In many cases, it is desirable to hold object files in a special direc tory which is different from the | |||
directory where the source files are located. For this reason, smake all ows to specify a directory where | directory where the source files are located. For this reason, smake all ows to specify a directory where | |||
all targets are placed in case they are a result of an implicit rule. Ad d | all targets are placed in case they are a result of an implicit rule. Ad d | |||
.OBJDIR: object_directory | .OBJDIR: object_directory | |||
to the makefile to activate this smake feature. If a makefile u ses this feature, it must either | to the makefile to activate this smake feature. If a makefile u ses this feature, it must either | |||
explicitely use the right file names (including the object directory) or use dynamic macros that are | explicitely use the right file names (including the object directory) or use dynamic macros that are | |||
skipping to change at line 513 | skipping to change at line 513 | |||
is used to replace prefixes and suffixes in words. In this case, op is th e old prefix, os is the old suf- | is used to replace prefixes and suffixes in words. In this case, op is th e old prefix, os is the old suf- | |||
fix, np is the new prefix and ns is the new suffix. The strings op, os, np and ns may all be empty | fix, np is the new prefix and ns is the new suffix. The strings op, os, np and ns may all be empty | |||
strings. The pattern % matches a string of zero or more characters. The matched pattern is carried for- | strings. The pattern % matches a string of zero or more characters. The matched pattern is carried for- | |||
ward to the replacement target. For example: | ward to the replacement target. For example: | |||
OBJECT=foo.o | OBJECT=foo.o | |||
SCCS_HISTFILE=$(OBJECT:%.o=SCCS/s.%.c) | SCCS_HISTFILE=$(OBJECT:%.o=SCCS/s.%.c) | |||
replaces foo.o by SCCS/s.foo.c when the macro $(SCCS_HISTFILE) is referen ced. | replaces foo.o by SCCS/s.foo.c when the macro $(SCCS_HISTFILE) is referen ced. | |||
The replacement is done on a word by word base and the white space betwee | ||||
n words is literally retained. | ||||
If there is no match, the result is unmodified. | ||||
Shell Replacement Macro References | Shell Replacement Macro References | |||
A macro reference in the following form: | A macro reference in the following form: | |||
$(name:sh) | $(name:sh) | |||
will interpret the content of the macro name as a shell command line, cal l the shell with the content of | will interpret the content of the macro name as a shell command line, ca ll the shell with the content of | |||
the macro and return the output of the called command. | the macro and return the output of the called command. | |||
Special Targets | Special Targets | |||
.DEFAULT: | .DEFAULT: | |||
If a target is considered to be out of date and no other rule ap plies to this target, smake exe- | If a target is considered to be out of date and no other rule appl ies to this target, smake exe- | |||
cutes the commands from this special target. The .DEFAULT target may not have a dependency list. | cutes the commands from this special target. The .DEFAULT target may not have a dependency list. | |||
.DONE: If this special target is present, smake executes the commands aft | .DONE: If this special target is present, smake executes the commands | |||
er all targets have been pro- | after all targets have been pro- | |||
cessed. The .DONE target is also executed if a failure occurs a | cessed. The .DONE target is also executed if a failure occurs and | |||
nd no .FAILED target is present. | no .FAILED target is present. | |||
The .DONE target may not have a dependency list. | The .DONE target may not have a dependency list. | |||
.FAILED: | .FAILED: | |||
If this special target is present and an error occurred, smake exe | If this special target is present and an error occurred, smake | |||
cutes the commands instead of | executes the commands instead of | |||
the the commands of the .DONE target after all targets have bee | the the commands of the .DONE target after all targets have been p | |||
n processed. The .FAILED target | rocessed. The .FAILED target | |||
may not have a dependency list. | may not have a dependency list. | |||
.FORCE_SHELL: | .FORCE_SHELL: | |||
If this special target is present, smake executes all commands via the shell instead of trying to | If this special target is present, smake executes all commands vi a the shell instead of trying to | |||
optimize command execution for simple commands. | optimize command execution for simple commands. | |||
.GET_POSIX: | .GET_POSIX: | |||
Reserved for future use. | Reserved for future use. | |||
.IGNORE: | .IGNORE: | |||
Ignore errors. When this special target is present and has no | Ignore errors. When this special target is present and has no de | |||
dependencies, smake will ignore | pendencies, smake will ignore | |||
errors from commands. Specifying .IGNORE: without dependencies is | errors from commands. Specifying .IGNORE: without dependenci | |||
equivalent to using the -i | es is equivalent to using the -i | |||
option. If .IGNORE: has dependencies and the current target i | option. If .IGNORE: has dependencies and the current target is in | |||
s in the list of dependencies of | the list of dependencies of | |||
.IGNORE: the exit code for the related commands is ignored. | .IGNORE: the exit code for the related commands is ignored. | |||
.INCLUDE_FAILED: | .INCLUDE_FAILED: | |||
This special target implements automake features for object orient | This special target implements automake features for object orie | |||
ed layered makefiles. If this | nted layered makefiles. If this | |||
target is present, smake executes the commands for this target in | target is present and defines commands, smake executes the command | |||
case that a make file could not | s for this target in case that a | |||
be included and there was no other explicit or implicit rule that | makefile could not be included and there was no other explicit | |||
did create the the missing make | or implicit rule that did create | |||
include file. The .INCLUDE_FAILED target may not have a depende | the the missing make include file. | |||
ncy list. When the commands for | ||||
the target .INCLUDE_FAILED are called, the dependency list of the | The .INCLUDE_FAILED target may not have a dependency list. When | |||
special target is set up to the | the commands for the target | |||
include file name. The commands for the target .INCLUDE_FAILED | .INCLUDE_FAILED are called, the dependency list of the special | |||
are called for both, the include | target is set up to the include | |||
and the -include directive. If the commands for the .INCLUDE_FAILE | filename that caused the failure. It is therefore recommended to | |||
D target cannot create a file | define the commands for the | |||
that is going to be included, smake will fail in case that the inc | .INCLUDE_FAILED target to include $^ as parameter. The command | |||
lude directive was used. | s for the target .INCLUDE_FAILED | |||
are called only for the include and not for the -include directi | ||||
ve. If the commands for the | ||||
.INCLUDE_FAILED target cannot create a file that is going to be in | ||||
cluded, smake fails. | ||||
.INIT: If this target is present, the target and its dependencies are built before any other target is | .INIT: If this target is present, the target and its dependencies are built before any other target is | |||
made. | made. | |||
.KEEP_STATE: | .KEEP_STATE: | |||
Reserved by SunPRO make. Don't use this target to avoid problems w ith the SCHILY (Sing) makefile | Reserved by SunPRO make. Don't use this target to avoid problems w ith the SCHILY (Sing) makefile | |||
system. | system. | |||
.KEEP_STATE_FILE: | .KEEP_STATE_FILE: | |||
Reserved by SunPRO make. Don't use this target to avoid problems with the SCHILY (Sing) makefile | Reserved by SunPRO make. Don't use this target to avoid problems with the SCHILY (Sing) makefile | |||
skipping to change at line 1172 | skipping to change at line 1178 | |||
The download directory is: | The download directory is: | |||
http://sourceforge.net/projects/schilytools/files/ | http://sourceforge.net/projects/schilytools/files/ | |||
Check for the schily-*.tar.bz2 archives. | Check for the schily-*.tar.bz2 archives. | |||
Less frequently updated source code for the smake project is at: | Less frequently updated source code for the smake project is at: | |||
http://sourceforge.net/projects/s-make/files/ | http://sourceforge.net/projects/s-make/files/ | |||
Joerg Schilling 2021/08/13 SMAKE(1) | Joerg Schilling 2021/09/07 SMAKE(1) | |||
End of changes. 10 change blocks. | ||||
38 lines changed or deleted | 46 lines changed or added |