NetBSD/sys/arch/amigappc/conf/Makefile.amigappc
is 0ce3451d1f Initial AmigaPPC commit.
Lots of the work was done by Adam Ciarcinsky.

Currently, this only supports CyberPPC boards by Phase 5. Blizzard PPC
expected later.

The kernel is useless but for demonstrating that it starts... especially
interupts, and most of MMU support, is not in yet. Builtin console works,
however, and you can look at the kernel startup messages.
2000-05-25 22:11:57 +00:00

211 lines
5.5 KiB
Makefile

MACHTYPE=powerpc
MACHINE_ARCH=powerpc
MACHINE=amigappc
# Makefile for NetBSD
#
# This makefile is constructed from a machine description:
# config machineid
# Most changes should be made in the machine description
# /sys/arch/amiga/conf/``machineid''
# after which you should do
# config machineid
# Machine generic makefile changes should be made in
# /sys/arch/amiga/conf/Makefile.amiga
# 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 if debugging.
# PROF is set to -pg if profiling.
AR= /usr/pkg/cross/powerpc-netbsd/bin/ar
AS= /usr/pkg/cross/powerpc-netbsd/bin/as
CC= /usr/pkg/cross/powerpc-netbsd/bin/cc
CPP= /usr/pkg/cross/lib/gcc-lib/powerpc-netbsd/egcs-2.91.60/cpp
LD= /usr/pkg/cross/powerpc-netbsd/bin/ld
LORDER?=lorder
MKDEP?= mkdep
NM= /usr/pkg/cross/powerpc-netbsd/bin/nm
RANLIB= /usr/pkg/cross/powerpc-netbsd/bin/ranlib
SIZE= /usr/pkg/cross/powerpc-netbsd/bin/size
STRIP= /usr/pkg/cross/powerpc-netbsd/bin/strip
TSORT?= tsort -q
COPTS?= -O2
# source tree is located via $S relative to the compilation directory
.ifndef S
S!= cd ../../../..; pwd
.endif
AMIGA= $S/arch/amigappc
HAVE_GCC28!= ${CC} --version | egrep "^(2\.8|egcs)" ; echo
INCLUDES= -I. -I$S/arch -I$S -nostdinc
CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -Damiga -DFPCOPROC
CWARNFLAGS?= -Werror -Wreturn-type -Wpointer-arith
.if (${HAVE_GCC28} != "")
CWARNFLAGS+= -Wno-main
.endif
.if empty(IDENT:M-DPPC604E)
CMACHFLAGS= -mcpu=603e
.else
CMACHFLAGS= -mcpu=604e
.endif
CFLAGS= ${DEBUG} ${CWARNFLAGS} ${COPTS} ${CMACHFLAGS} -msoft-float
AFLAGS= -x assembler-with-cpp -traditional-cpp -D_LOCORE
LINKFLAGS= -N -Ttext 0x7c00000 -e __start
STRIPFLAGS= --strip-debug
%INCLUDES
### find out what to use for libkern
KERN_AS= obj
.include "$S/lib/libkern/Makefile.inc"
.ifndef PROF
LIBKERN= ${KERNLIB}
.else
LIBKERN= ${KERNLIB_PROF}
.endif
### find out what to use for libcompat
.include "$S/compat/common/Makefile.inc"
.ifndef PROF
LIBCOMPAT= ${COMPATLIB}
.else
LIBCOMPAT= ${COMPATLIB_PROF}
.endif
# compile rules: rules are named ${TYPE}_${SUFFIX} where TYPE is NORMAL or
# HOSTED}, and SUFFIX is the file suffix, capitalized (e.g. C for a .c file).
NORMAL_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<
NOPROF_C= ${CC} ${CFLAGS} ${CPPFLAGS} -c $<
NORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $<
.SUFFIXES: .o .g
.g.o: ; echo This is a dummy rule and should not be executed.
NORMAL_G= gspa < $< | gspahextoc > $*.c; ${CC} -c ${CFLAGS} ${PROF} $*.c
%OBJS
%CFILES
%SFILES
# 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 \
param.o ioconf.o ${OBJS} ${LIBCOMPAT} ${LIBKERN}
SYSTEM_DEP= Makefile ${SYSTEM_OBJ}
SYSTEM_LD_HEAD= @rm -f $@
SYSTEM_LD= @echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_OBJ}' vers.o; \
${LD} ${LINKFLAGS} -o $@ ${SYSTEM_OBJ} vers.o
SYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@
DEBUG?=
.if ${DEBUG} == "-g"
LINKFLAGS+= -X
SYSTEM_LD_TAIL+=; \
echo mv -f $@ $@.gdb; mv -f $@ $@.gdb; \
echo ${STRIP} ${STRIPFLAGS} -o $@ $@.gdb; \
${STRIP} ${STRIPFLAGS} -o $@ $@.gdb
.else
LINKFLAGS+= -x
.endif
%LOAD
assym.h: ${AMIGA}/amigappc/genassym.cf $S/kern/genassym.sh
sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \
< ${AMIGA}/amigappc/genassym.cf > assym.h.tmp && \
mv -f assym.h.tmp assym.h
param.c: $S/conf/param.c
rm -f param.c
cp $S/conf/param.c .
param.o: param.c Makefile
${NORMAL_C}
ioconf.o: ioconf.c
${NORMAL_C}
newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
sh $S/conf/newvers.sh
${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
__CLEANKERNEL: .USE
@echo "${.TARGET}ing the kernel objects"
rm -f eddep *netbsd netbsd.gdb tags *.[io] [a-z]*.s \
[Ee]rrs linterrs makelinks assym.h.tmp assym.h
__CLEANDEPEND: .USE
rm -f .depend
clean: __CLEANKERNEL
cleandir distclean: __CLEANKERNEL __CLEANDEPEND
lint:
@lint -hbxncez -Dvolatile= ${CPPFLAGS} -UKGDB \
${CFILES} ioconf.c param.c | \
grep -v 'static function .* unused'
tags:
@echo "see $S/kern/Makefile for tags"
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
SRCS= ${AMIGA}/amigappc/locore.S \
param.c ioconf.c ${CFILES} ${SFILES}
depend: .depend
.depend: ${SRCS} assym.h param.c
${MKDEP} ${AFLAGS} ${CPPFLAGS} ${AMIGA}/amigappc/locore.S
${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES}
# ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES}
sh $S/kern/genassym.sh ${MKDEP} -f assym.dep ${CFLAGS} \
${CPPFLAGS} < ${AMIGA}/amigappc/genassym.cf
@sed -e 's/.*\.o:.*\.c/assym.h:/' < assym.dep >> .depend
@rm -f assym.dep
# depend on root or device configuration
autoconf.o conf.o: Makefile
# depend on network configuration
uipc_proto.o: Makefile
# depend on maxusers
machdep.o: Makefile
# depend on CPU configuration
amiga_init.o locore.o pmap.o sys_machdep.o: Makefile
bzsc.o bztzsc.o cbiisc.o cbsc.o flsc.o sbic.o: Makefile
# depends on defined(DRACO)
a2kbbc.o: Makefile
# LEV6_DEFER blocks usage of audio interupt 3:
aucc.o cc.o: Makefile
locore.o: ${AMIGA}/amigappc/locore.S assym.h
${NORMAL_S}
%RULES