2021-10-11 18:37:13 -03:00

210 lines
5.2 KiB
C

#ifndef lint
static char sccsid[] = "@(#)rules.c 1.1 94/10/31 SMI"; /* from S5R2 1.2 03/28/83 */
#endif
#include "defs"
/* DEFAULT RULES FOR UNIX */
/*
* These are the internal rules that "make" trucks around with it at
* all times. One could completely delete this entire list and just
* conventionally define a global "include" makefile which had these
* rules in it. That would make the rules dynamically changeable
* without recompiling make. This file may be modified to local
* needs. There are currently two versions of this file with the
* source; namely, rules.c (which is the version running in Columbus)
* and pwbrules.c which is my attempt at satisfying the requirements
* of PWB systems.
* The makefile for make (make.mk) is parameterized for a different
* rules file. The macro $(RULES) defined in "make.mk" can be set
* to another file and when "make" is "made" the procedure will
* use the new file. The recommended way to do this is on the
* command line as follows:
* "make -f make.mk RULES=pwbrules"
*/
CHARSTAR builtin[] =
{
".SUFFIXES: .o .c .c~ .mod .mod~ .sym .def .def~ .p .p~ .f .f~ .F .F~ .r .r~ .y .y~ .l .l~ .s .s~ .sh .sh~ .h .h~",
/* PRESET VARIABLES */
"MAKE=make",
"YACC=yacc",
"YFLAGS=",
"LEX=lex",
"LFLAGS=",
"LD=ld",
"LDFLAGS=",
"CC=cc",
"CFLAGS=",
"PC=pc",
"PFLAGS=",
"M2C=m2c",
"M2FLAGS=",
"FC=f77",
"FFLAGS=",
"RFLAGS=",
"AS=as",
"ASFLAGS=",
"GET=/usr/sccs/get",
"GFLAGS=",
/* SINGLE SUFFIX RULES */
".c:",
"\t$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@",
".c~:",
"\t$(GET) -G$*.c $(GFLAGS) $<",
"\t$(CC) $(CFLAGS) $(LDFLAGS) $*.c -o $*",
".p:",
"\t$(PC) $(PFLAGS) $(LDFLAGS) $< -o $@",
".p~:",
"\t$(GET) -G$*.p $(GFLAGS) $<",
"\t$(PC) $(PFLAGS) $(LDFLAGS) $*.p -o $*",
".mod:",
"\t$(M2C) $(M2FLAGS) $(LDFLAGS) $< -e $@ -o $@",
".mod~:",
"\t$(GET) -G$*.mod $(GFLAGS) $<",
"\t$(M2C) $(M2FLAGS) $(LDFLAGS) $*.mod -e $* -o $*",
".f:",
"\t$(FC) $(FFLAGS) $(LDFLAGS) $< -o $@",
".f~:",
"\t$(GET) -G$*.f $(GFLAGS) $<",
"\t$(FC) $(FFLAGS) $(LDFLAGS) $*.f -o $*",
".F:",
"\t$(FC) $(FFLAGS) $(LDFLAGS) $< -o $@",
".F~:",
"\t$(GET) -G$*.F $(GFLAGS) $<",
"\t$(FC) $(FFLAGS) $(LDFLAGS) $*.F -o $*",
".r:",
"\t$(FC) $(RFLAGS) $(FFLAGS) $(LDFLAGS) $< -o $@",
".r~:",
"\t$(GET) -G$*.r $(GFLAGS) $<",
"\t$(FC) $(RFLAGS) $(FFLAGS) $(LDFLAGS) $*.r -o $*",
".sh:",
"\tcat $< >$@; chmod +x $@",
".sh~:",
"\t$(GET) -G$*.sh $(GFLAGS) $<",
"\tcat $*.sh >$*; chmod +x $@",
/* DOUBLE SUFFIX RULES */
".c.o:",
"\t$(CC) $(CFLAGS) -c $<",
".c~.o:",
"\t$(GET) -G$*.c $(GFLAGS) $<",
"\t$(CC) $(CFLAGS) -c $*.c",
".c~.c:",
"\t$(GET) -G$*.c $(GFLAGS) $<",
".p.o:",
"\t$(PC) $(PFLAGS) -c $<",
".p~.o:",
"\t$(GET) -G$*.p $(GFLAGS) $<",
"\t$(PC) $(PFLAGS) -c $*.p",
".p~.p:",
"\t$(GET) -G$*.p $(GFLAGS) $<",
".mod.o:",
"\t$(M2C) $(M2FLAGS) $<",
".mod~.o:",
"\t$(GET) -G$*.mod $(GFLAGS) $<",
"\t$(M2C) $(M2FLAGS) $*.mod",
".mod~.mod:",
"\t$(GET) -G$*.mod $(GFLAGS) $<",
".def.sym:",
"\t$(M2C) $(M2FLAGS) $<",
".def~.sym:",
"\t$(GET) -G$*.def $(GFLAGS) $<",
"\t$(M2C) $(M2FLAGS) $*.def",
".def~.def:",
"\t$(GET) -G$*.def $(GFLAGS) $<",
".f.o:",
"\t$(FC) $(FFLAGS) -c $<",
".f~.o:",
"\t$(GET) -G$*.f $(GFLAGS) $<",
"\t$(FC) $(FFLAGS) -c $*.f",
".f~.f:",
"\t$(GET) -G$*.f $(GFLAGS) $<",
".F.o:",
"\t$(FC) $(FFLAGS) -c $<",
".F~.o:",
"\t$(GET) -G$*.F $(GFLAGS) $<",
"\t$(FC) $(FFLAGS) -c $*.F",
".F~.F:",
"\t$(GET) -G$*.F $(GFLAGS) $<",
".r.o:",
"\t$(FC) $(RFLAGS) $(FFLAGS) -c $<",
".r~.o:",
"\t$(GET) -G$*.r $(GFLAGS) $<",
"\t$(FC) $(RFLAGS) $(FFLAGS) -c $*.r",
".r~.r:",
"\t$(GET) -G$*.r $(GFLAGS) $<",
".s.o:",
"\t$(AS) $(ASFLAGS) -o $@ $<",
".s~.o:",
"\t$(GET) -G$*.s $(GFLAGS) $<",
"\t$(AS) $(ASFLAGS) -o $*.o $*.s",
".s~.s:",
"\t$(GET) -G$*.s $(GFLAGS) $<",
".sh~.sh:",
"\t$(GET) -G$*.sh $(GFLAGS) $<",
".y.o:",
"\t$(YACC) $(YFLAGS) $<",
"\t$(CC) $(CFLAGS) -c y.tab.c",
"\trm y.tab.c",
"\tmv y.tab.o $@",
".y~.o:",
"\t$(GET) -G$*.y $(GFLAGS) $<",
"\t$(YACC) $(YFLAGS) $*.y",
"\t$(CC) $(CFLAGS) -c y.tab.c",
"\trm -f y.tab.c",
"\tmv y.tab.o $*.o",
".l.o:",
"\t$(LEX) $(LFLAGS) $<",
"\t$(CC) $(CFLAGS) -c lex.yy.c",
"\trm lex.yy.c",
"\tmv lex.yy.o $@",
".l~.o:",
"\t$(GET) -G$*.l $(GFLAGS) $<",
"\t$(LEX) $(LFLAGS) $*.l",
"\t$(CC) $(CFLAGS) -c lex.yy.c",
"\trm -f lex.yy.c",
"\tmv lex.yy.o $*.o",
".y.c :",
"\t$(YACC) $(YFLAGS) $<",
"\tmv y.tab.c $@",
".y~.c :",
"\t$(GET) -G$*.y $(GFLAGS) $<",
"\t$(YACC) $(YFLAGS) $*.y",
"\tmv y.tab.c $*.c",
".y~.y:",
"\t$(GET) -G$*.y $(GFLAGS) $<",
".l.c :",
"\t$(LEX) $(LFLAGS) $<",
"\tmv lex.yy.c $@",
".l~.c :",
"\t$(GET) -G$*.l $(GFLAGS) $<",
"\t$(LEX) $(LFLAGS) $*.l",
"\tmv lex.yy.c $*.c",
".l~.l:",
"\t$(GET) -G$*.l $(GFLAGS) $<",
".c.a:",
"\t$(CC) -c $(CFLAGS) $<",
"\tar rv $@ $*.o",
"\trm -f $*.o",
".c~.a:",
"\t$(GET) -G$*.c $(GFLAGS) $<",
"\t$(CC) -c $(CFLAGS) $*.c",
"\tar rv $@ $*.o",
"\trm -f $*.o",
".s~.a:",
"\t$(GET) -G$*.s $(GFLAGS) $<",
"\t$(AS) $(ASFLAGS) -o $*.o $*.s",
"\tar rv $@ $*.o",
"\t-rm -f $*.o",
".h~.h:",
"\t$(GET) -G$*.h $(GFLAGS) $<",
"markfile.o: markfile",
"\tA=@;echo \"static char _sccsid[] = \\042`grep $$A'(#)' markfile`\\042;\" > markfile.c",
"\tcc -c markfile.c",
"\trm -f markfile.c",
0 };