diff options
Diffstat (limited to 'sys/arch/i386/conf/Makefile.i386')
-rw-r--r-- | sys/arch/i386/conf/Makefile.i386 | 176 |
1 files changed, 89 insertions, 87 deletions
diff --git a/sys/arch/i386/conf/Makefile.i386 b/sys/arch/i386/conf/Makefile.i386 index 308c00c4bfc..364cf3c16e8 100644 --- a/sys/arch/i386/conf/Makefile.i386 +++ b/sys/arch/i386/conf/Makefile.i386 @@ -1,12 +1,14 @@ -# $NetBSD: Makefile.i386,v 1.59 1995/10/10 05:58:00 mycroft Exp $ +# $NetBSD: Makefile.i386,v 1.64 1996/02/09 02:21:25 mycroft Exp $ +# Makefile for NetBSD +# # This makefile is constructed from a machine description: # config machineid # Most changes should be made in the machine description # /sys/arch/i386/conf/``machineid'' # after which you should do -# config machineid -# Generic makefile changes should be made in +# config machineid +# Machine generic makefile changes should be made in # /sys/arch/i386/conf/Makefile.i386 # after which config should be rerun for all machines of that type. # @@ -15,25 +17,27 @@ # # -DTRACE compile in kernel tracing hooks # -DQUOTA compile in file system quotas -# -# DEBUG is set to -g by config if debugging is requested (config -g). -# PROF is set to -pg by config if profiling is requested (config -p). -AS= as ${DEBUG} +# DEBUG is set to -g if debugging. +# PROF is set to -pg if profiling. + +AS= as AWK= awk -CC= cc ${DEBUG} +CC= cc CPP= cpp LD= ld +STRIP= strip -d TOUCH= touch -f -c # source tree is located via $S relative to the compilation directory S= ../../../.. I386= ../.. -INCLUDES= -I. -I$S/arch -I$S -I$S/sys -COPTS= ${INCLUDES} ${IDENT} -D_KERNEL -Di386 -CFLAGS= -O6 -fno-strength-reduce -Werror ${COPTS} -LOAD_ADDRESS= F8100000 +INCLUDES= -I. -I$S/arch -I$S +CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -Di386 +CFLAGS= ${DEBUG} -O2 -Werror +AFLAGS= -x assembler-with-cpp -traditional-cpp -D_LOCORE +LINKFLAGS= -z -Ttext F8100000 -e start ### find out what to use for libkern .include "$S/lib/libkern/Makefile.inc" @@ -56,121 +60,119 @@ LIBCOMPAT= ${COMPATLIB_PROF} # capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file # is marked as config-dependent. -NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $< -NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< - -DRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $< -DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< +NORMAL_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +NORMAL_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< -PROFILE_C= ${CC} -S -c ${CFLAGS} $< ; \ - sed -e s/_mcount/mcount/ -e s/subrmcount/subr_mcount/ <$*.s | \ - ${AS} -o $@; \ - rm -f $*.s +DRIVER_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +DRIVER_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< -NORMAL_S= ${CPP} -DLOCORE ${COPTS} $< | ${AS} -o $@ -NORMAL_S_C= ${CPP} -DLOCORE ${COPTS} ${PARAM} $< | ${AS} -o $@ +NORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $< +NORMAL_S_C= ${CC} ${AFLAGS} ${CPPFLAGS} ${PARAM} -c $< %OBJS %CFILES +%SFILES + # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o # ${SYSTEM_LD_HEAD} # ${SYSTEM_LD} swapxxx.o # ${SYSTEM_LD_TAIL} -SYSTEM_OBJ= locore.o vnode_if.o ${OBJS} param.o ioconf.o ${LIBKERN} \ - ${LIBCOMPAT} +SYSTEM_OBJ= locore.o \ + vnode_if.o param.o ioconf.o ${OBJS} ${LIBKERN} ${LIBCOMPAT} SYSTEM_DEP= Makefile ${SYSTEM_OBJ} SYSTEM_LD_HEAD= rm -f $@ -SYSTEM_LD= @if [ X${DEBUG} = X-g ]; then \ - strip=-X; \ - else \ - strip=-x; \ - fi; \ - echo ${LD} $$strip -z -T ${LOAD_ADDRESS} -o $@ -e start '$${SYSTEM_OBJ}' vers.o; \ - ${LD} $$strip -z -T ${LOAD_ADDRESS} -o $@ -e start ${SYSTEM_OBJ} vers.o -SYSTEM_LD_TAIL= @size $@; chmod 755 $@; \ - if [ X${DEBUG} = X-g ]; then \ - echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \ - echo strip -d $@; strip -d $@; \ - fi +SYSTEM_LD= @echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_OBJ}' vers.o; \ + ${LD} ${LINKFLAGS} -o $@ ${SYSTEM_OBJ} vers.o +SYSTEM_LD_TAIL= @size $@; chmod 755 $@ + +DEBUG?= +.if ${DEBUG} == "-g" +LINKFLAGS+= -X +SYSTEM_LD_TAIL+=; \ + echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \ + echo ${STRIP} $@; ${STRIP} $@ +.else +LINKFLAGS+= -x +.endif %LOAD -newvers: vers.o +assym.h: genassym + ./genassym >assym.h -vers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} - sh $S/conf/newvers.sh - ${CC} ${CFLAGS} -c vers.c +genassym: genassym.o + ${CC} -o $@ genassym.o -clean:: - rm -f eddep bsd bsd.gdb tags vnode_if.[ch] *.o locore.i \ - [a-z]*.s [Ee]rrs linterrs makelinks genassym +genassym.o: ${I386}/i386/genassym.c + ${NORMAL_C_C} -lint: /tmp param.c - @lint -hbxn -DGENERIC -Dvolatile= ${COPTS} ${PARAM} -UKGDB \ - ${I386}/i386/Locore.c ${CFILES} ${I386}/i386/swapgeneric.c \ - ioconf.c param.c | \ - grep -v 'struct/union .* never defined' | \ - grep -v 'possible pointer alignment problem' - -locore.o: assym.s ${I386}/i386/locore.s machine/trap.h machine/psl.h -locore.o: machine/pte.h ${I386}/isa/vector.s ${I386}/isa/icu.s -locore.o: $S/sys/errno.h machine/specialreg.h ${I386}/isa/debug.h -locore.o: ${I386}/isa/icu.h $S/dev/isa/isareg.h $S/net/netisr.h - ${CPP} -DLOCORE ${COPTS} ${I386}/i386/locore.s | ${AS} -o locore.o +vnode_if.c vnode_if.h: $S/kern/vnode_if.sh $S/kern/vnode_if.src + AWK="${AWK}" sh $S/kern/vnode_if.sh $S/kern/vnode_if.src -# the following is necessary because autoconf.o depends on #if GENERIC -autoconf.o: Makefile +param.c: $S/conf/param.c + rm -f param.c + cp $S/conf/param.c . -# the following are necessary because the files depend on the types of -# cpu's included in the system configuration -locore.o machdep.o: Makefile +param.o: param.c Makefile + ${NORMAL_C_C} -# depend on network or filesystem configuration -uipc_proto.o vfs_conf.o locore.o: Makefile +ioconf.o: ioconf.c + ${NORMAL_C} -# depend on maxusers -assym.s: Makefile +newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} + sh $S/conf/newvers.sh + ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c -# depends on KDB (cons.o also depends on GENERIC) -trap.o cons.o: Makefile -assym.s: genassym - ./genassym >assym.s +clean:: + rm -f eddep *netbsd netbsd.gdb tags vnode_if.[ch] *.[io] [a-z]*.s \ + [Ee]rrs linterrs makelinks genassym genassym.o assym.h -genassym: ${I386}/i386/genassym.c - ${CC} ${INCLUDES} ${IDENT} ${PARAM} -Di386 -o genassym \ - ${I386}/i386/genassym.c +lint: + @lint -hbxncez -DGENERIC -Dvolatile= ${CPPFLAGS} ${PARAM} -UKGDB \ + ${I386}/i386/Locore.c ${CFILES} ${I386}/i386/swapgeneric.c \ + ioconf.c param.c | \ + grep -v 'static function .* unused' -depend: assym.s param.c vnode_if.h - mkdep ${COPTS} ${CFILES} ioconf.c param.c - mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${I386}/i386/genassym.c +tags: + @echo "see $S/kern/Makefile for tags" links: egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ sort -u | comm -23 - dontlink | \ - sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks + sed 's,../.*/\(.*.o\),rm -f \1; ln -s ../GENERIC/\1 \1,' > makelinks sh makelinks && rm -f dontlink -tags: - @echo "see $S/kern/Makefile for tags" +SRCS= ${I386}/i386/locore.s \ + vnode_if.c param.c ioconf.c ${CFILES} ${SFILES} +depend: .depend +.depend: ${SRCS} assym.h vnode_if.h param.c + mkdep ${AFLAGS} ${CPPFLAGS} ${I386}/i386/locore.s + mkdep -a ${CFLAGS} ${CPPFLAGS} vnode_if.c param.c ioconf.c ${CFILES} + mkdep -a ${AFLAGS} ${CPPFLAGS} ${SFILES} + mkdep -a ${CFLAGS} ${CPPFLAGS} ${PARAM} ${I386}/i386/genassym.c -ioconf.o: ioconf.c - ${CC} -c ${CFLAGS} ioconf.c -param.c: $S/conf/param.c - rm -f param.c - cp $S/conf/param.c . +# depend on root or device configuration +autoconf.o conf.o: Makefile + +# depend on network or filesystem configuration +uipc_proto.o vfs_conf.o: Makefile -param.o: param.c Makefile - ${CC} -c ${CFLAGS} ${PARAM} param.c +# depend on maxusers +genassym.o machdep.o: Makefile -vnode_if.c vnode_if.h: $S/kern/vnode_if.sh $S/kern/vnode_if.src - AWK="${AWK}" sh $S/kern/vnode_if.sh $S/kern/vnode_if.src +# depend on CPU configuration +locore.o machdep.o: Makefile + + +locore.o: ${I386}/i386/locore.s assym.h + ${NORMAL_S} %RULES |