1*63929Smckusick# @(#)Makefile.sparc 8.1 (Berkeley) 07/19/93 259181Storek# 359181Storek# Makefile for 4.4 BSD 459181Storek# 559181Storek# This makefile is constructed from a machine description: 659181Storek# config machineid 759181Storek# Most changes should be made in the machine description 859181Storek# /sys/conf/``machineid'' 959181Storek# after which you should do 1059181Storek# config machineid 1159181Storek# Machine generic makefile changes should be made in 1259181Storek# /sys/conf/Makefile.``machinetype'' 1359181Storek# after which config should be rerun for all machines of that type. 1459181Storek# 1559181Storek# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE TO MAKEFILE 1659181Storek# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING 1759181Storek# 1859181Storek# -DTRACE compile in kernel tracing hooks 1959181Storek# -DQUOTA compile in file system quotas 2059181Storek 2159181Storek# DEBUG is set to -g if debugging. 2259181Storek# PROF is set to -pg if profiling. 2359181Storek 2459181StorekAS?= as 2559181Storek 2659181StorekCC= cc -W ${DEBUG} 2759181StorekCPP= cpp 2859181StorekLD= ld 2959181StorekTOUCH= touch -f -c 3059181Storek 3159181Storek# source tree is located via $S relative to the compilation directory 3259181StorekS= ../.. 3359181StorekSPARC= $S/sparc 3459181StorekLIBKERN=$S/libkern/obj/libkern.a 3559181Storek 3659181StorekINCLUDES=-I. -I$S -I$S/sys 3759181StorekCOPTS= ${INCLUDES} ${IDENT} -DKERNEL -DSUN4C -Dsun4c 3859181StorekCFLAGS= -O4 ${COPTS} 3959181Storek 4059181Storek# compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP} 4159181Storek# where TYPE is NORMAL, DRIVER, or PROFILE}; SUFFIX is the file suffix, 4259181Storek# capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file 4359181Storek# is marked as config-dependent. 4459181Storek 4559181Storek# sparc kernel uses volatile, rather than heavy "device-driver"s. 4659181Storek 4759181StorekNORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $< 4859181StorekNORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< 4959181Storek 5063920Storek# optimizer breaks sometimes; temporary workaround uses ${NOOPT_C} 5163920StorekNOOPT_C= ${CC} -c ${COPTS} ${PROF} ${PARAM} $< 5263920Storek 5359181StorekNORMAL_S= rm -f $*.c; ln -s $< $*.c; \ 5459181Storek ${CC} ${COPTS} -I${SPARC}/sparc -E $*.c > $*.i; \ 5559181Storek ${AS} -o $@ $*.i; rm -f $*.c $*.i 5659181StorekNORMAL_S_C= rm -f $*.c; ln -s $< $*.c; \ 5759181Storek ${CC} ${COPTS} ${PARAM} -I${SPARC}/sparc -E $*.c > $*.i; \ 5859181Storek ${AS} -o $@ $*.i; rm -f $*.c $*.i 5959181Storek 6059181Storek%OBJS 6159181Storek 6259181Storek%CFILES 6359181Storek 6459181Storek# load lines for config "xxx" will be emitted as: 6559181Storek# xxx: ${SYSTEM_DEP} swapxxx.o 6659181Storek# ${SYSTEM_LD_HEAD} 6759181Storek# ${SYSTEM_LD} swapxxx.o 6859181Storek# ${SYSTEM_LD_TAIL} 6959181StorekDEBUG?= 7059181Storek.if ${DEBUG} == "-g" 7159181StorekLDX=-X 7259181Storek.else 7359181StorekLDX=-x 7459181Storek.endif 7559181StorekSYSTEM_OBJ= locore.o ${OBJS} param.o ioconf.o vnode_if.o 7659181StorekSYSTEM_DEP= Makefile ${SYSTEM_OBJ} 7759181StorekSYSTEM_LD_HEAD= rm -f $@ 7859181StorekSYSTEM_LD= -@echo ${LD} ${LDX} -p -N -e start -T f8004000 -o $@ \ 7959181Storek '$${SYSTEM_OBJ}' vers.o ${LIBKERN}; \ 8059181Storek ${LD} ${LDX} -p -N -e start -T f8004000 -o $@ \ 8159181Storek ${SYSTEM_OBJ} vers.o ${LIBKERN} 8259181StorekSYSTEM_LD_TAIL= @size $@; chmod 755 $@ 8359181Storek#.if ${DEBUG} == "-g" 8459181Storek#SYSTEM_LD_TAIL+=; echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \ 8559181Storek# echo strip -d $@; strip -d $@ 8659181Storek#.endif 8759181Storek 8859181Storek%LOAD 8959181Storek 9059181Storeknewvers: 9159181Storek sh $S/conf/newvers.sh 9259181Storek ${CC} ${CFLAGS} -c vers.c 9359181Storek 9459181Storekclean: 9559181Storek rm -f eddep *vmunix vmunix.gdb tags tags1 *.[io] [a-z]*.s \ 9659181Storek Errs errs linterrs makelinks 9759181Storek 9859181Storeklocore.o: ${SPARC}/sparc/locore.s assym.s 9959181Storek ${NORMAL_S} 10059181Storek 10159181Storek# depend on maxusers 10259181Storekassym.s: Makefile 10359181Storek 10459181Storek./assym.s: assym.s 10559181Storekassym.s: genassym 10659181Storek ./genassym >assym.s 10759181Storek 10859181Storekgenassym: genassym.o 10959181Storek ${CC} -o $@ genassym.o 11059181Storek 11159181Storekgenassym.o: ${SPARC}/sparc/genassym.c 11259181Storek ${CC} -c ${CFLAGS} ${PARAM} $< 11359181Storek 11459181StorekSRCS= ${CFILES} ${SPARC}/sparc/locore.s ${SPARC}/sparc/bsd_audiointr.s \ 11559181Storek ${SPARC}/sparc/genassym.c ioconf.c param.c vnode_if.c 11659181Storekdepend: .depend 11759181Storek.depend: ${SRCS} assym.s 11859181Storek mkdep ${COPTS} ${SRCS} 11959181Storek 12059181Storeklinks: 12159181Storek egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ 12259181Storek sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink 12359181Storek echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ 12459181Storek sort -u | comm -23 - dontlink | \ 12559181Storek sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks 12659181Storek sh makelinks && rm -f dontlink 12759181Storek 12859181Storektags: depend 12959181Storek sh $S/conf/systags.sh 13059181Storek rm -f tags1 13159181Storek sed -e 's, ../, ,' tags > tags1 13259181Storek 13359181Storekioconf.o: ioconf.c 13459181Storek ${CC} -c ${CFLAGS} ioconf.c 13559181Storek 13659181Storekparam.c: $S/conf/param.c 13759181Storek rm -f param.c 13859181Storek cp $S/conf/param.c . 13959181Storek 14059181Storekparam.o: param.c Makefile 14159181Storek ${CC} -c ${CFLAGS} ${PARAM} param.c 14259181Storek 14359181Storekvnode_if.c: $S/kern/vnode_if.sh $S/kern/vnode_if.src 14459181Storek sh $S/kern/vnode_if.sh $S/kern/vnode_if.src 14559181Storekvnode_if.h: $S/kern/vnode_if.sh $S/kern/vnode_if.src 14659181Storek sh $S/kern/vnode_if.sh $S/kern/vnode_if.src 14759181Storek 14859181Storek%RULES 149