1# $Id: SunOS.mk,v 1.8 2017/05/05 18:02:17 sjg Exp $ 2 3.if ${.PARSEFILE} == "sys.mk" 4.include <host-target.mk> 5 6OS?= SunOS.${HOST_OSMAJOR} 7unix?= We run ${OS}. 8.endif 9 10.if ${HOST_OSMAJOR} > 4 11ROOT_GROUP= root 12 13SHLIB_FULLVERSION = ${SHLIB_MAJOR} 14 15# suppress the dependency 16LIBCRT0= /dev/null 17 18.ifndef CC 19# the PATH below may find an ancient gcc 20CC := ${gcc:L:${M_whence}} 21.export CC 22.endif 23 24# the stuff in /usr/xpg4/bin is usually more sane. 25PATH=/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/ucb:/usr/sfw/bin:/opt/gnu/bin:/usr/ccs/bin:/usr/local/bin 26.export PATH 27 28DSHLIBEXT = .so 29HOST_LIBDIRS = /usr/lib /lib /usr/sfw/lib 30 31# no -X 32LD_X= 33LD_x= 34RANLIB= : 35CPP= /usr/ccs/lib/cpp 36.else 37ROOT_GROUP= wheel 38RANLIB= ranlib 39CPP= cpp 40.endif 41 42# the rest is common 43 44.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4 45 46.LIBS: .a 47 48AR= ar 49ARFLAGS= rl 50 51AS= as 52AS_STDIN= - 53AFLAGS= 54COMPILE.s= ${AS} ${AFLAGS} 55LINK.s= ${CC} ${AFLAGS} ${LDFLAGS} 56COMPILE.S= ${CC} ${AFLAGS} ${CPPFLAGS} -c 57LINK.S= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} 58.if exists(/opt/gnu/bin/gcc) || exists(/usr/local/bin/gcc) 59CC ?= gcc -pipe 60DBG= -O -g 61STATIC= -static 62.else 63CC ?= cc 64DBG= -g 65STATIC= -Bstatic 66.endif 67CFLAGS= ${DBG} 68COMPILE.c= ${CC} ${CFLAGS} ${CPPFLAGS} -c 69LINK.c= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 70 71CXX= g++ 72CXXFLAGS= ${CFLAGS} 73COMPILE.cc= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 74LINK.cc= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 75 76.if defined(DESTDIR) 77CPPFLAGS+= -nostdinc -idirafter ${DESTDIR}/usr/include 78.endif 79 80MK_DEP= mkdeps.sh -N 81FC= f77 82FFLAGS= -O 83RFLAGS= 84COMPILE.f= ${FC} ${FFLAGS} -c 85LINK.f= ${FC} ${FFLAGS} ${LDFLAGS} 86COMPILE.F= ${FC} ${FFLAGS} ${CPPFLAGS} -c 87LINK.F= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 88COMPILE.r= ${FC} ${FFLAGS} ${RFLAGS} -c 89LINK.r= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 90 91LEX= lex 92LFLAGS= 93LEX.l= ${LEX} ${LFLAGS} 94 95LD= ld 96LDFLAGS= 97 98LINT= lint 99LINTFLAGS= -chapbx 100 101PC= pc 102PFLAGS= 103COMPILE.p= ${PC} ${PFLAGS} ${CPPFLAGS} -c 104LINK.p= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 105 106SHELL= sh 107 108.if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison) 109YACC= bison -y 110.else 111YACC= yacc 112.endif 113YFLAGS= -d 114YACC.y= ${YACC} ${YFLAGS} 115 116# C 117.c: 118 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 119.c.o: 120 ${COMPILE.c} ${.IMPSRC} 121.c.a: 122 ${COMPILE.c} ${.IMPSRC} 123 ${AR} ${ARFLAGS} $@ $*.o 124 rm -f $*.o 125 126# C++ 127${CXX_SUFFIXES}: 128 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 129${CXX_SUFFIXES:%=%.o}: 130 ${COMPILE.cc} ${.IMPSRC} 131${CXX_SUFFIXES:%=%.a}: 132 ${COMPILE.cc} ${.IMPSRC} 133 ${AR} ${ARFLAGS} $@ $*.o 134 rm -f $*.o 135 136# Fortran/Ratfor 137.f: 138 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 139.f.o: 140 ${COMPILE.f} ${.IMPSRC} 141.f.a: 142 ${COMPILE.f} ${.IMPSRC} 143 ${AR} ${ARFLAGS} $@ $*.o 144 rm -f $*.o 145 146.F: 147 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 148.F.o: 149 ${COMPILE.F} ${.IMPSRC} 150.F.a: 151 ${COMPILE.F} ${.IMPSRC} 152 ${AR} ${ARFLAGS} $@ $*.o 153 rm -f $*.o 154 155.r: 156 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 157.r.o: 158 ${COMPILE.r} ${.IMPSRC} 159.r.a: 160 ${COMPILE.r} ${.IMPSRC} 161 ${AR} ${ARFLAGS} $@ $*.o 162 rm -f $*.o 163 164# Pascal 165.p: 166 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 167.p.o: 168 ${COMPILE.p} ${.IMPSRC} 169.p.a: 170 ${COMPILE.p} ${.IMPSRC} 171 ${AR} ${ARFLAGS} $@ $*.o 172 rm -f $*.o 173 174# Assembly 175.s: 176 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 177.s.o: 178 ${COMPILE.s} ${.IMPSRC} 179.s.a: 180 ${COMPILE.s} ${.IMPSRC} 181 ${AR} ${ARFLAGS} $@ $*.o 182 rm -f $*.o 183.S: 184 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 185.S.o: 186 ${COMPILE.S} ${.IMPSRC} 187.S.a: 188 ${COMPILE.S} ${.IMPSRC} 189 ${AR} ${ARFLAGS} $@ $*.o 190 rm -f $*.o 191 192# Lex 193.l: 194 ${LEX.l} ${.IMPSRC} 195 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll 196 rm -f lex.yy.c 197.l.c: 198 ${LEX.l} ${.IMPSRC} 199 mv lex.yy.c ${.TARGET} 200.l.o: 201 ${LEX.l} ${.IMPSRC} 202 ${COMPILE.c} -o ${.TARGET} lex.yy.c 203 rm -f lex.yy.c 204 205# Yacc 206.y: 207 ${YACC.y} ${.IMPSRC} 208 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} 209 rm -f y.tab.c 210.y.c: 211 ${YACC.y} ${.IMPSRC} 212 mv y.tab.c ${.TARGET} 213.y.o: 214 ${YACC.y} ${.IMPSRC} 215 ${COMPILE.c} -o ${.TARGET} y.tab.c 216 rm -f y.tab.c 217 218# Shell 219.sh: 220 rm -f ${.TARGET} 221 cp ${.IMPSRC} ${.TARGET} 222