Makefile.amd64 revision 1.57
11.57Smaxv#	$NetBSD: Makefile.amd64,v 1.57 2017/02/11 16:02:11 maxv Exp $
21.1Sfvdl
31.1Sfvdl# Makefile for NetBSD
41.1Sfvdl#
51.1Sfvdl# This makefile is constructed from a machine description:
61.1Sfvdl#	config machineid
71.1Sfvdl# Most changes should be made in the machine description
81.1Sfvdl#	/sys/arch/amd64/conf/``machineid''
91.1Sfvdl# after which you should do
101.1Sfvdl#	config machineid
111.1Sfvdl# Machine generic makefile changes should be made in
121.1Sfvdl#	/sys/arch/amd64/conf/Makefile.amd64
131.1Sfvdl# after which config should be rerun for all machines of that type.
141.1Sfvdl#
151.1Sfvdl# To specify debugging, add the config line: makeoptions DEBUG="-g"
161.1Sfvdl# A better way is to specify -g only for a few files.
171.1Sfvdl#
181.1Sfvdl#	makeoptions DEBUGLIST="uvm* trap if_*"
191.1Sfvdl
201.1SfvdlMACHINE_ARCH=x86_64
211.1SfvdlUSETOOLS?=	no
221.1SfvdlNEED_OWN_INSTALL_TARGET?=no
231.1Sfvdl.include <bsd.own.mk>
241.1Sfvdl
251.29StronUSE_SSP?=	yes
261.29Stron
271.1Sfvdl##
281.1Sfvdl## (1) port identification
291.1Sfvdl##
301.1SfvdlAMD64=		$S/arch/amd64
311.6SchristosGENASSYM_CONF=	${AMD64}/amd64/genassym.cf
321.1Sfvdl
331.1Sfvdl##
341.1Sfvdl## (2) compile settings
351.1Sfvdl##
361.45SjakllschDEFCOPTS=	-O2 -fno-omit-frame-pointer
371.1SfvdlCPPFLAGS+=	-Damd64 -Dx86_64
381.1SfvdlCFLAGS+=	-mcmodel=kernel
391.44Sdsl# -mno-sse implies -mno-sse2 (etc), explicitly disable avx to be extra sure
401.43SdslCFLAGS+=	-mno-red-zone -mno-mmx -mno-sse -mno-avx
411.43Sdsl# make absolutely sure we don't get x87 registers used as well
421.44SdslCFLAGS+=	-msoft-float
431.44Sdsl# For gcc we might need this, but other compilers barf
441.44Sdsl# CFLAGS+=	-mno-fp-ret-in-387
451.1Sfvdl
461.1Sfvdl##
471.1Sfvdl## (3) libkern and compat
481.1Sfvdl##
491.41SchristosOPT_MODULAR=	%MODULAR%
501.41Schristos.if !empty(OPT_MODULAR)
511.1SfvdlKERN_AS=	obj
521.41Schristos.else
531.41SchristosKERN_AS=	library
541.41Schristos.endif
551.1Sfvdl
561.1Sfvdl##
571.1Sfvdl## (4) local objects, compile rules, and dependencies
581.1Sfvdl##
591.1Sfvdl
601.1Sfvdl##
611.1Sfvdl## (5) link settings
621.1Sfvdl##
631.56SmaxvTEXTADDR?=	0xffffffff80200000
641.57SmaxvEXTRA_LINKFLAGS=	-z max-page-size=0x200000
651.1SfvdlLINKFLAGS_NORMAL=	-X
661.50SuebayasiKERNLDSCRIPT?= ${AMD64}/conf/kern.ldscript
671.1Sfvdl
681.1Sfvdl##
691.1Sfvdl## (6) port specific target dependencies
701.1Sfvdl##
711.1Sfvdl
721.1Sfvdl# depend on CPU configuration
731.1Sfvdllocore.o machdep.o: Makefile
741.1Sfvdl
751.25Sjoergacpi_wakeup_low.o amd64func.o busfunc.o cpufunc.o cpu_in_cksum.o: assym.h
761.25Sjoerglinux_support.o linux32_sigcode.o lock_stubs.o mptramp.o: assym.h
771.25Sjoergnetbsd32_sigcode.o: assym.h
781.1Sfvdl
791.1Sfvdl##
801.1Sfvdl## (7) misc settings
811.1Sfvdl##
821.1Sfvdl
831.1Sfvdl##
841.1Sfvdl## (8) config(8) generated machinery
851.1Sfvdl##
861.1Sfvdl%INCLUDES
871.1Sfvdl
881.1Sfvdl%OBJS
891.1Sfvdl
901.1Sfvdl%CFILES
911.1Sfvdl
921.1Sfvdl%SFILES
931.1Sfvdl
941.1Sfvdl%LOAD
951.1Sfvdl
961.1Sfvdl%RULES
971.26Salc
981.1Sfvdl##
991.1Sfvdl## (9) port independent kernel machinery
1001.1Sfvdl##
1011.1Sfvdl.include "$S/conf/Makefile.kern.inc"
1021.5Sthorpej
1031.39Schristos## Include rules for ACPI wakecode
1041.39Schristos.include "$S/arch/x86/acpi/Makefile.wakecode.inc"
1051.39Schristos
1061.5Sthorpej##
1071.5Sthorpej## (10) Appending make options.
1081.5Sthorpej##
1091.5Sthorpej%MAKEOPTIONSAPPEND
110