31 lines
923 B
Modula-2
31 lines
923 B
Modula-2
/*
|
|
Rules to have a much cleaner compilation output
|
|
|
|
derived from Imake.rules
|
|
*/
|
|
|
|
#define RemoveFileQuiet(file) @$(RM) -f file \&>/dev/null
|
|
|
|
#define RunPrintIfFailed(cmd) @cmd || { echo failed command: cmd; exit 1; }
|
|
|
|
#define ObjectCompile(options) RemoveFileQuiet($@) @@\
|
|
ClearmakeOSName \
|
|
@echo \ \ CC $*.c @@\
|
|
RunPrintIfFailed($(CC) -c $(CFLAGS) options $*.c)
|
|
|
|
#define NormalLibraryTarget(libname,objlist) @@\
|
|
AllTarget(LibraryTargetName(libname)) @@\
|
|
@@\
|
|
LibraryTargetName(libname): objlist $(EXTRALIBRARYDEPS) @@\
|
|
@echo \ \ CCLD $@ @@\
|
|
RemoveFileQuiet($@) @@\
|
|
RunPrintIfFailed(MakeLibrary($@,objlist)) @@\
|
|
RunPrintIfFailed(RanLibrary($@)) @@\
|
|
RunPrintIfFailed(_LinkBuildLibrary($@))
|
|
|
|
#define DependTarget() @@\
|
|
DependDependency() @@\
|
|
@@\
|
|
depend:: @@\
|
|
RunPrintIfFailed($(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS))
|