1*e5b5f123Smaxv# $NetBSD: Makefile.amd64,v 1.57 2017/02/11 16:02:11 maxv 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## 36a4cdc791SjakllschDEFCOPTS= -O2 -fno-omit-frame-pointer 3781918bf8SfvdlCPPFLAGS+= -Damd64 -Dx86_64 3881918bf8SfvdlCFLAGS+= -mcmodel=kernel 398e4cbbd3Sdsl# -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 428e4cbbd3SdslCFLAGS+= -msoft-float 438e4cbbd3Sdsl# For gcc we might need this, but other compilers barf 448e4cbbd3Sdsl# 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## 5981918bf8Sfvdl 6081918bf8Sfvdl## 6181918bf8Sfvdl## (5) link settings 6281918bf8Sfvdl## 637276bb8bSmaxvTEXTADDR?= 0xffffffff80200000 64*e5b5f123SmaxvEXTRA_LINKFLAGS= -z max-page-size=0x200000 6581918bf8SfvdlLINKFLAGS_NORMAL= -X 6662c59b6eSuebayasiKERNLDSCRIPT?= ${AMD64}/conf/kern.ldscript 6781918bf8Sfvdl 6881918bf8Sfvdl## 6981918bf8Sfvdl## (6) port specific target dependencies 7081918bf8Sfvdl## 7181918bf8Sfvdl 7281918bf8Sfvdl# depend on CPU configuration 7381918bf8Sfvdllocore.o machdep.o: Makefile 7481918bf8Sfvdl 7577a5d439Sjoergacpi_wakeup_low.o amd64func.o busfunc.o cpufunc.o cpu_in_cksum.o: assym.h 7677a5d439Sjoerglinux_support.o linux32_sigcode.o lock_stubs.o mptramp.o: assym.h 7777a5d439Sjoergnetbsd32_sigcode.o: assym.h 7881918bf8Sfvdl 7981918bf8Sfvdl## 8081918bf8Sfvdl## (7) misc settings 8181918bf8Sfvdl## 8281918bf8Sfvdl 8381918bf8Sfvdl## 8481918bf8Sfvdl## (8) config(8) generated machinery 8581918bf8Sfvdl## 8681918bf8Sfvdl%INCLUDES 8781918bf8Sfvdl 8881918bf8Sfvdl%OBJS 8981918bf8Sfvdl 9081918bf8Sfvdl%CFILES 9181918bf8Sfvdl 9281918bf8Sfvdl%SFILES 9381918bf8Sfvdl 9481918bf8Sfvdl%LOAD 9581918bf8Sfvdl 9681918bf8Sfvdl%RULES 9731f44cb2Salc 9881918bf8Sfvdl## 9981918bf8Sfvdl## (9) port independent kernel machinery 10081918bf8Sfvdl## 10181918bf8Sfvdl.include "$S/conf/Makefile.kern.inc" 102e33c2bb5Sthorpej 1031b91baa7Schristos## Include rules for ACPI wakecode 1041b91baa7Schristos.include "$S/arch/x86/acpi/Makefile.wakecode.inc" 1051b91baa7Schristos 106e33c2bb5Sthorpej## 107e33c2bb5Sthorpej## (10) Appending make options. 108e33c2bb5Sthorpej## 109e33c2bb5Sthorpej%MAKEOPTIONSAPPEND 110