1*8e4cbbd3Sdsl# $NetBSD: Makefile.amd64,v 1.44 2014/02/05 23:10:41 dsl Exp $ 281918bf8Sfvdl 381918bf8Sfvdl# Makefile for NetBSD 481918bf8Sfvdl# 581918bf8Sfvdl# This makefile is constructed from a machine description: 681918bf8Sfvdl# config machineid 781918bf8Sfvdl# Most changes should be made in the machine description 881918bf8Sfvdl# /sys/arch/amd64/conf/``machineid'' 981918bf8Sfvdl# after which you should do 1081918bf8Sfvdl# config machineid 1181918bf8Sfvdl# Machine generic makefile changes should be made in 1281918bf8Sfvdl# /sys/arch/amd64/conf/Makefile.amd64 1381918bf8Sfvdl# after which config should be rerun for all machines of that type. 1481918bf8Sfvdl# 1581918bf8Sfvdl# To specify debugging, add the config line: makeoptions DEBUG="-g" 1681918bf8Sfvdl# A better way is to specify -g only for a few files. 1781918bf8Sfvdl# 1881918bf8Sfvdl# makeoptions DEBUGLIST="uvm* trap if_*" 1981918bf8Sfvdl 2081918bf8SfvdlMACHINE_ARCH=x86_64 2181918bf8SfvdlUSETOOLS?= no 2281918bf8SfvdlNEED_OWN_INSTALL_TARGET?=no 2381918bf8Sfvdl.include <bsd.own.mk> 2481918bf8Sfvdl 2573950688StronUSE_SSP?= yes 2673950688Stron 2781918bf8Sfvdl## 2881918bf8Sfvdl## (1) port identification 2981918bf8Sfvdl## 3081918bf8SfvdlAMD64= $S/arch/amd64 31f6b4c20fSchristosGENASSYM_CONF= ${AMD64}/amd64/genassym.cf 3281918bf8Sfvdl 3381918bf8Sfvdl## 3481918bf8Sfvdl## (2) compile settings 3581918bf8Sfvdl## 36041046e7SfvdlDEFCOPTS= -O2 3781918bf8SfvdlCPPFLAGS+= -Damd64 -Dx86_64 3881918bf8SfvdlCFLAGS+= -mcmodel=kernel 39*8e4cbbd3Sdsl# -mno-sse implies -mno-sse2 (etc), explicitly disable avx to be extra sure 40d74c3e3bSdslCFLAGS+= -mno-red-zone -mno-mmx -mno-sse -mno-avx 41d74c3e3bSdsl# make absolutely sure we don't get x87 registers used as well 42*8e4cbbd3SdslCFLAGS+= -msoft-float 43*8e4cbbd3Sdsl# For gcc we might need this, but other compilers barf 44*8e4cbbd3Sdsl# CFLAGS+= -mno-fp-ret-in-387 4581918bf8Sfvdl 4681918bf8Sfvdl## 4781918bf8Sfvdl## (3) libkern and compat 4881918bf8Sfvdl## 493c479c5aSchristosOPT_MODULAR= %MODULAR% 503c479c5aSchristos.if !empty(OPT_MODULAR) 5181918bf8SfvdlKERN_AS= obj 523c479c5aSchristos.else 533c479c5aSchristosKERN_AS= library 543c479c5aSchristos.endif 5581918bf8Sfvdl 5681918bf8Sfvdl## 5781918bf8Sfvdl## (4) local objects, compile rules, and dependencies 5881918bf8Sfvdl## 5909b51ec9SkardelMD_OBJS= locore.o vector.o copy.o spl.o 6081918bf8SfvdlMD_CFILES= 6181918bf8SfvdlMD_SFILES= ${AMD64}/amd64/locore.S ${AMD64}/amd64/vector.S \ 6209b51ec9Skardel ${AMD64}/amd64/copy.S ${AMD64}/amd64/spl.S 6381918bf8Sfvdl 6481918bf8Sfvdllocore.o: ${AMD64}/amd64/locore.S assym.h 6581918bf8Sfvdl ${NORMAL_S} 6681918bf8Sfvdl 6781918bf8Sfvdlvector.o: ${AMD64}/amd64/vector.S assym.h 6881918bf8Sfvdl ${NORMAL_S} 6981918bf8Sfvdl 7081918bf8Sfvdlcopy.o: ${AMD64}/amd64/copy.S assym.h 7181918bf8Sfvdl ${NORMAL_S} 7281918bf8Sfvdl 7381918bf8Sfvdlspl.o: ${AMD64}/amd64/spl.S assym.h 7481918bf8Sfvdl ${NORMAL_S} 7581918bf8Sfvdl 7681918bf8Sfvdl## 7781918bf8Sfvdl## (5) link settings 7881918bf8Sfvdl## 7981918bf8SfvdlTEXTADDR?= 0xffffffff80100000 80980b1066SskrllEXTRA_LINKFLAGS= -z max-page-size=0x100000 8181918bf8SfvdlLINKFLAGS_NORMAL= -X 8281918bf8SfvdlKERN_LDSCRIPT?= kern.ldscript 8381918bf8SfvdlLINKFORMAT= -T ${AMD64}/conf/${KERN_LDSCRIPT} 8481918bf8Sfvdl 8581918bf8Sfvdl## 8681918bf8Sfvdl## (6) port specific target dependencies 8781918bf8Sfvdl## 8881918bf8Sfvdl 8981918bf8Sfvdl# depend on CPU configuration 9081918bf8Sfvdllocore.o machdep.o: Makefile 9181918bf8Sfvdl 9277a5d439Sjoergacpi_wakeup_low.o amd64func.o busfunc.o cpufunc.o cpu_in_cksum.o: assym.h 9377a5d439Sjoerglinux_support.o linux32_sigcode.o lock_stubs.o mptramp.o: assym.h 9477a5d439Sjoergnetbsd32_sigcode.o: assym.h 9581918bf8Sfvdl 9681918bf8Sfvdl## 9781918bf8Sfvdl## (7) misc settings 9881918bf8Sfvdl## 9981918bf8Sfvdl 10081918bf8Sfvdl## 10181918bf8Sfvdl## (8) config(8) generated machinery 10281918bf8Sfvdl## 10381918bf8Sfvdl%INCLUDES 10481918bf8Sfvdl 10581918bf8Sfvdl%OBJS 10681918bf8Sfvdl 10781918bf8Sfvdl%CFILES 10881918bf8Sfvdl 10981918bf8Sfvdl%SFILES 11081918bf8Sfvdl 11181918bf8Sfvdl%LOAD 11281918bf8Sfvdl 11381918bf8Sfvdl%RULES 11431f44cb2Salc 11581918bf8Sfvdl## 11681918bf8Sfvdl## (9) port independent kernel machinery 11781918bf8Sfvdl## 11881918bf8Sfvdl.include "$S/conf/Makefile.kern.inc" 119e33c2bb5Sthorpej 1201b91baa7Schristos## Include rules for ACPI wakecode 1211b91baa7Schristos.include "$S/arch/x86/acpi/Makefile.wakecode.inc" 1221b91baa7Schristos 123e33c2bb5Sthorpej## 124e33c2bb5Sthorpej## (10) Appending make options. 125e33c2bb5Sthorpej## 126e33c2bb5Sthorpej%MAKEOPTIONSAPPEND 127