The following list of rules have been predefined in omake and are available unless you use the -r command-line flag or .REJECT_RULES directive.
Notice how the rules make use of macros. For example, the %.obj : %.c rule invokes the program $(CC) with the flags $(CFLAGS). In your makefile, set CFLAGS to the flags to be passed to the compiler.
C source to object file, using the Microsoft C/C++ compiler:
CC = cl | Windows NT |
%.obj : %.c | |
$(CC) $(CFLAGS) -c $(.SOURCE) |
C++ source to object file, using the Microsoft C/C++ compiler:
CPP = cl | Windows NT |
%.obj : %.cpp | |
$(CPP) $(CPPFLAGS) -c $(.SOURCE) |
Assembler source to object file, using Microsoft MASM:
AS = masm
.%.obj : %.asm
$(AS) $(AFLAGS) $(.SOURCE);
FORTRAN source to object file, using Lahey FORTRAN:
FC = f77l
%.obj : %.for
$(FC) $(.SOURCE) $(FFLAGS)
Resource compiler script to resource file, using the Microsoft Resource Compiler:
RC = rc
%.res : %.rc
$(RC) $(RCFLAGS) -r $(.SOURCE)
Update an executable, using Microsoft link32 for Windows NT:
LINK = link
%.exe :
$(LINK) -OUT:$(.TARGET) $(LINKFLAGS) $(.SOURCES) $(LINKLIBS)
Object file to executable, using the %.exe
rule:
%.exe : %.obj
%do %.exe
Update a library, using Microsoft lib for Windows NT:
IMPLIB = lib
%.lib :
%if ! %null(.NEWSOURCES)
% if %file(${.TARGET})
$(IMPLIB) -OUT:$(.TARGET) $(LIBFLAGS) $(.TARGET) $(.NEWSOURCES)
% else
$(IMPLIB) -OUT:$(.TARGET) $(LIBFLAGS) $(.NEWSOURCES)
% endif
%endif
The ccase-home-dir\builtins.cb and ccase-home-dir\builtins.nm files define the inference rules used by PM/CB and NMAKE, respectively. omake reads these files when PM/CB or NMAKE emulation is chosen; it searches for these files in the same manner in which it searches for the make.ini file (see Locating the Initialization File).
Feedback on the documentation in this site? We welcome any comments!
Copyright © 2001 by Rational Software Corporation. All rights reserved. |