This commit was manufactured by cvs2svn to create tag 'FreeBSD-release/1.0'.
[unix-history] / sys / i386 / conf / Makefile.i386
index 7eedfb8..3b649d4 100644 (file)
@@ -1,6 +1,8 @@
 # Copyright 1990 W. Jolitz
 # Copyright 1990 W. Jolitz
-# @(#)Makefile.i386    7.1 5/10/91
-# Makefile for 4.3 BSD-Reno
+#      from: @(#)Makefile.i386 7.1 5/10/91
+#      $Id: Makefile.i386,v 1.9 1993/10/23 06:46:24 nate Exp $
+#
+# Makefile for FreeBSD
 #
 # This makefile is constructed from a machine description:
 #      config machineid
 #
 # This makefile is constructed from a machine description:
 #      config machineid
 # -DTRACE      compile in kernel tracing hooks
 # -DQUOTA      compile in file system quotas
 #
 # -DTRACE      compile in kernel tracing hooks
 # -DQUOTA      compile in file system quotas
 #
-# PATCHES MAGIC                LEVEL   PATCH THAT GOT US HERE
-# --------------------         -----   ----------------------
-# CURRENT PATCH LEVEL:         3       00158
-# --------------------         -----   ----------------------
-#
-# 29 Jun 92    Chris G. Demetriou      Fix vers.o for kernel profiling and
-#                                              plain old link
-# 25 Mar 93    Sean Eric Fagan         Add support for assembler source
-# 25 Apr 93    Bruce Evans             Support for intr-0.0, and some fixes
-#              Rodney W. Grimes        Added depedencies for conf.o due to
-#                                      all the new drivers. And to param.c
-#                                      because there were missing.
-# 26 May 97    Rodney W. Grimes        Remove extra SYSTEM_LD_TAIL
-#                                      Redirect stderr from dbsym to null,
-#                                      this is bad, but atleast I won't get
-#                                      100's of bug reports about the silly
-#                                      warning from dbsym.
-#
 TOUCH= touch -f -c
 LD=    /usr/bin/ld
 CC=    cc 
 CPP=   cpp
 TOUCH= touch -f -c
 LD=    /usr/bin/ld
 CC=    cc 
 CPP=   cpp
+STRIP= strip
+DBSYM= /usr/sbin/dbsym
 
 S=     ../..
 I386=  ../../i386
 
 S=     ../..
 I386=  ../../i386
@@ -47,23 +33,27 @@ I386=       ../../i386
 INCLUDES= -I. -I$S -I$S/sys
 COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DNPX
 ASFLAGS=
 INCLUDES= -I. -I$S -I$S/sys
 COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DNPX
 ASFLAGS=
-CFLAGS=        -O ${COPTS}
+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} $<
 
 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
+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_DEP=Makefile symbols.sort ${SYSTEM_OBJS}
 SYSTEM_LD_HEAD=        @echo loading $@; rm -f $@
-SYSTEM_LD= @${LD} -z -T FE000000 -o $@ -X vers.o ${SYSTEM_OBJS}
+SYSTEM_LD= @${LD} -z -T ${LOAD_ADDRESS} -o $@ -X vers.o ${SYSTEM_OBJS}
 SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; \
 SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; \
-               dbsym $@ 2>/dev/null || true; size $@; chmod 755 $@
+       ${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} $< ; \
 GPROF.EX=      /usr/src/lib/csu.i386/gprof.ex
 PROFILE_C=     ${CC} -S -c ${CFLAGS} $< ; \
-               ex - $*.s < ${GPROF.EX} ; \
+               ed - $*.s < ${GPROF.EX} ; \
                ${AS} -o $@ $*.s ; \
                rm -f $*.s
 
                ${AS} -o $@ $*.s ; \
                rm -f $*.s
 
@@ -94,6 +84,9 @@ locore.o: assym.s ${I386}/i386/locore.s machine/trap.h machine/psl.h \
        ${CPP} -I. -DLOCORE ${COPTS} ${I386}/i386/locore.s | \
                ${AS} ${ASFLAGS} -o locore.o
 
        ${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
 
 # the following is necessary because autoconf.o depends on #if GENERIC
 autoconf.o: Makefile
 
@@ -101,15 +94,11 @@ autoconf.o: Makefile
 af.o uipc_proto.o locore.o: Makefile
 
 # depend on maxusers
 af.o uipc_proto.o locore.o: Makefile
 
 # depend on maxusers
-assym.s machdep.o: Makefile
+assym.s: Makefile
 
 # depends on KDB (cons.o also depends on GENERIC)
 trap.o cons.o: Makefile
 
 
 # depends on KDB (cons.o also depends on GENERIC)
 trap.o cons.o: Makefile
 
-assym.s: $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
-
 assym.s: genassym
        ./genassym >assym.s
 
 assym.s: genassym
        ./genassym >assym.s
 
@@ -118,7 +107,7 @@ genassym:
                 ${I386}/i386/genassym.c -o genassym
 
 depend: assym.s param.c
                 ${I386}/i386/genassym.c -o genassym
 
 depend: assym.s param.c
-       sh /usr/bin/mkdep ${COPTS} ${CFILES} ioconf.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:
        sh /usr/bin/mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${I386}/i386/genassym.c
 
 links:
@@ -136,25 +125,17 @@ 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
 
     ${I386}/isa/isa_device.h ${I386}/isa/isa.h ${I386}/isa/icu.h
        ${CC} -c ${CFLAGS} ioconf.c
 
-conf.o: $S/sys/param.h $S/sys/systm.h $S/sys/buf.h $S/sys/ioctl.h \
-       $S/sys/tty.h $S/sys/conf.h \
-       as.h bpfilter.h cd.h ch.h com.h dcfclk.h fd.h lpa.h \
-       lpt.h pty.h sd.h speaker.h st.h wd.h wt.h \
-       ${I386}/i386/conf.c
+conf.o: ${I386}/i386/conf.c
        ${CC} -traditional -c ${CFLAGS} ${I386}/i386/conf.c
 
        ${CC} -traditional -c ${CFLAGS} ${I386}/i386/conf.c
 
-param.c: $S/conf/param.c \
-       $S/sys/param.h $S/sys/systm.h $S/sys/socket.h $S/sys/proc.h \
-       $S/sys/vnode.h $S/sys/file.h $S/sys/callout.h $S/sys/clist.h \
-       $S/sys/mbuf.h $S/ufs/quota.h $S/sys/kernel.h machine/vmparam.h \
-       $S/sys/shm.h
+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
 
        -rm -f param.c
        cp $S/conf/param.c .
 
 param.o: param.c Makefile
        ${CC} -c ${CFLAGS} ${PARAM} param.c
 
-newvers:
+vers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
        sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT}
        ${CC} ${CFLAGS} -c vers.c
 
        sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT}
        ${CC} ${CFLAGS} -c vers.c