sys.mk revision 34829
1193323Sed# from: @(#)sys.mk 8.2 (Berkeley) 3/21/94 2193323Sed# $Id: sys.mk,v 1.29 1998/02/20 15:27:03 bde Exp $ 3193323Sed 4193323Sedunix ?= We run FreeBSD, not UNIX. 5193323Sed 6193323Sed# If the special target .POSIX appears (without prerequisites or 7193323Sed# commands) before the first noncomment line in the makefile, make shall 8193323Sed# process the makefile as specified by the Posix 1003.2 specification. 9193323Sed# make(1) sets the special macro %POSIX in this case (to the actual 10193323Sed# value "1003.2", for what it's worth). 11193323Sed# 12193323Sed# The rules below use this macro to distinguish between Posix-compliant 13193323Sed# and default behaviour. 14193323Sed 15193323Sed.if defined(%POSIX) 16193323Sed.SUFFIXES: .o .c .y .l .a .sh .f 17193323Sed.else 18193323Sed.SUFFIXES: .out .a .ln .o .c .cc .cxx .C .F .f .e .r .y .l .S .s .cl .p .h .sh 19193323Sed.endif 20193323Sed 21193323Sed.LIBS: .a 22193323Sed 23193323SedX11BASE ?= /usr/X11R6 24193323Sed 25193323SedAR ?= ar 26193323Sed.if defined(%POSIX) 27193323SedARFLAGS ?= -rv 28193323Sed.else 29193323SedARFLAGS ?= rl 30193323Sed.endif 31193323SedRANLIB ?= ranlib 32193323Sed 33193323SedAS ?= as 34193323SedAFLAGS ?= 35193323Sed 36193323Sed.if defined(%POSIX) 37193323SedCC ?= c89 38193323Sed.else 39193323SedCC ?= cc 40193323Sed.endif 41193323SedCFLAGS ?= -O 42193323Sed 43193323SedCXX ?= c++ 44193323SedCXXFLAGS ?= ${CXXINCLUDES} ${CFLAGS} 45193323Sed 46193323SedCPP ?= cpp 47193323Sed 48193323Sed.if ${.MAKEFLAGS:M-s} == "" 49193323SedECHO ?= echo 50193323SedECHODIR ?= echo 51193323Sed.else 52193323SedECHO ?= true 53193323Sed.if ${.MAKEFLAGS:M-s} == "-s" 54193323SedECHODIR ?= echo 55193323Sed.else 56193323SedECHODIR ?= true 57193323Sed.endif 58193323Sed.endif 59193323Sed 60193323Sed.if defined(%POSIX) 61193323SedFC ?= fort77 62193323SedFFLAGS ?= -O 1 63193323Sed.else 64193323SedFC ?= f77 65193323SedFFLAGS ?= -O 66193323Sed.endif 67193323SedEFLAGS ?= 68193323Sed 69193323SedINSTALL ?= install 70193323Sed 71193323SedLEX ?= lex 72193323SedLFLAGS ?= 73193323Sed 74193323SedLD ?= ld 75193323SedLDFLAGS ?= 76193323Sed 77193323SedLINT ?= lint 78193323SedLINTFLAGS ?= -chapbx 79193323Sed 80193323SedMAKE ?= make 81193323Sed 82193323SedPC ?= pc 83193323SedPFLAGS ?= 84193323Sed 85193323SedRC ?= f77 86193323SedRFLAGS ?= 87193323Sed 88193323SedSHELL ?= sh 89193323Sed 90193323SedYACC ?= yacc 91193323Sed.if defined(%POSIX) 92193323SedYFLAGS ?= 93193323Sed.else 94193323SedYFLAGS ?= -d 95193323Sed.endif 96193323Sed 97193323Sed# FreeBSD/i386 as traditionally been built with a version of make 98193323Sed# which knows MACHINE, but not MACHINE_ARCH. When building on other 99193323Sed# architectures, assume that the version of make being used has an 100193323Sed# explicit MACHINE_ARCH setting and treat a missing MACHINE_ARCH 101193323Sed# as an i386 architecture. 102193323SedMACHINE_ARCH?= i386 103193323Sed 104193323Sed# Default executable format 105193323Sed.if ${MACHINE_ARCH} == "alpha" 106193323SedBINFORMAT ?= elf 107193323Sed.else 108193323SedBINFORMAT ?= aout 109193323Sed.endif 110193323Sed 111193323Sed# For tags rule. 112193323SedGTAGSFLAGS= -o 113193323SedHTAGSFLAGS= 114193323Sed 115193323Sed.if defined(%POSIX) 116193323Sed# Posix 1003.2 mandated rules 117193323Sed# 118193323Sed# Quoted directly from the Posix 1003.2 draft, only the macros 119193323Sed# $@, $< and $* have been replaced by ${.TARGET}, ${.IMPSRC}, and 120193323Sed# ${.PREFIX}, resp. 121193323Sed 122193323Sed# SINGLE SUFFIX RULES 123193323Sed.c: 124193323Sed ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC} 125193323Sed 126193323Sed.f: 127193323Sed ${FC} ${FFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC} 128193323Sed 129193323Sed.sh: 130193323Sed cp ${.IMPSRC} ${.TARGET} 131193323Sed chmod a+x ${.TARGET} 132193323Sed 133193323Sed# DOUBLE SUFFIX RULES 134193323Sed 135193323Sed.c.o: 136193323Sed ${CC} ${CFLAGS} -c ${.IMPSRC} 137193323Sed 138193323Sed.f.o: 139193323Sed ${FC} ${FFLAGS} -c ${.IMPSRC} 140193323Sed 141193323Sed.y.o: 142193323Sed ${YACC} ${YFLAGS} ${.IMPSRC} 143193323Sed ${CC} ${CFLAGS} -c y.tab.c 144193323Sed rm -f y.tab.c 145193323Sed mv y.tab.o ${.TARGET} 146193323Sed 147193323Sed.l.o: 148193323Sed ${LEX} ${LFLAGS} ${.IMPSRC} 149193323Sed ${CC} ${CFLAGS} -c lex.yy.c 150193323Sed rm -f lex.yy.c 151193323Sed mv lex.yy.o ${.TARGET} 152193323Sed 153193323Sed.y.c: 154193323Sed ${YACC} ${YFLAGS} ${.IMPSRC} 155193323Sed mv y.tab.c ${.TARGET} 156193323Sed 157193323Sed.l.c: 158193323Sed ${LEX} ${LFLAGS} ${.IMPSRC} 159193323Sed mv lex.yy.c ${.TARGET} 160193323Sed 161193323Sed.c.a: 162193323Sed ${CC} ${CFLAGS} -c ${.IMPSRC} 163193323Sed ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 164193323Sed rm -f ${.PREFIX}.o 165193323Sed 166193323Sed.f.a: 167193323Sed ${FC} ${FFLAGS} -c ${.IMPSRC} 168193323Sed ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 169193323Sed rm -f ${.PREFIX}.o 170193323Sed 171193323Sed.else 172193323Sed 173193323Sed# non-Posix rule set 174193323Sed 175193323Sed.c: 176193323Sed ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} 177193323Sed 178193323Sed.sh: 179193323Sed cp -p ${.IMPSRC} ${.TARGET} 180193323Sed chmod a+x ${.TARGET} 181193323Sed 182193323Sed.c.o: 183193323Sed ${CC} ${CFLAGS} -c ${.IMPSRC} 184193323Sed 185193323Sed.cc.o .cxx.o .C.o: 186193323Sed ${CXX} ${CXXFLAGS} -c ${.IMPSRC} 187193323Sed 188193323Sed.p.o: 189193323Sed ${PC} ${PFLAGS} -c ${.IMPSRC} 190193323Sed 191193323Sed.e.o .r.o .F.o .f.o: 192193323Sed ${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} -c ${.IMPSRC} 193193323Sed 194193323Sed.S.o: 195193323Sed ${CC} ${CFLAGS} -c ${.IMPSRC} 196193323Sed 197193323Sed.s.o: 198193323Sed ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} 199193323Sed 200193323Sed# XXX not -j safe 201193323Sed.y.o: 202193323Sed ${YACC} ${YFLAGS} ${.IMPSRC} 203193323Sed ${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET} 204193323Sed rm -f y.tab.c 205193323Sed 206193323Sed.l.o: 207193323Sed ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c 208193323Sed ${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET} 209193323Sed rm -f ${.PREFIX}.tmp.c 210193323Sed 211193323Sed# XXX not -j safe 212193323Sed.y.c: 213193323Sed ${YACC} ${YFLAGS} ${.IMPSRC} 214193323Sed mv y.tab.c ${.TARGET} 215193323Sed 216193323Sed.l.c: 217193323Sed ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.TARGET} 218193323Sed 219193323Sed.s.out .c.out .o.out: 220193323Sed ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} 221193323Sed 222193323Sed.f.out .F.out .r.out .e.out: 223193323Sed ${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \ 224193323Sed ${LDLIBS} -o ${.TARGET} 225193323Sed rm -f ${.PREFIX}.o 226193323Sed 227193323Sed# XXX not -j safe 228193323Sed.y.out: 229193323Sed ${YACC} ${YFLAGS} ${.IMPSRC} 230193323Sed ${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET} 231193323Sed rm -f y.tab.c 232193323Sed 233193323Sed.l.out: 234193323Sed ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c 235193323Sed ${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET} 236193323Sed rm -f ${.PREFIX}.tmp.c 237193323Sed 238193323Sed.endif 239193323Sed 240193323Sed.include <bsd.own.mk> 241193323Sed 242193323Sed.if exists(/etc/make.conf) 243193323Sed.include </etc/make.conf> 244193323Sed.endif 245193323Sed