Makefile.sun2 revision 1.11
11.11Sfredette# $NetBSD: Makefile.sun2,v 1.11 2001/12/01 15:23:18 fredette Exp $
21.1Sfredette
31.1Sfredette# Makefile for NetBSD
41.1Sfredette#
51.1Sfredette# This makefile is constructed from a machine description:
61.1Sfredette#	config machineid
71.1Sfredette# Most changes should be made in the machine description
81.1Sfredette#	/sys/arch/sun2/conf/``machineid''
91.1Sfredette# after which you should do
101.1Sfredette#	config machineid
111.1Sfredette# Machine generic makefile changes should be made in
121.1Sfredette#	/sys/arch/sun2/conf/Makefile.sun2
131.1Sfredette# after which config should be rerun for all machines of that type.
141.1Sfredette#
151.11Sfredette# To specify debugging, add the config line: makeoptions DEBUG="-g"
161.11Sfredette# A better way is to specify -g only for a few files.
171.1Sfredette#
181.11Sfredette#	makeoptions DEBUGLIST="uvm* trap if_*"
191.1Sfredette
201.6SthorpejMACHINE_ARCH=m68000
211.7SjmcUSETOOLS?=	no
221.11SfredetteNEED_OWN_INSTALL_TARGET?=no
231.7Sjmc.include <bsd.own.mk>
241.6Sthorpej
251.11Sfredette##
261.11Sfredette## (1) port identification
271.11Sfredette##
281.11SfredetteSUN2=		$S/arch/sun2
291.11SfredetteGENASSYM=	${SUN2}/sun2/genassym.cf
301.11Sfredette
311.11Sfredette##
321.11Sfredette## (2) compile settings
331.11Sfredette##
341.1Sfredette# Override CPP defaults entirely, so cross-compilation works.
351.1Sfredette# Keep -nostdinc before all -I flags, similar for -undef ...
361.5SfredetteXDEFS=		-undef -D__NetBSD__ -Dm68k -Dmc68000 -D__ELF__ -D__SVR4_ABI__
371.11SfredetteDEFINES=	-Dsun2
381.11SfredetteCPPFLAGS+=	${XDEFS} ${DEFINES}
391.11SfredetteCFLAGS+=	-msoft-float -fno-defer-pop
401.1SfredetteAPPFLAGS=	-x assembler-with-cpp -P -traditional ${CPPFLAGS} -D_LOCORE
411.1Sfredette
421.11Sfredette# Do NOT assume the compiler does "-x funny_format" (gcc-specific)
431.11Sfredette# This needs an intermediate file.  The original file is always
441.11Sfredette# safe in some far away directory, so just use the base name.
451.11SfredetteNORMAL_S=	${CPP} ${APPFLAGS} $< > $*.s ;\
461.11Sfredette		${AS} -o $@ $*.s ; rm $*.s
471.1Sfredette
481.11Sfredette##
491.11Sfredette## (3) libkern and compat
501.11Sfredette##
511.1SfredetteKERN_AS=	obj
521.4Sfredette# XXX lib/libkern/arch/m68k/Makefile.inc needs to know that
531.4Sfredette# XXX our MACHINE_ARCH is m68000, and not m68k.  --fredette
541.2SfredetteKERNMISCMAKEFLAGS=	MACHINE_ARCH=${MACHINE_ARCH}
551.1Sfredette
561.11Sfredette##
571.11Sfredette## (4) local objects, compile rules, and dependencies
581.11Sfredette##
591.11SfredetteMD_OBJS=	locore.o
601.11SfredetteMD_CFILES=
611.11SfredetteMD_SFILES=	${SUN2}/sun2/locore.s
621.1Sfredette
631.11Sfredettelocore.o: ${SUN2}/sun2/locore.s
641.11Sfredette	${NORMAL_S}
651.1Sfredette
661.11Sfredette##
671.11Sfredette## (5) link settings
681.11Sfredette##
691.11SfredetteLINKFORMAT=	-N
701.11SfredetteTEXTADDR?=	00006000
711.11Sfredette
721.11Sfredette##
731.11Sfredette## (6) port specific target dependencies
741.11Sfredette##
751.1Sfredette
761.1Sfredette# For cross-compilation, the "gcc -M" mkdep script is convenient,
771.1Sfredette# but that does not correctly make rules from *.s files.  The
781.1Sfredette# easiest work-around is to just list those dependencies here.
791.1Sfredettelocore.o:   assym.h m68k/asm.h m68k/trap.h
801.1Sfredettecopy.o:     assym.h m68k/asm.h $S/sys/errno.h
811.1Sfredettebcopy.o:    assym.h m68k/asm.h
821.1Sfredettecopypage.o: assym.h m68k/asm.h
831.1Sfredette
841.9Slukem# depend on CPU configuration
851.1Sfredettedb_machdep.o dvma.o machdep.o pmap.o sun2_startup.o vm_machdep.o: Makefile
861.1Sfredette
871.1Sfredette# depends on DDB, etc.
881.1Sfredettestub.o: Makefile
891.1Sfredette
901.11Sfredette##
911.11Sfredette## (7) misc settings
921.11Sfredette##
931.11SfredetteMKDEP_AFLAGS=	${APPFLAGS}
941.11Sfredette
951.11Sfredette##
961.11Sfredette## (8) config(8) generated machinery
971.11Sfredette##
981.11Sfredette%INCLUDES
991.11Sfredette
1001.11Sfredette%OBJS
1011.11Sfredette
1021.11Sfredette%CFILES
1031.1Sfredette
1041.11Sfredette%SFILES
1051.1Sfredette
1061.11Sfredette%LOAD
1071.1Sfredette
1081.1Sfredette%RULES
1091.11Sfredette
1101.11Sfredette##
1111.11Sfredette## (9) port independent kernel machinery
1121.11Sfredette##
1131.11Sfredette.include "$S/conf/Makefile.kern.inc"
114