Makefile.amd64 revision 1.44
1# $NetBSD: Makefile.amd64,v 1.44 2014/02/05 23:10:41 dsl Exp $ 2 3# Makefile for NetBSD 4# 5# This makefile is constructed from a machine description: 6# config machineid 7# Most changes should be made in the machine description 8# /sys/arch/amd64/conf/``machineid'' 9# after which you should do 10# config machineid 11# Machine generic makefile changes should be made in 12# /sys/arch/amd64/conf/Makefile.amd64 13# after which config should be rerun for all machines of that type. 14# 15# To specify debugging, add the config line: makeoptions DEBUG="-g" 16# A better way is to specify -g only for a few files. 17# 18# makeoptions DEBUGLIST="uvm* trap if_*" 19 20MACHINE_ARCH=x86_64 21USETOOLS?= no 22NEED_OWN_INSTALL_TARGET?=no 23.include <bsd.own.mk> 24 25USE_SSP?= yes 26 27## 28## (1) port identification 29## 30AMD64= $S/arch/amd64 31GENASSYM_CONF= ${AMD64}/amd64/genassym.cf 32 33## 34## (2) compile settings 35## 36DEFCOPTS= -O2 37CPPFLAGS+= -Damd64 -Dx86_64 38CFLAGS+= -mcmodel=kernel 39# -mno-sse implies -mno-sse2 (etc), explicitly disable avx to be extra sure 40CFLAGS+= -mno-red-zone -mno-mmx -mno-sse -mno-avx 41# make absolutely sure we don't get x87 registers used as well 42CFLAGS+= -msoft-float 43# For gcc we might need this, but other compilers barf 44# CFLAGS+= -mno-fp-ret-in-387 45 46## 47## (3) libkern and compat 48## 49OPT_MODULAR= %MODULAR% 50.if !empty(OPT_MODULAR) 51KERN_AS= obj 52.else 53KERN_AS= library 54.endif 55 56## 57## (4) local objects, compile rules, and dependencies 58## 59MD_OBJS= locore.o vector.o copy.o spl.o 60MD_CFILES= 61MD_SFILES= ${AMD64}/amd64/locore.S ${AMD64}/amd64/vector.S \ 62 ${AMD64}/amd64/copy.S ${AMD64}/amd64/spl.S 63 64locore.o: ${AMD64}/amd64/locore.S assym.h 65 ${NORMAL_S} 66 67vector.o: ${AMD64}/amd64/vector.S assym.h 68 ${NORMAL_S} 69 70copy.o: ${AMD64}/amd64/copy.S assym.h 71 ${NORMAL_S} 72 73spl.o: ${AMD64}/amd64/spl.S assym.h 74 ${NORMAL_S} 75 76## 77## (5) link settings 78## 79TEXTADDR?= 0xffffffff80100000 80EXTRA_LINKFLAGS= -z max-page-size=0x100000 81LINKFLAGS_NORMAL= -X 82KERN_LDSCRIPT?= kern.ldscript 83LINKFORMAT= -T ${AMD64}/conf/${KERN_LDSCRIPT} 84 85## 86## (6) port specific target dependencies 87## 88 89# depend on CPU configuration 90locore.o machdep.o: Makefile 91 92acpi_wakeup_low.o amd64func.o busfunc.o cpufunc.o cpu_in_cksum.o: assym.h 93linux_support.o linux32_sigcode.o lock_stubs.o mptramp.o: assym.h 94netbsd32_sigcode.o: assym.h 95 96## 97## (7) misc settings 98## 99 100## 101## (8) config(8) generated machinery 102## 103%INCLUDES 104 105%OBJS 106 107%CFILES 108 109%SFILES 110 111%LOAD 112 113%RULES 114 115## 116## (9) port independent kernel machinery 117## 118.include "$S/conf/Makefile.kern.inc" 119 120## Include rules for ACPI wakecode 121.include "$S/arch/x86/acpi/Makefile.wakecode.inc" 122 123## 124## (10) Appending make options. 125## 126%MAKEOPTIONSAPPEND 127