/* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */ /* Copyright (c) 1988 AT&T */ /* All Rights Reserved */ /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */ /* UNIX System Laboratories, Inc. */ /* The copyright notice above does not evidence any */ /* actual or intended publication of such source code. */ #ident "$Revision: 1.23 $" /* 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. */ char *builtin[] = { /* * These should be ordered by frequency of use as much as possible */ ".SUFFIXES: .o .c .cxx .c++ .s .sh .h .f .f90 .F .F90 .y .Y .yxx .l .L .lxx .C \ .out .u .p .e .r .i \ .c~ .s~ .sh~ .h~ .f~ .f90~ .F~ .F90~ .y~ .Y~ .yxx~ .l~ .L~ .lxx~ \ .C~ .c++~ .cxx~ .p~ .e~ .r~ \ .c,v .s,v .sh,v .h,v .f,v .y,v .Y,v .yxx,v .l,v .L,v .lxx,v \ .C,v .c++,v .cxx,v .p,v .e,v .r,v", /* PRESET VARIABLES */ "MAKE=make", "BUILD=build", "AR=ar", "ARFLAGS=-rlc", "AS=as", "ASFLAGS=", "CC=cc", "CFLAGS=-O", "F77=f77", "FFLAGS=-O", "F90=f90", "F90FLAGS=-O", "GET=get", "GFLAGS=", "LD=ld", "LDFLAGS=", "LEX=lex", "LFLAGS=", "YACC=yacc", "YFLAGS=", "C++=CC", "C++C=CC", "C++FLAGS=-O", /* * bourne shells don't grok env variables with '+'s * so we changed to CXX - for backward compatibility we define * CXX? in terms of C++FLAGS */ "CXX=$(C++)", "CXXFLAGS=$(C++FLAGS)", "LOADLIBS=", "INSTALL=install", "PC=pc", "PFLAGS=-O", "EFLAGS=", "RFLAGS=", "FC=f77", "F90C=f90", "F2CFLAGS=", "EXTCENTRY=extcentry", "MKF2C=mkf2c", "CO=co", "COFLAGS=", "CI=co", "CIFLAGS=", "SCCSFLAGS=", "SCCSGETFLAGS=", /* XPG4 */ /* SINGLE SUFFIX RULES */ ".c:", "\t$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)", ".c~:", "\t$(GET) $(GFLAGS) -p $< > $*.c", /* XPG4 */ "\t$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $*.c", /* XPG4 */ "\t-rm -f $*.c", ".c++ .C .cxx:", "\t$(CXX) $(CXXFLAGS) $< $(LDFLAGS) -o $@", ".c++~:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) $(*F).c++ $(LDFLAGS) -o $*", "\t-rm -f $(*F).c++", ".C~:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) $(*F).C $(LDFLAGS) -o $*", "\t-rm -f $(*F).C", ".cxx~:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) $(*F).cxx $(LDFLAGS) -o $*", "\t-rm -f $(*F).cxx", ".p:", "\t$(PC) $(PFLAGS) $< $(LDFLAGS) -o $@", ".p~:", "\t$(GET) $(GFLAGS) $<", "\t$(PC) $(PFLAGS) $(*F).p $(LDFLAGS) -o $*", "\t-rm -f $(*F).p", ".f:", "\t$(F77) $(FFLAGS) -o $@ $< $(LDFLAGS)", ".f~:", "\t$(GET) $(GFLAGS) -p $< > $*.f", /* XPG4 */ "\t$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $(*F).f", /* XPG4 */ /* "\t-rm -f $(*F).f", */ /* XPG4 */ ".F:", "\t$(F90) $(F90FLAGS) -o $@ $< $(LDFLAGS)", ".F~:", "\t$(GET) $(GFLAGS) -p $< > $*.F", /* XPG4 */ "\t$(FC) $(F90FLAGS) $(LDFLAGS) -o $@ $(*F).F", /* XPG4 */ /* "\t-rm -f $(*F).F", */ /* XPG4 */ ".f90:", "\t$(F90) $(F90FLAGS) -o $@ $< $(LDFLAGS)", ".f90~:", "\t$(GET) $(GFLAGS) -p $< > $*.f90", /* XPG4 */ "\t$(FC) $(F90FLAGS) $(LDFLAGS) -o $@ $(*F).f90", /* XPG4 */ /* "\t-rm -f $(*F).f90", */ /* XPG4 */ ".F90:", "\t$(F90) $(F90FLAGS) -o $@ $< $(LDFLAGS)", ".F90~:", "\t$(GET) $(GFLAGS) -p $< > $*.F90", /* XPG4 */ "\t$(FC) $(F90FLAGS) $(LDFLAGS) -o $@ $(*F).F90", /* XPG4 */ /* "\t-rm -f $(*F).F90", */ /* XPG4 */ ".s:", "\t$(AS) $(ASFLAGS) -o $*.o $<", "\t$(CC) -o $@ $*.o $(LDFLAGS)", "\t-rm -f $*.o", ".s~:", "\t$(GET) $(GFLAGS) $<", "\t$(AS) $(ASFLAGS) -o $*.o $(*F).s", "\t$(CC) -o $* $*.o $(LDFLAGS)", "\t-rm -f $(*F).s $*.o", ".sh:", "\trm -f $@; cp $< $@; chmod a+x,u+w $@", ".sh~:", "\t$(GET) $(GFLAGS) -p $< > $*.sh", /* XPG4 */ "\trm -f $@; cp $*.sh $@; chmod a+x,u+w $@", /* "\t-rm -f $(*F).sh", */ /* XPG4 */ /* DOUBLE SUFFIX RULES */ ".c,v.c .s,v.s .sh,v.sh .h,v.h .f,v.f .C,v.C .Y,v.Y .L,v.L \ .f90,v.f90 .F,v.F .F90,v.F90 \ .c++,v.c++ .p,v.p .cxx,v.cxx .yxx,v.yxx .lxx,v.lxx .e,v.e .r,v.r:", "\t$(CO) $(COFLAGS) $< $@", ".c~.c .f~.f .C~.C .c++~.c++ .cxx~.cxx .p~.p .s~.s .h~.h .Y~.Y \ .f90~.f90 .F~.F .F90~.F90 \ .L~.L .sh~.sh .yxx~.yxx .lxx~.lxx .e~.e .r~.r:", "\t$(GET) $(GFLAGS) $<", ".c.a:", "\t$(CC) $(CFLAGS) -c $<", "\t$(AR) $(ARFLAGS) $@ $( $*.c", /* XPG4 */ "\t$(CC) $(CFLAGS) -c $(*F).c", "\t-rm -f $(*F).c", ".c~.u:", "\t$(GET) $(GFLAGS) $<", "\t$(CC) $(CFLAGS) -j $(*F).c", "\t-rm -f $(*F).c", ".f.a:", "\t$(F77) $(FFLAGS) -c $*.f", "\t$(AR) $(ARFLAGS) $@ $( $*.i", ".c~.i:", "\t$(GET) $(GFLAGS) $<", "\t$(CC) $(CFLAGS) -E $(*F).c > $*.i", "\t-rm -f $(*F).c", ".C.s .cxx.s .c++.s:", "\t$(CXX) $(CXXFLAGS) -S $<", ".C~.s:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -S $(*F).C", "\t-rm -f $(*F).C", ".cxx~.s:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -S $(*F).cxx", "\t-rm -f $(*F).cxx", ".c++~.s:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -S $(*F).c++", "\t-rm -f $(*F).c++", ".C.i .cxx.i .c++.i:", "\t$(CXX) $(CXXFLAGS) -E $< > $*.i", ".C~.i:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -E $(*F).C > $*.i", "\t-rm -f $(*F).C", ".cxx~.i:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -E $(*F).cxx > $*.i", "\t-rm -f $(*F).cxx", ".c++~.i:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -E $(*F).c++ > $*.i", "\t-rm -f $(*F).c++", /* * .u (-O3) rules for archives */ ".c.b:", "\t$(CC) -j $(CFLAGS) $<", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u", ".c~.b:", "\t$(GET) $(GFLAGS) $<", "\t$(CC) $(CFLAGS) -j $(*F).c", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).[cu]", ".f.b:", "\t$(F77) $(FFLAGS) -j $<", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u", ".f~.b:", "\t$(GET) $(GFLAGS) $<", "\t$(F77) $(FFLAGS) -j $(*F).f", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).[fu]", ".C.b .c++.b .cxx.b:", "\t$(CXX) $(CXXFLAGS) -j $<", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u", ".C~.b:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -j $(*F).C", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u $(*F).C", ".c++~.b:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -j $(*F).c++", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u $(*F).c++", ".cxx~.b:", "\t$(GET) $(GFLAGS) $<", "\t$(CXX) $(CXXFLAGS) -j $(*F).cxx", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u $(*F).cxx", ".p.b:", "\t$(PC) $(PFLAGS) -j $<", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).u", ".p~.b:", "\t$(GET) $(GFLAGS) $<", "\t$(PC) $(PFLAGS) -j $(*F).p", "\t$(AR) $(ARFLAGS) $@ $(*F).u", "\t-rm -f $(*F).[pu]", "markfile.o: markfile", "\tA=@;echo \"static char _sccsid[] = \\042`grep $$A'(#)' markfile`\\042;\" > markfile.c", "\t$(CC) -c markfile.c", "\t-rm -f markfile.c", /* 4.2bsd .x.out: rules (no .x~.out: rules added at this time) */ ".l.out:", "\t$(LEX) $(LFLAGS) $<", "\t$(CC) $(CFLAGS) lex.yy.c $(LOADLIBES) -ll -o $@", "\trm lex.yy.c", ".y.out:", "\t$(YACC) $(YFLAGS) $<", "\t$(CC) $(CFLAGS) y.tab.c $(LOADLIBES) -ly -o $@", "\trm y.tab.c", ".e.out .r.out .f.out:", "\t$(FC) $(EFLAGS) $(RFLAGS) $(FFLAGS) $< $(LOADLIBES) -o $@", "\t-rm $*.o", ".o.out .c.out .s.out:", "\t$(CC) $(CFLAGS) $< $(LOADLIBES) -o $@", ".C.out .cxx.out .c++.out:", "\t$(CXX) $(CXXFLAGS) $< $(LOADLIBES) -o $@", /* 4.2bsd .x.o: rules. An .x~.o: has been added for each. */ ".r.o .e.o:", "\t$(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<", ".r~.o:", "\t$(GET) $(GFLAGS) $<", "\t$(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $(*F).r", "\t-rm -f $(*F).r", ".e~.o:", "\t$(GET) $(GFLAGS) $<", "\t$(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $(*F).e", "\t-rm -f $(*F).e", ".f90.out .F90.out .F.out:", "\t$(F90C) $(F90FLAGS) $< $(LOADLIBES) -o $@", "\t-rm $*.o", 0 };