1*6eef5f0cSAntonio Huete Jimenez# $Id: posix.mk,v 1.2 2022/03/25 23:55:37 sjg Exp $ 2*6eef5f0cSAntonio Huete Jimenez# 3*6eef5f0cSAntonio Huete Jimenez# @(#) Copyright (c) 2022, Simon J. Gerraty 4*6eef5f0cSAntonio Huete Jimenez# 5*6eef5f0cSAntonio Huete Jimenez# This file is provided in the hope that it will 6*6eef5f0cSAntonio Huete Jimenez# be of use. There is absolutely NO WARRANTY. 7*6eef5f0cSAntonio Huete Jimenez# Permission to copy, redistribute or otherwise 8*6eef5f0cSAntonio Huete Jimenez# use this file is hereby granted provided that 9*6eef5f0cSAntonio Huete Jimenez# the above copyright notice and this notice are 10*6eef5f0cSAntonio Huete Jimenez# left intact. 11*6eef5f0cSAntonio Huete Jimenez# 12*6eef5f0cSAntonio Huete Jimenez# Please send copies of changes and bug-fixes to: 13*6eef5f0cSAntonio Huete Jimenez# sjg@crufty.net 14*6eef5f0cSAntonio Huete Jimenez# 15*6eef5f0cSAntonio Huete Jimenez 16*6eef5f0cSAntonio Huete Jimenez# The minimal set of rules required by POSIX 17*6eef5f0cSAntonio Huete Jimenez 18*6eef5f0cSAntonio Huete Jimenez.if !defined(%POSIX) 19*6eef5f0cSAntonio Huete Jimenez.error ${.newline}Do not inlcude this directly, put .POSIX: at start of Makefile 20*6eef5f0cSAntonio Huete Jimenez.endif 21*6eef5f0cSAntonio Huete Jimenez 22*6eef5f0cSAntonio Huete Jimenez.if ${.MAKEFLAGS:M-r} == "" 23*6eef5f0cSAntonio Huete Jimenez# undo some work done by sys.mk 24*6eef5f0cSAntonio Huete Jimenez.SUFFIXES: 25*6eef5f0cSAntonio Huete Jimenez.undef ARFLAGS 26*6eef5f0cSAntonio Huete Jimenez.undef CC CFLAGS 27*6eef5f0cSAntonio Huete Jimenez.undef FC FFLAGS 28*6eef5f0cSAntonio Huete Jimenez.undef LDFLAGS LFLAGS 29*6eef5f0cSAntonio Huete Jimenez.undef RANLIBFLAGS 30*6eef5f0cSAntonio Huete Jimenez.undef YFLAGS 31*6eef5f0cSAntonio Huete Jimenez.endif 32*6eef5f0cSAntonio Huete Jimenez 33*6eef5f0cSAntonio Huete Jimenez.SUFFIXES: .o .c .y .l .a .sh .f 34*6eef5f0cSAntonio Huete Jimenez 35*6eef5f0cSAntonio Huete Jimenez# these can still be set via environment 36*6eef5f0cSAntonio Huete JimenezAR ?= ar 37*6eef5f0cSAntonio Huete JimenezARFLAGS ?= -rv 38*6eef5f0cSAntonio Huete JimenezCC ?= c99 39*6eef5f0cSAntonio Huete JimenezCFLAGS ?= -O 40*6eef5f0cSAntonio Huete JimenezFC ?= fort77 41*6eef5f0cSAntonio Huete JimenezFFLAGS ?= -O 1 42*6eef5f0cSAntonio Huete JimenezLDFLAGS ?= 43*6eef5f0cSAntonio Huete JimenezLEX ?= lex 44*6eef5f0cSAntonio Huete JimenezLFLAGS ?= 45*6eef5f0cSAntonio Huete JimenezRANLIBFLAGS ?= -D 46*6eef5f0cSAntonio Huete JimenezYACC ?= yacc 47*6eef5f0cSAntonio Huete JimenezYFLAGS ?= 48*6eef5f0cSAntonio Huete Jimenez 49*6eef5f0cSAntonio Huete Jimenez.c: 50*6eef5f0cSAntonio Huete Jimenez ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $< 51*6eef5f0cSAntonio Huete Jimenez 52*6eef5f0cSAntonio Huete Jimenez 53*6eef5f0cSAntonio Huete Jimenez.f: 54*6eef5f0cSAntonio Huete Jimenez ${FC} ${FFLAGS} ${LDFLAGS} -o $@ $< 55*6eef5f0cSAntonio Huete Jimenez 56*6eef5f0cSAntonio Huete Jimenez 57*6eef5f0cSAntonio Huete Jimenez.sh: 58*6eef5f0cSAntonio Huete Jimenez cp $< $@ 59*6eef5f0cSAntonio Huete Jimenez chmod a+x $@ 60*6eef5f0cSAntonio Huete Jimenez 61*6eef5f0cSAntonio Huete Jimenez 62*6eef5f0cSAntonio Huete Jimenez.c.o: 63*6eef5f0cSAntonio Huete Jimenez ${CC} ${CFLAGS} -c $< 64*6eef5f0cSAntonio Huete Jimenez 65*6eef5f0cSAntonio Huete Jimenez 66*6eef5f0cSAntonio Huete Jimenez.f.o: 67*6eef5f0cSAntonio Huete Jimenez ${FC} ${FFLAGS} -c $< 68*6eef5f0cSAntonio Huete Jimenez 69*6eef5f0cSAntonio Huete Jimenez 70*6eef5f0cSAntonio Huete Jimenez.y.o: 71*6eef5f0cSAntonio Huete Jimenez ${YACC} ${YFLAGS} $< 72*6eef5f0cSAntonio Huete Jimenez ${CC} ${CFLAGS} -c y.tab.c 73*6eef5f0cSAntonio Huete Jimenez rm -f y.tab.c 74*6eef5f0cSAntonio Huete Jimenez mv y.tab.o $@ 75*6eef5f0cSAntonio Huete Jimenez 76*6eef5f0cSAntonio Huete Jimenez 77*6eef5f0cSAntonio Huete Jimenez.l.o: 78*6eef5f0cSAntonio Huete Jimenez ${LEX} ${LFLAGS} $< 79*6eef5f0cSAntonio Huete Jimenez ${CC} ${CFLAGS} -c lex.yy.c 80*6eef5f0cSAntonio Huete Jimenez rm -f lex.yy.c 81*6eef5f0cSAntonio Huete Jimenez mv lex.yy.o $@ 82*6eef5f0cSAntonio Huete Jimenez 83*6eef5f0cSAntonio Huete Jimenez 84*6eef5f0cSAntonio Huete Jimenez.y.c: 85*6eef5f0cSAntonio Huete Jimenez ${YACC} ${YFLAGS} $< 86*6eef5f0cSAntonio Huete Jimenez mv y.tab.c $@ 87*6eef5f0cSAntonio Huete Jimenez 88*6eef5f0cSAntonio Huete Jimenez 89*6eef5f0cSAntonio Huete Jimenez.l.c: 90*6eef5f0cSAntonio Huete Jimenez ${LEX} ${LFLAGS} $< 91*6eef5f0cSAntonio Huete Jimenez mv lex.yy.c $@ 92*6eef5f0cSAntonio Huete Jimenez 93*6eef5f0cSAntonio Huete Jimenez 94*6eef5f0cSAntonio Huete Jimenez.c.a: 95*6eef5f0cSAntonio Huete Jimenez ${CC} -c ${CFLAGS} $< 96*6eef5f0cSAntonio Huete Jimenez ${AR} ${ARFLAGS} $@ $*.o 97*6eef5f0cSAntonio Huete Jimenez rm -f $*.o 98*6eef5f0cSAntonio Huete Jimenez 99*6eef5f0cSAntonio Huete Jimenez 100*6eef5f0cSAntonio Huete Jimenez.f.a: 101*6eef5f0cSAntonio Huete Jimenez ${FC} -c ${FFLAGS} $< 102*6eef5f0cSAntonio Huete Jimenez ${AR} ${ARFLAGS} $@ $*.o 103*6eef5f0cSAntonio Huete Jimenez rm -f $*.o 104*6eef5f0cSAntonio Huete Jimenez 105