b0da334790
since make depend wasn't picking up any new dependencies. However, due to a bug in the old code, the original dependencies weren't being used, so this version is better than the original and the lastest version. (And is more readable as well)
148 lines
4.3 KiB
Makefile
148 lines
4.3 KiB
Makefile
# Copyright 1990 W. Jolitz
|
|
# from: @(#)Makefile.i386 7.1 5/10/91
|
|
# $Id: Makefile.i386,v 1.8 1993/10/14 17:09:54 rgrimes Exp $
|
|
#
|
|
# Makefile for FreeBSD
|
|
#
|
|
# This makefile is constructed from a machine description:
|
|
# config machineid
|
|
# Most changes should be made in the machine description
|
|
# /sys/i386/conf/``machineid''
|
|
# after which you should do
|
|
# config machineid
|
|
# Generic makefile changes should be made in
|
|
# /sys/i386/conf/Makefile.i386
|
|
# after which config should be rerun for all machines.
|
|
#
|
|
# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE INVISIBLE TO MAKEFILE
|
|
# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING
|
|
#
|
|
# -DTRACE compile in kernel tracing hooks
|
|
# -DQUOTA compile in file system quotas
|
|
#
|
|
TOUCH= touch -f -c
|
|
LD= /usr/bin/ld
|
|
CC= cc
|
|
CPP= cpp
|
|
STRIP= strip
|
|
DBSYM= /usr/sbin/dbsym
|
|
|
|
S= ../..
|
|
I386= ../../i386
|
|
|
|
INCLUDES= -I. -I$S -I$S/sys
|
|
COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DNPX
|
|
ASFLAGS=
|
|
CFLAGS= -O ${DEBUG} ${COPTS}
|
|
LOAD_ADDRESS?= FE000000
|
|
|
|
NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $<
|
|
NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
|
|
NORMAL_S= ${CPP} -I. -DLOCORE ${COPTS} $< | ${AS} ${ASFLAGS} -o $*.o
|
|
DRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $<
|
|
DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
|
|
SYSTEM_OBJS=locore.o ${OBJS} param.o ioconf.o conf.o machdep.o
|
|
SYSTEM_DEP=Makefile symbols.sort ${SYSTEM_OBJS}
|
|
SYSTEM_LD_HEAD= @echo loading $@; rm -f $@
|
|
SYSTEM_LD= @${LD} -z -T ${LOAD_ADDRESS} -o $@ -X vers.o ${SYSTEM_OBJS}
|
|
SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; \
|
|
${DBSYM} -fT ${LOAD_ADDRESS} $@; ${STRIP} -x $@; size $@; chmod 755 $@
|
|
|
|
# (XXX) ok, this is weird. but we've got a working ed, and a broken ex, and
|
|
# the script is identical for either... -- cgd
|
|
#
|
|
GPROF.EX= /usr/src/lib/csu.i386/gprof.ex
|
|
PROFILE_C= ${CC} -S -c ${CFLAGS} $< ; \
|
|
ed - $*.s < ${GPROF.EX} ; \
|
|
${AS} -o $@ $*.s ; \
|
|
rm -f $*.s
|
|
|
|
%OBJS
|
|
|
|
%CFILES
|
|
|
|
%LOAD
|
|
|
|
clean:
|
|
rm -f eddep *386bsd tags *.o locore.i [a-uw-z]*.s \
|
|
errs linterrs makelinks genassym
|
|
|
|
lint: /tmp param.c
|
|
@lint -hbxn -I. -DGENERIC -Dvolatile= ${COPTS} ${PARAM} \
|
|
${I386}/i386/Locore.c ${CFILES} ioconf.c param.c | \
|
|
grep -v 'struct/union .* never defined' | \
|
|
grep -v 'possible pointer alignment problem'
|
|
|
|
symbols.sort: ${I386}/i386/symbols.raw
|
|
grep -v '^#' ${I386}/i386/symbols.raw \
|
|
| sed 's/^ //' | sort -u > symbols.sort
|
|
|
|
locore.o: assym.s ${I386}/i386/locore.s machine/trap.h machine/psl.h \
|
|
machine/pte.h ${I386}/isa/vector.s ${I386}/isa/icu.s \
|
|
$S/sys/errno.h machine/specialreg.h ${I386}/isa/debug.h \
|
|
${I386}/isa/icu.h ${I386}/isa/isa.h vector.h $S/net/netisr.h
|
|
${CPP} -I. -DLOCORE ${COPTS} ${I386}/i386/locore.s | \
|
|
${AS} ${ASFLAGS} -o locore.o
|
|
|
|
machdep.o: ${I386}/i386/machdep.c Makefile
|
|
${CC} -c ${CFLAGS} -DLOAD_ADDRESS=0x${LOAD_ADDRESS} ${PROF} $<
|
|
|
|
# the following is necessary because autoconf.o depends on #if GENERIC
|
|
autoconf.o: Makefile
|
|
|
|
# depend on network configuration
|
|
af.o uipc_proto.o locore.o: Makefile
|
|
|
|
# depend on maxusers
|
|
assym.s: Makefile
|
|
|
|
# depends on KDB (cons.o also depends on GENERIC)
|
|
trap.o cons.o: Makefile
|
|
|
|
assym.s: genassym $S/sys/param.h machine/pte.h \
|
|
$S/sys/buf.h $S/sys/vmmeter.h \
|
|
$S/sys/proc.h $S/sys/msgbuf.h machine/vmparam.h
|
|
./genassym >assym.s
|
|
|
|
genassym:
|
|
${CC} ${INCLUDES} -DKERNEL ${IDENT} ${PARAM} \
|
|
${I386}/i386/genassym.c -o genassym
|
|
|
|
depend: assym.s param.c
|
|
sh /usr/bin/mkdep -DLOAD_ADDRESS=0x${LOAD_ADDRESS} ${COPTS} ${CFILES} ioconf.c param.c ${I386}/i386/conf.c
|
|
sh /usr/bin/mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${I386}/i386/genassym.c
|
|
|
|
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
|
|
sh makelinks && rm -f dontlink
|
|
|
|
tags:
|
|
@echo "see $S/kern/Makefile for tags"
|
|
|
|
ioconf.o: ioconf.c $S/sys/param.h machine/pte.h $S/sys/buf.h \
|
|
${I386}/isa/isa_device.h ${I386}/isa/isa.h ${I386}/isa/icu.h
|
|
${CC} -c ${CFLAGS} ioconf.c
|
|
|
|
conf.o: ${I386}/i386/conf.c
|
|
${CC} -traditional -c ${CFLAGS} ${I386}/i386/conf.c
|
|
|
|
param.c: $S/conf/param.c
|
|
-rm -f param.c
|
|
cp $S/conf/param.c .
|
|
|
|
param.o: param.c Makefile
|
|
${CC} -c ${CFLAGS} ${PARAM} param.c
|
|
|
|
vers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
|
|
sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT}
|
|
${CC} ${CFLAGS} -c vers.c
|
|
|
|
%RULES
|
|
|
|
# DO NOT DELETE THIS LINE -- make depend uses it
|
|
|