Makefile.sparc64 revision 1.67
11.67Smartin# $NetBSD: Makefile.sparc64,v 1.67 2008/08/30 13:23:55 martin Exp $ 21.45Seeh 31.45Seeh#========================================================================= 41.45Seeh# 51.45Seeh# ***** WARNING ****** 61.45Seeh# 71.45Seeh# ANYONE WHO CHANGES THIS MAKEFILE AND DOES NOT TEST BOTH A 32-BIT 81.45Seeh# AND 64-BIT KERNEL WILL BE SHOT. 91.45Seeh# 101.45Seeh#========================================================================= 111.45Seeh 121.1Seeh 131.1Seeh# Makefile for NetBSD 141.1Seeh# 151.1Seeh# This makefile is constructed from a machine description: 161.1Seeh# config machineid 171.1Seeh# Most changes should be made in the machine description 181.1Seeh# /sys/arch/sparc64/conf/``machineid'' 191.1Seeh# after which you should do 201.1Seeh# config machineid 211.1Seeh# Machine generic makefile changes should be made in 221.1Seeh# /sys/arch/sparc64/conf/Makefile.sparc64 231.1Seeh# after which config should be rerun for all machines of that type. 241.44Satatat# 251.44Satatat# To specify debugging, add the config line: makeoptions DEBUG="-g" 261.44Satatat# A better way is to specify -g only for a few files. 271.44Satatat# 281.44Satatat# makeoptions DEBUGLIST="uvm* trap if_*" 291.1Seeh 301.45Seeh# Default to 32-bit. Set the MACHINE_ARCH accordingly. 311.45Seeh# 321.45Seeh# You must also be using the correct toolchain or the kernel build 331.45Seeh# will fail. 341.45Seeh# 351.41SthorpejLP64?= no 361.41Sthorpej.if ${LP64} == "yes" 371.40SthorpejMACHINE_ARCH=sparc64 381.41Sthorpej.else 391.41SthorpejMACHINE_ARCH=sparc 401.41Sthorpej.endif 411.42Sjmc 421.42SjmcUSETOOLS?= no 431.44SatatatNEED_OWN_INSTALL_TARGET?=no 441.39Sthorpej.include <bsd.own.mk> 451.39Sthorpej 461.44Satatat## 471.44Satatat## (1) port identification 481.44Satatat## 491.1SeehSPARC64= $S/arch/sparc64 501.56SchristosGENASSYM_CONF= ${SPARC64}/sparc64/genassym.cf 511.1Seeh 521.44Satatat## 531.44Satatat## (2) compile settings 541.44Satatat## 551.45SeehCPPFLAGS+= -Dsparc64 -D__sparc64__ 561.40Sthorpej.if ${LP64} == "yes" 571.45Seeh# 64-bit kernels 581.45SeehCPPFLAGS+= -D_LP64 -Wa,-Av9a 591.45SeehAFLAGS+= -Wa,-Av9a 601.54SmartinCC_NOOPT= ${NORMAL_C} 611.30Seeh.if defined(PROF) 621.45Seeh# Profiling is only supported in the medium low memory model. 631.45SeehCFLAGS+= -mcmodel=medlow 641.45Seeh.else 651.45Seeh# Since the kernel resides in the lower 32 bits, use medium low for now anyway. 661.40SthorpejCFLAGS+= -mcmodel=medlow 671.30Seeh.endif 681.45Seeh.else 691.45Seeh# 32-bit kernels 701.45SeehCPPFLAGS+= -m32 -Wa,-Av8plusa -mcpu=ultrasparc 711.45SeehAFLAGS+= -Wa,-Av8plusa 721.53Smartin# XXX 731.53Smartin# The sparc gcc version 3.3.3 (NetBSD nb1 20040301) does not compile this 741.53Smartin# file properly with higher optimizations 751.54SmartinCC_NOOPT= ${NORMAL_C:C/-O./-O0/} 761.45Seeh.endif 771.45SeehCFLAGS+= -mno-fpu 781.45SeehAFLAGS+= -x assembler-with-cpp -traditional-cpp 791.44Satatat 801.44Satatat## 811.44Satatat## (3) libkern and compat 821.44Satatat## 831.52Smartin# KERN_AS= obj # memcpy, memset, etc. are in locore.s 841.44Satatat 851.44Satatat## 861.44Satatat## (4) local objects, compile rules, and dependencies 871.44Satatat## 881.44SatatatMD_OBJS= locore.o 891.44SatatatMD_CFILES= 901.44SatatatMD_SFILES= ${SPARC64}/sparc64/locore.s 911.31Seeh 921.44Satatatlocore.o: ${SPARC64}/sparc64/locore.s assym.h 931.44Satatat ${NORMAL_S} 941.51Schristos 951.44Satatat## 961.44Satatat## (5) link settings 971.44Satatat## 981.44SatatatTEXTADDR?= 01000000 991.67SmartinLINKFORMAT= -T ${SPARC64}/conf/${KERN_LDSCRIPT} 1001.40Sthorpej.if ${LP64} == "yes" 1011.34SmrgKERN_LDSCRIPT?= kern.ldscript 1021.35Smrg.else 1031.35SmrgKERN_LDSCRIPT?= kern32.ldscript 1041.35Smrg.endif 1051.31Seeh 1061.44Satatat## 1071.44Satatat## (6) port specific target dependencies 1081.44Satatat## 1091.10Smrg 1101.44Satatat# depend on CPU configuration 1111.44Satatatbwtwo.o cgsix.o cgthree.o cgtwo.o cons.o dma.o esp.o fb.o if_ie.o: Makefile 1121.44Satatatms.c obio.o zs.c autoconf.o clock.o cpu.o disksubr.o locore.o: Makefile 1131.44Satatatmachdep.o mem.o openprom.o pmap.o vm_machdep.o: Makefile 1141.44Satatat 1151.66Sjoergcpu_in_cksum.o lock_stubs.o: assym.h 1161.66Sjoerg 1171.44Satatat## 1181.44Satatat## (7) misc settings 1191.44Satatat## 1201.48Sjdolecek 1211.48Sjdolecek# define .MAIN _before_ the make() check, so that implicit target 1221.48Sjdolecek# would be defined 1231.48Sjdolecek.MAIN: all 1241.47Smrg 1251.47Smrg.if make(depend) || make(all) || make(dependall) 1261.47Smrg.BEGIN: 1271.47Smrg @rm -f sparc && \ 1281.47Smrg ln -s $S/arch/sparc/include sparc 1291.47Smrg.endif 1301.44Satatat 1311.44Satatat## 1321.44Satatat## (8) config(8) generated machinery 1331.44Satatat## 1341.10Smrg%INCLUDES 1351.1Seeh 1361.1Seeh%OBJS 1371.1Seeh 1381.1Seeh%CFILES 1391.1Seeh 1401.1Seeh%SFILES 1411.1Seeh 1421.1Seeh%LOAD 1431.2Smrg 1441.44Satatat%RULES 1451.1Seeh 1461.62Sgdamore## Include rules for Atheros WLAN 1471.62Sgdamore.include "$S/contrib/dev/ath/netbsd/Makefile.ath.inc" 1481.58Smartin 1491.44Satatat## 1501.44Satatat## (9) port independent kernel machinery 1511.44Satatat## 1521.44Satatat.include "$S/conf/Makefile.kern.inc" 1531.55Sthorpej 1541.55Sthorpej## 1551.55Sthorpej## (10) Appending make options. 1561.55Sthorpej## 1571.55Sthorpej%MAKEOPTIONSAPPEND 158