11.9Smrg# $NetBSD: Makefile.hppa,v 1.9 2023/08/08 06:27:32 mrg Exp $
21.1Sskrll
31.1Sskrll# Makefile for NetBSD
41.1Sskrll#
51.1Sskrll# This makefile is constructed from a machine description:
61.1Sskrll#	config machineid
71.1Sskrll# Most changes should be made in the machine description
81.1Sskrll#	/sys/arch/hppa/conf/``machineid''
91.1Sskrll# after which you should do
101.1Sskrll#	config machineid
111.1Sskrll# Machine generic makefile changes should be made in
121.1Sskrll#	/sys/arch/hppa/conf/Makefile.hppa
131.1Sskrll# after which config should be rerun for all machines of that type.
141.1Sskrll#
151.1Sskrll# To specify debugging, add the config line: makeoptions DEBUG="-g"
161.1Sskrll# A better way is to specify -g only for a few files.
171.1Sskrll#
181.1Sskrll#	makeoptions DEBUGLIST="uvm* trap if_*"
191.1Sskrll
201.1SskrllMACHINE_ARCH=hppa
211.1SskrllNEED_OWN_INSTALL_TARGET?=no
221.1Sskrll.include <bsd.own.mk>
231.1Sskrll
241.1Sskrll##
251.1Sskrll## (1) port identification
261.1Sskrll##
271.1SskrllHPPA=		$S/arch/hppa
281.1SskrllGENASSYM_CONF=	${HPPA}/hppa/genassym.cf
291.1Sskrll
301.1Sskrll##
311.1Sskrll## (2) compile settings
321.1Sskrll##
331.1SskrllCPPFLAGS+=	-Dhppa
341.1SskrllCFLAGS+=	-mpa-risc-1-1 -msoft-float -mdisable-fpregs
351.1Sskrll
361.1Sskrll.include "${HPPA}/spmath/Makefile.inc"
371.1Sskrll
381.1Sskrll.ifndef PROF
391.1SskrllLIBSPMATH=	${SPMATH}
401.1Sskrll.else
411.1SskrllLIBSPMATH=	${SPMATH_PROF}
421.1Sskrll.endif
431.1Sskrll
441.1SskrllCFLAGS+=	-mno-space-regs -mfast-indirect-calls -mportable-runtime
451.1SskrllAFLAGS+=	-x assembler-with-cpp -P -traditional
461.1Sskrll
471.1SskrllOPT_DDB=	%DDB%
481.1Sskrll.if !empty(OPT_DDB)
491.1SskrllCFLAGS+=	-fno-omit-frame-pointer
501.1Sskrll.endif
511.1Sskrll
521.1Sskrll##
531.1Sskrll## (3) libkern and compat
541.1Sskrll##
551.6SrinOPT_MODULAR=	%MODULAR%
561.1Sskrll
571.1Sskrll##
581.1Sskrll## (4) local objects, compile rules, and dependencies
591.1Sskrll##
601.5SuebayasiMD_OBJS=	locore.o
611.5SuebayasiMD_LIBS=	${LIBSPMATH}
621.1SskrllMD_CFILES=
631.1SskrllMD_SFILES=	${HPPA}/hppa/locore.S
641.1Sskrll
651.1Sskrlllocore.o: ${HPPA}/hppa/locore.S
661.1Sskrll	${NORMAL_S}
671.1Sskrll
681.1Sskrll##
691.1Sskrll## (5) link settings
701.1Sskrll##
711.3SuebayasiKERNLDSCRIPT=	${HPPA}/conf/ld.script
721.1SskrllTEXTADDR?=	00200000
731.1SskrllLINKFLAGS_NORMAL=       -X
741.1SskrllEXTRA_LINKFLAGS= -Map $@.map
751.1Sskrll
761.1Sskrll##
771.1Sskrll## (6) port specific target dependencies
781.1Sskrll##
791.1Sskrll
801.1Sskrll# depend on CPU configuration
811.1Sskrlldb_machdep.o machdep.o pmap.o vm_machdep.o: Makefile
821.1Sskrll
831.1Sskrll# depends on KGDBDEV, KGDBRATE, DDB, etc.
841.1Sskrllcom_gsc.o clock.o pdc.o autoconf.o machdep.o: Makefile
851.1Sskrll
861.1Sskrll##
871.1Sskrll## (7) misc settings
881.1Sskrll##
891.1Sskrll
901.9Smrg# GCC 12 gets this wrong
911.9SmrgCOPTS.pdc.c+=	${CC_WNO_ARRAY_BOUNDS}
921.9Smrg
931.1Sskrll##
941.1Sskrll## (8) config(8) generated machinery
951.1Sskrll##
961.1Sskrll%INCLUDES
971.1Sskrll
981.1Sskrll%OBJS
991.1Sskrll
1001.1Sskrll%CFILES
1011.1Sskrll
1021.1Sskrll%SFILES
1031.1Sskrll
1041.1Sskrll%LOAD
1051.1Sskrll
1061.1Sskrll%RULES
1071.1Sskrll
1081.1Sskrll##
1091.1Sskrll## (9) port independent kernel machinery
1101.1Sskrll##
1111.1Sskrll.include "$S/conf/Makefile.kern.inc"
1121.1Sskrll
1131.1Sskrll##
1141.1Sskrll## (10) Appending make options.
1151.1Sskrll##
1161.1Sskrll%MAKEOPTIONSAPPEND
117