Makefile.i386 revision 25202
1169695Skan# Makefile.i386 -- with config changes. 2169695Skan# Copyright 1990 W. Jolitz 3169695Skan# from: @(#)Makefile.i386 7.1 5/10/91 4169695Skan# $Id: Makefile.i386,v 1.94 1997/04/22 06:55:21 jdp Exp $ 5169695Skan# 6169695Skan# Makefile for FreeBSD 7169695Skan# 8169695Skan# This makefile is constructed from a machine description: 9169695Skan# config machineid 10169695Skan# Most changes should be made in the machine description 11169695Skan# /sys/i386/conf/``machineid'' 12169695Skan# after which you should do 13169695Skan# config machineid 14169695Skan# Generic makefile changes should be made in 15169695Skan# /sys/i386/conf/Makefile.i386 16169695Skan# after which config should be rerun for all machines. 17169695Skan# 18169695Skan 19169695SkanBINFORMAT?= aout 20169695Skan#BINFORMAT?= elf 21169695Skan 22169695Skan.if exists(./@/.) 23169695SkanS= ./@ 24169695Skan.else 25169695SkanS= ../.. 26169695Skan.endif 27169695SkanI386= ${S}/i386 28169695Skan 29169695SkanCOPTFLAGS?=-O 30169695SkanINCLUDES= -nostdinc -I- -I. -I$S 31169695Skan# This hack is to allow kernel compiles to succeed on machines w/out srcdist 32169695Skan.if exists($S/../include) 33169695SkanINCLUDES+= -I$S/../include 34169695Skan.else 35169695SkanINCLUDES+= -I/usr/include 36169695Skan.endif 37169695SkanCOPTS= ${INCLUDES} ${IDENT} -DKERNEL -include opt_global.h 38169695SkanCFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} 39169695SkanLOAD_ADDRESS?= F0100000 40169695Skan.if defined(PROF) 41169695SkanPROF+= -malign-functions=4 42169695Skan.if ${PROFLEVEL} >= 2 43169695SkanIDENT+= -DGPROF4 -DGUPROF 44169695SkanPROF+= -mprofiler-epilogue 45169695Skan.endif 46169695Skan.endif 47169695Skan 48169695SkanNORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $< 49169695SkanNORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< 50169695Skan# XXX LOCORE means "don't declare C stuff" not "for locore.s". 51169695SkanNORMAL_S= ${CC} -c -x assembler-with-cpp -DLOCORE ${COPTS} $< 52169695SkanDRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $< 53169695SkanDRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< 54169695SkanDRIVER_S= ${CC} -c -x assembler-with-cpp -DLOCORE ${COPTS} $< 55169695SkanPROFILE_C= ${CC} -c ${CFLAGS} ${PARAM} $< 56169695Skan 57169695SkanSYSTEM_CFILES= ${I386}/i386/setdef0.c ioconf.c param.c vnode_if.c config.c \ 58169695Skan ${I386}/i386/setdef1.c 59169695SkanSYSTEM_SFILES= ${I386}/i386/locore.s 60169695SkanSYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} ioconf.o param.o config.o \ 61169695Skan setdef1.o 62169695SkanSYSTEM_DEP= Makefile symbols.exclude symbols.sort ${SYSTEM_OBJS} 63169695Skan.if ${CFLAGS:M-g} == "" 64169695SkanSYMORDER_EXCLUDE=-x symbols.exclude 65169695Skan.endif 66169695SkanSYSTEM_LD_HEAD= @echo loading $@; rm -f $@ 67169695Skan.if ${BINFORMAT} == aout 68169695SkanSYSTEM_LD= @${LD} -Bstatic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o 69169695SkanSYSTEM_LD_TAIL= @echo rearranging symbols; \ 70169695Skan symorder -m ${SYMORDER_EXCLUDE} symbols.sort $@; \ 71169695Skan size $@; chmod 755 $@ 72169695Skan.endif 73169695Skan.if ${BINFORMAT} == elf 74169695SkanSYSTEM_LD= @${LD} -Bstatic -Ttext ${LOAD_ADDRESS} -e btext -o $@ -X ${SYSTEM_OBJS} vers.o 75169695SkanSYSTEM_LD_TAIL= @size $@; chmod 755 $@ 76169695Skan.endif 77169695Skan 78169695Skan%BEFORE_DEPEND 79169695Skan 80169695Skan%OBJS 81169695Skan 82169695Skan%CFILES 83169695Skan 84169695Skan%SFILES 85169695Skan 86169695Skan%LOAD 87169695Skan 88169695Skan%CLEAN 89169695Skan 90169695Skanclean: 91169695Skan rm -f *.o *.s eddep errs genassym kernel linterrs \ 92169695Skan makelinks param.c symbols.exclude symbols.sort tags \ 93169695Skan vers.c vnode_if.c vnode_if.h ${CLEAN} 94169695Skan 95169695Skan#lint: /tmp param.c 96169695Skan# @lint -hbxn -DGENERIC -Dvolatile= ${COPTS} ${PARAM} \ 97169695Skan# ${I386}/i386/Locore.c ${CFILES} ioconf.c param.c | \ 98169695Skan# grep -v 'struct/union .* never defined' | \ 99169695Skan# grep -v 'possible pointer alignment problem' 100169695Skan 101169695Skansymbols.exclude: Makefile 102169695Skan echo "gcc2_compiled." >symbols.exclude 103169695Skan echo "___gnu_compiled_c" >>symbols.exclude 104169695Skan 105169695Skansymbols.sort: ${I386}/i386/symbols.raw 106169695Skan grep -v '^#' ${I386}/i386/symbols.raw \ 107169695Skan | sed 's/^ //' | sort -u > symbols.sort 108169695Skan 109169695Skanlocore.o: ${I386}/i386/locore.s assym.s 110169695Skan ${NORMAL_S} 111169695Skan 112169695Skansetdef0.o: ${I386}/i386/setdef0.c 113169695Skan ${NORMAL_C} 114169695Skan 115169695Skansetdef1.o: ${I386}/i386/setdef1.c 116169695Skan ${NORMAL_C} 117169695Skan 118169695Skan# everything potentially depends on the Makefile since everything potentially 119169695Skan# depends on the options. Some things are more dependent on the Makefile for 120169695Skan# historical reasons. 121169695Skanmachdep.o: Makefile 122169695Skan 123169695Skan# the following is necessary because autoconf.o depends on #if GENERIC 124169695Skanautoconf.o: Makefile 125169695Skan 126169695Skan# XXX - may no longer be needed 127169695Skanlocore.o: Makefile 128169695Skan 129169695Skan# depends on KDB (cons.o also depends on GENERIC) 130169695Skantrap.o cons.o: Makefile 131169695Skan 132169695Skan# this rule stops ./assym.s in .depend from causing problems 133169695Skan./assym.s: assym.s 134169695Skan 135169695Skanassym.s: genassym 136169695Skan ./genassym >assym.s 137169695Skan 138169695Skan# Some of the defines that genassym outputs may well depend on the 139169695Skan# value of kernel options. 140169695Skangenassym.o: ${I386}/i386/genassym.c Makefile opt_global.h 141169695Skan ${CC} -c ${CFLAGS} ${PARAM} -UKERNEL ${I386}/i386/genassym.c 142169695Skan 143169695Skangenassym: genassym.o 144169695Skan ${CC} ${CFLAGS} ${PARAM} genassym.o -o $@ 145169695Skan 146169695Skan${OBJS}: opt_global.h 147169695Skan 148169695Skan# XXX this assumes that the options for NORMAL_C* and DRIVER_C* are identical. 149169695Skandepend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} 150169695Skan rm -f .newdep 151169695Skan mkdep -a -f .newdep ${COPTS} ${CFILES} ${SYSTEM_CFILES} 152169695Skan mkdep -a -f .newdep ${COPTS} ${PARAM} -UKERNEL ${I386}/i386/genassym.c 153169695Skan MKDEP_CPP="${CC} -E -x assembler-with-cpp" ; export MKDEP_CPP ; \ 154169695Skan mkdep -a -f .newdep -DLOCORE ${COPTS} ${SFILES} ${SYSTEM_SFILES} 155169695Skan rm -f .depend 156169695Skan mv -f .newdep .depend 157169695Skan 158169695Skanlinks: 159169695Skan egrep '#if' ${CFILES:Nswapkernel.c} | sed -f $S/conf/defines | \ 160169695Skan sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink 161169695Skan echo ${CFILES:Nswapkernel.c} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ 162169695Skan sort -u | comm -23 - dontlink | \ 163169695Skan sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks 164169695Skan sh makelinks && rm -f dontlink 165169695Skan 166169695Skantags: 167169695Skan @echo "see $S/kern/Makefile for tags" 168169695Skan 169169695Skaninstall: 170169695Skan @if [ ! -f kernel ] ; then \ 171169695Skan echo "You must first build your kernel before trying to install." ; \ 172169695Skan exit 1 ; \ 173169695Skan fi 174169695Skan chflags noschg /kernel 175169695Skan mv /kernel /kernel.old 176169695Skan if [ `/usr/sbin/sysctl -n kern.bootfile` = /kernel ] ; then \ 177169695Skan /usr/sbin/sysctl -w kern.bootfile=/kernel.old ; \ 178169695Skan mv -f /var/db/kvm_kernel.db /var/db/kvm_kernel.old.db ; \ 179169695Skan fi 180169695Skan install -c -m 555 -o root -g wheel -fschg kernel / 181169695Skan 182169695Skanioconf.o: ioconf.c $S/sys/param.h $S/sys/buf.h \ 183169695Skan ${I386}/isa/isa_device.h ${I386}/isa/isa.h ${I386}/isa/icu.h 184169695Skan ${CC} -c ${CFLAGS} ioconf.c 185169695Skan 186169695Skanparam.c: $S/conf/param.c 187169695Skan -rm -f param.c 188169695Skan cp $S/conf/param.c . 189169695Skan 190169695Skanparam.o: param.c Makefile 191169695Skan ${CC} -c ${CFLAGS} ${PARAM} param.c 192169695Skan 193169695Skanvers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} 194169695Skan sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT} 195169695Skan ${CC} ${CFLAGS} -c vers.c 196169695Skan 197169695Skanvnode_if.c: $S/kern/vnode_if.sh $S/kern/vnode_if.src 198169695Skan sh $S/kern/vnode_if.sh $S/kern/vnode_if.src 199169695Skanvnode_if.h: $S/kern/vnode_if.sh $S/kern/vnode_if.src 200169695Skan sh $S/kern/vnode_if.sh $S/kern/vnode_if.src 201169695Skan 202169695Skan.include <bsd.kern.mk> 203169695Skan 204169695Skan%RULES 205169695Skan 206169695Skan# DO NOT DELETE THIS LINE -- make depend uses it 207169695Skan