Makefile.pc98 revision 30665
116359Sasami# Makefile for FreeBSD(98) after: 216359Sasami# 316359Sasami# Makefile.i386 -- with config changes. 416359Sasami# Copyright 1990 W. Jolitz 516359Sasami# from: @(#)Makefile.i386 7.1 5/10/91 630665Skato# $Id: Makefile.pc98,v 1.21 1997/10/12 12:00:23 kato Exp $ 716359Sasami# 816359Sasami# Makefile for FreeBSD 916359Sasami# 1016359Sasami# This makefile is constructed from a machine description: 1116359Sasami# config machineid 1216359Sasami# Most changes should be made in the machine description 1316359Sasami# /sys/i386/conf/``machineid'' 1416359Sasami# after which you should do 1516359Sasami# config machineid 1616359Sasami# Generic makefile changes should be made in 1716359Sasami# /sys/i386/conf/Makefile.i386 1816359Sasami# after which config should be rerun for all machines. 1916359Sasami# 2016359Sasami 2130665Skato# Which version of config(8) is required. 2230665Skato%VERSREQ= 300002 2330665Skato 2425088SkatoBINFORMAT?= aout 2525571Skato#BINFORMAT?= aoutkld 2625088Skato#BINFORMAT?= elf 2725088Skato 2827690Skato#STD8X16FONT?= iso 2927690Skato 3016359Sasami.if exists(./@/.) 3116359SasamiS= ./@ 3216359Sasami.else 3316359SasamiS= ../.. 3416359Sasami.endif 3516359SasamiPC98= ${S}/pc98 3616359SasamiI386= ${S}/i386 3716359Sasami 3816359SasamiCOPTFLAGS?=-O 3918846SasamiINCLUDES= -nostdinc -I- -I. -I$S 4016359Sasami# This hack is to allow kernel compiles to succeed on machines w/out srcdist 4116359Sasami.if exists($S/../include) 4216359SasamiINCLUDES+= -I$S/../include 4316359Sasami.else 4416359SasamiINCLUDES+= -I/usr/include 4516359Sasami.endif 4625256SkatoCOPTS= ${INCLUDES} ${IDENT} -DKERNEL -include opt_global.h 4716359SasamiCFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} 4816359SasamiLOAD_ADDRESS?= F0100000 4927101SkatoDEFINED_PROF= ${PROF} 5020494Skato.if defined(PROF) 5127101SkatoCFLAGS+= -malign-functions=4 5220494Skato.if ${PROFLEVEL} >= 2 5320494SkatoIDENT+= -DGPROF4 -DGUPROF 5420494SkatoPROF+= -mprofiler-epilogue 5520494Skato.endif 5620494Skato.endif 5716359Sasami 5816359SasamiNORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $< 5916359SasamiNORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< 6016359Sasami# XXX LOCORE means "don't declare C stuff" not "for locore.s". 6116359SasamiNORMAL_S= ${CC} -c -x assembler-with-cpp -DLOCORE ${COPTS} $< 6216359SasamiDRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $< 6316359SasamiDRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< 6416359SasamiDRIVER_S= ${CC} -c -x assembler-with-cpp -DLOCORE ${COPTS} $< 6516359SasamiPROFILE_C= ${CC} -c ${CFLAGS} ${PARAM} $< 6616359Sasami 6726058Skato# ${I386}/i386/setdef0.c and ${I386}/i386/setdef1.c are intentionally 6826058Skato# omitted from SYSTEM_CFILES. They depend on setdefs.h, a header which 6926058Skato# is generated from all of ${OBJS}. We don't want to have to compile 7026058Skato# everything just to do a make depend. 7126058SkatoSYSTEM_CFILES= ioconf.c param.c vnode_if.c config.c 7224112SkatoSYSTEM_SFILES= ${I386}/i386/locore.s 7316359SasamiSYSTEM_DEP= Makefile symbols.exclude symbols.sort ${SYSTEM_OBJS} 7416359Sasami.if ${CFLAGS:M-g} == "" 7516359SasamiSYMORDER_EXCLUDE=-x symbols.exclude 7616359Sasami.endif 7725088SkatoSYSTEM_LD_HEAD= @echo loading $@; rm -f $@ 7825088Skato.if ${BINFORMAT} == aout 7926058SkatoSYSTEM_OBJS= locore.o vnode_if.o ${OBJS} ioconf.o param.o config.o 8025088SkatoSYSTEM_LD= @${LD} -Bstatic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o 8116359SasamiSYSTEM_LD_TAIL= @echo rearranging symbols; \ 8216359Sasami symorder -m ${SYMORDER_EXCLUDE} symbols.sort $@; \ 8316359Sasami size $@; chmod 755 $@ 8425088Skato.endif 8525571Skato.if ${BINFORMAT} == aoutkld 8626058SkatoSYSTEM_OBJS= locore.o vnode_if.o ${OBJS} ioconf.o param.o config.o 8725571SkatoSYSTEM_LD= @${LD} -Bforcedynamic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o 8825571SkatoSYSTEM_LD_TAIL= @echo rearranging symbols; \ 8925571Skato symorder -m ${SYMORDER_EXCLUDE} symbols.sort $@; \ 9025571Skato size $@; chmod 755 $@ 9125571Skato.endif 9225088Skato.if ${BINFORMAT} == elf 9326058SkatoSYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} ioconf.o param.o config.o \ 9426058Skato setdef1.o 9526058SkatoSYSTEM_LD= @${LD} -Bstatic -Ttext ${LOAD_ADDRESS} -e btext -defsym _DYNAMIC=0 \ 9626058Skato -o $@ -X ${SYSTEM_OBJS} vers.o 9725088SkatoSYSTEM_LD_TAIL= @size $@; chmod 755 $@ 9825088Skato.endif 9916359Sasami 10016359Sasami%BEFORE_DEPEND 10116359Sasami 10216359Sasami%OBJS 10316359Sasami 10416359Sasami%CFILES 10516359Sasami 10616359Sasami%SFILES 10716359Sasami 10816359Sasami%LOAD 10916359Sasami 11016359Sasami%CLEAN 11116359Sasami 11216359Sasamiclean: 11326058Skato rm -f *.o *.s eddep errs genassym gensetdefs kernel linterrs \ 11426058Skato makelinks param.c setdefs.h symbols.exclude symbols.sort tags \ 11516359Sasami vers.c vnode_if.c vnode_if.h ${CLEAN} 11616359Sasami 11716359Sasami#lint: /tmp param.c 11816359Sasami# @lint -hbxn -DGENERIC -Dvolatile= ${COPTS} ${PARAM} \ 11924112Skato# ${I386}/i386/Locore.c ${CFILES} ioconf.c param.c | \ 12016359Sasami# grep -v 'struct/union .* never defined' | \ 12116359Sasami# grep -v 'possible pointer alignment problem' 12216359Sasami 12316359Sasamisymbols.exclude: Makefile 12416359Sasami echo "gcc2_compiled." >symbols.exclude 12516359Sasami echo "___gnu_compiled_c" >>symbols.exclude 12616359Sasami 12716359Sasamisymbols.sort: ${I386}/i386/symbols.raw 12816359Sasami grep -v '^#' ${I386}/i386/symbols.raw \ 12916359Sasami | sed 's/^ //' | sort -u > symbols.sort 13016359Sasami 13124112Skatolocore.o: ${I386}/i386/locore.s assym.s 13216359Sasami ${NORMAL_S} 13316359Sasami 13426058Skatosetdef0.o: ${I386}/i386/setdef0.c setdefs.h 13525088Skato ${NORMAL_C} 13625088Skato 13726058Skatosetdef1.o: ${I386}/i386/setdef1.c setdefs.h 13825088Skato ${NORMAL_C} 13925088Skato 14026058Skatosetdefs.h: gensetdefs ${OBJS} 14126058Skato ./gensetdefs ${OBJS} >setdefs.h 14226058Skato 14326058Skatogensetdefs: gensetdefs.o 14426058Skato ${CC} ${CFLAGS} gensetdefs.o -o $@ 14526058Skato 14626058Skatogensetdefs.o: ${I386}/i386/gensetdefs.c 14726058Skato ${CC} -c ${CFLAGS} ${I386}/i386/gensetdefs.c 14826058Skato 14916359Sasami# everything potentially depends on the Makefile since everything potentially 15016359Sasami# depends on the options. Some things are more dependent on the Makefile for 15116359Sasami# historical reasons. 15216359Sasamimachdep.o: Makefile 15316359Sasami 15416359Sasami# the following is necessary because autoconf.o depends on #if GENERIC 15516359Sasamiautoconf.o: Makefile 15616359Sasami 15716359Sasami# XXX - may no longer be needed 15816359Sasamilocore.o: Makefile 15916359Sasami 16016359Sasami# depends on KDB (cons.o also depends on GENERIC) 16116359Sasamitrap.o cons.o: Makefile 16216359Sasami 16316359Sasami# this rule stops ./assym.s in .depend from causing problems 16416359Sasami./assym.s: assym.s 16516359Sasami 16616359Sasamiassym.s: genassym 16716359Sasami ./genassym >assym.s 16816359Sasami 16916359Sasami# Some of the defines that genassym outputs may well depend on the 17016359Sasami# value of kernel options. 17130330Skatogenassym.o: ${I386}/i386/genassym.c Makefile opt_global.h opt_vm86.h 17216359Sasami rm -f ./machine ; ln -s ${I386}/include ./machine 17316359Sasami ${CC} -c ${CFLAGS} ${PARAM} -UKERNEL ${I386}/i386/genassym.c 17416359Sasami 17516359Sasamigenassym: genassym.o 17619551Sasami ${CC} ${CFLAGS} ${PARAM} genassym.o -o $@ 17716359Sasami 17825256Skato${OBJS}: opt_global.h 17925256Skato 18016359Sasami# XXX this assumes that the options for NORMAL_C* and DRIVER_C* are identical. 18116359Sasamidepend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} 18216359Sasami rm -f .newdep 18316359Sasami mkdep -a -f .newdep ${COPTS} ${CFILES} ${SYSTEM_CFILES} 18416359Sasami mkdep -a -f .newdep ${COPTS} ${PARAM} -UKERNEL ${I386}/i386/genassym.c 18525088Skato MKDEP_CPP="${CC} -E -x assembler-with-cpp" ; export MKDEP_CPP ; \ 18616359Sasami mkdep -a -f .newdep -DLOCORE ${COPTS} ${SFILES} ${SYSTEM_SFILES} 18716359Sasami rm -f .depend 18816359Sasami mv -f .newdep .depend 18916359Sasami 19016359Sasamilinks: 19116359Sasami egrep '#if' ${CFILES:Nswapkernel.c} | sed -f $S/conf/defines | \ 19216359Sasami sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink 19316359Sasami echo ${CFILES:Nswapkernel.c} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ 19416359Sasami sort -u | comm -23 - dontlink | \ 19516359Sasami sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks 19616359Sasami sh makelinks && rm -f dontlink 19716359Sasami 19816359Sasamitags: 19916359Sasami @echo "see $S/kern/Makefile for tags" 20016359Sasami 20116359Sasamiinstall: 20216359Sasami @if [ ! -f kernel ] ; then \ 20316359Sasami echo "You must first build your kernel before trying to install." ; \ 20416359Sasami exit 1 ; \ 20516359Sasami fi 20616359Sasami chflags noschg /kernel 20716359Sasami mv /kernel /kernel.old 20817947Sasami if [ `/usr/sbin/sysctl -n kern.bootfile` = /kernel ] ; then \ 20917947Sasami /usr/sbin/sysctl -w kern.bootfile=/kernel.old ; \ 21016359Sasami mv -f /var/db/kvm_kernel.db /var/db/kvm_kernel.old.db ; \ 21116359Sasami fi 21216359Sasami install -c -m 555 -o root -g wheel -fschg kernel / 21316359Sasami 21416359Sasamiioconf.o: ioconf.c $S/sys/param.h $S/sys/buf.h \ 21518095Sasami ${I386}/isa/isa_device.h ${PC98}/pc98/pc98.h ${I386}/isa/icu.h 21616359Sasami ${CC} -c ${CFLAGS} ioconf.c 21716359Sasami 21816359Sasamiparam.c: $S/conf/param.c 21916359Sasami -rm -f param.c 22016359Sasami cp $S/conf/param.c . 22116359Sasami 22216359Sasamiparam.o: param.c Makefile 22316359Sasami ${CC} -c ${CFLAGS} ${PARAM} param.c 22416359Sasami 22516359Sasamivers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} 22616359Sasami sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT} 22716359Sasami ${CC} ${CFLAGS} -c vers.c 22816359Sasami 22916359Sasamivnode_if.c: $S/kern/vnode_if.sh $S/kern/vnode_if.src 23016359Sasami sh $S/kern/vnode_if.sh $S/kern/vnode_if.src 23116359Sasamivnode_if.h: $S/kern/vnode_if.sh $S/kern/vnode_if.src 23216359Sasami sh $S/kern/vnode_if.sh $S/kern/vnode_if.src 23316359Sasami 23419122Sasami.include <bsd.kern.mk> 23519122Sasami 23616359Sasami%RULES 23716359Sasami 23816359Sasami# DO NOT DELETE THIS LINE -- make depend uses it 239