13a0aa4ee0
amiga goes: config.new *and* /sys/scsi. clock code coerced into a single .c file adding an accurate usec delay(). disklabel.c updated to DTRT, code to write RDB's to be added soon. sbic (old scsi) converted over to new scsi and config this covers about 90% of users. Other drivers soon.
154 lines
4.3 KiB
Makefile
154 lines
4.3 KiB
Makefile
# @(#)Makefile.hp300 7.10 (Berkeley) 6/27/91
|
|
# $Id: Makefile.amiga,v 1.16 1994/05/08 05:52:50 chopps Exp $
|
|
#
|
|
# Makefile for 4.4 BSD
|
|
#
|
|
# This makefile is constructed from a machine description:
|
|
# config machineid
|
|
# Most changes should be made in the machine description
|
|
# /sys/conf/``machineid''
|
|
# after which you should do
|
|
# config machineid
|
|
# Machine generic makefile changes should be made in
|
|
# /sys/conf/Makefile.``machinetype''
|
|
# after which config should be rerun for all machines of that type.
|
|
#
|
|
# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE 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
|
|
|
|
|
|
# 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}
|
|
CC= cc ${DEBUG}
|
|
CPP= cpp
|
|
LD= ld
|
|
TOUCH= touch -f -c
|
|
GPROF.EX=/usr/src/usr.lib/libc/csu/amiga/gmon.ex
|
|
|
|
# source tree is located via $S relative to the compilation directory
|
|
S= ../../../..
|
|
AMIGA= ../..
|
|
|
|
INCLUDES= -I. -I$S/arch -I$S -I$S/sys
|
|
COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Dmc68020 -Damiga -DREFBIT
|
|
CFLAGS= -O -mc68020 -m68881 ${COPTS}
|
|
|
|
### find out what to use for libkern
|
|
.include "$S/lib/libkern/Makefile.inc"
|
|
.ifndef PROF
|
|
LIBKERN= ${KERNLIB}
|
|
.else
|
|
LIBKERN= ${KERNLIB_PROF}
|
|
.endif
|
|
# compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP}
|
|
# where TYPE is NORMAL, DRIVER, or PROFILE}; SUFFIX is the file suffix,
|
|
# 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} $<
|
|
|
|
PROFILE_C= ${CC} -S -c ${COPTS} $<; \
|
|
ex - $*.s < ${GPROF.EX}; \
|
|
${AS} -o $@ $*.s; \
|
|
rm -f $*.s
|
|
|
|
NORMAL_S= ${CPP} ${COPTS} $< | ${AS} -o $@
|
|
NORMAL_S_C= ${CPP} ${COPTS} ${PARAM} $< | ${AS} -o $@
|
|
|
|
%OBJS
|
|
|
|
%CFILES
|
|
|
|
# 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 ${OBJS} param.o ioconf.o vers.o ${LIBKERN}
|
|
SYSTEM_DEP= Makefile ${SYSTEM_OBJ}
|
|
SYSTEM_LD_HEAD= @echo loading $@; rm -f $@
|
|
SYSTEM_LD= @strip=-x; [ X${DEBUG} = X-g ] && strip=-X || true; \
|
|
${LD} $$strip -T 0 -n -o $@ -e start ${SYSTEM_OBJ}
|
|
SYSTEM_LD_TAIL= @size $@; chmod 755 $@; \
|
|
[ X${DEBUG} = X-g ] && { \
|
|
echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \
|
|
echo strip -d $@; strip -d $@; } || true
|
|
|
|
%LOAD
|
|
|
|
vers.o: newvers
|
|
|
|
newvers:
|
|
sh $S/conf/newvers.sh ${KERN_IDENT}
|
|
${CC} $(CFLAGS) -c vers.c
|
|
|
|
clean:
|
|
rm -f eddep *netbsd tags *.o locore.i [a-z]*.s \
|
|
Errs errs linterrs makelinks
|
|
|
|
lint: /tmp param.c
|
|
@lint -hbxn -DGENERIC -Dvolatile= ${COPTS} ${PARAM} -UKGDB \
|
|
${AMIGA}/amiga/Locore.c ${CFILES} ${AMIGA}/amiga/swapgeneric.c \
|
|
ioconf.c param.c| \
|
|
grep -v 'struct/union .* never defined' | \
|
|
grep -v 'possible pointer alignment problem'
|
|
|
|
locore.o: assym.s ${AMIGA}/amiga/vectors.s ${AMIGA}/amiga/locore.s
|
|
locore.o: machine/trap.h machine/psl.h machine/pte.h machine/cpu.h
|
|
${CPP} -DLOCORE ${COPTS} ${AMIGA}/amiga/locore.s | ${AS} -o locore.o
|
|
|
|
# the following is necessary because autoconf.o depends on #if GENERIC
|
|
autoconf.o: Makefile
|
|
|
|
# the following are necessary because the files depend on the types of
|
|
# hp cpu's included in the system configuration
|
|
clock.o machdep.o autoconf.o conf.o: Makefile
|
|
|
|
# depend on network configuration
|
|
af.o uipc_proto.o locore.o: Makefile
|
|
|
|
# depend on maxusers
|
|
assym.s: Makefile
|
|
|
|
assym.s: genassym
|
|
./genassym >assym.s
|
|
|
|
genassym:
|
|
${CC} ${INCLUDES} ${IDENT} ${PARAM} -Dmc68020 -Damiga -o genassym \
|
|
${AMIGA}/amiga/genassym.c
|
|
|
|
depend: assym.s param.c
|
|
mkdep ${COPTS} ${CFILES} ioconf.c param.c
|
|
mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${AMIGA}/amiga/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
|
|
${CC} -c ${CFLAGS} ioconf.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
|
|
|
|
%RULES
|