Extension makefiles can be used where certain build steps are required that are not catered for by the generated makefiles. Extension makefiles are makefiles to be run by make.exe (the GCC make utility) or nmake.exe (the Microsoft make utility). They must contain certain make targets. During build activities, abld will call the target corresponding to the build activity that is being carried out. This will then execute whatever commands your makefile specifies for that target.
The following table lists the required make targets:
Target |
Corresponding abld command |
makmake |
makefile |
freeze |
freeze |
lib |
library |
cleanlib |
tidy |
clean |
clean |
final |
final. This target is provided specifically to allow extension makefiles to execute final commands. |
resource |
resource |
bld |
target |
savespace |
target -savespace |
releasables |
target [-what | -check] |
All targets must be provided in an extension makefile. This should be done even if no commands are listed with a particular target, for the following two reasons:
The target will be called, during the build, whether commands are listed or not
nmake.exe /make.exe will generate an error if the target cannot be found.
An example of a simple extension makefile is given below:
MAKMAKE : echo this is an example FINAL FREEZE LIB CLEANLIB RESOURCE RELEASABLES CLEAN BLD SAVESPACE :
This prints this is an example to the console at the makefile construction stage of an abld, and does nothing for the other targets.
Note that:
If different commands are required for the same target for different platforms, special nmake.exe /make.exe syntax can be used in conjunction with the $(PLATFORM) and $(CFG) macros that abld defines to carry out the different commands.
$(CFG) is defined as UDEB or UREL. $(PLATFORM) is WINS, ARMI, etc.
For example, the following nmake makefile prints ARMI MAKEMAKE COMMAND at the makefile stage for the ARMI target, or NOT ARMI BUILD for any other platform:
!IF "$(PLATFORM)" == "ARMI" MAKMAKE: echo ARMI MAKEMAKE COMMAND !ELSE MAKMAKE: echo NOT ARMI BUILD !ENDIF FINAL FREEZE LIB CLEANLIB RESOURCE RELEASABLES CLEAN BLD SAVESPACE :