Home | History | Annotate | Line # | Download | only in conf
      1 #	$NetBSD: Makefile.xen,v 1.50 2020/05/02 16:44:36 bouyer Exp $
      2 #	NetBSD: Makefile.i386,v 1.132 2003/07/05 16:56:10 simonb Exp 
      3 
      4 # Makefile for NetBSD
      5 #
      6 # This makefile is constructed from a machine description:
      7 #	config machineid
      8 # Most changes should be made in the machine description
      9 #	/sys/arch/xen/conf/``machineid''
     10 # after which you should do
     11 #	config machineid
     12 # Machine generic makefile changes should be made in
     13 #	/sys/arch/xen/conf/Makefile.xen
     14 # after which config should be rerun for all machines of that type.
     15 #
     16 # To specify debugging, add the config line: makeoptions DEBUG="-g"
     17 # A better way is to specify -g only for a few files.
     18 #
     19 #	makeoptions DEBUGLIST="uvm* trap if_*"
     20 
     21 .include "$S/arch/xen/conf/Makefile.arch.inc"
     22 USETOOLS?=	no
     23 NEED_OWN_INSTALL_TARGET?=no
     24 NORELRO=
     25 NOSANITIZER=
     26 .include <bsd.init.mk>
     27 
     28 USE_SSP?=	yes
     29 
     30 ##
     31 ## (1) port identification
     32 ##
     33 XEN=		$S/arch/xen
     34 I386=		$S/arch/i386
     35 AMD64=          $S/arch/amd64
     36 GENASSYM_CONF=	$S/arch/${XEN_BUILD}/${XEN_BUILD}/genassym.cf
     37 
     38 ARCH_INC=	$S/arch/xen/include/${XEN_BUILD}
     39 
     40 ##
     41 ## (2) compile settings
     42 ##
     43 CPPFLAGS+=	-D${XEN_BUILD}
     44 AFLAGS+=	-x assembler-with-cpp ${DBG}
     45 EXTRA_INCLUDES=	-I${.CURDIR}/xen-ma -I$S/external/mit/xen-include-public/dist/
     46 
     47 .if ${XEN_BUILD} == "amd64"
     48 DEFCOPTS=	-O2 -fno-omit-frame-pointer
     49 CPPFLAGS+=	-Dx86_64
     50 CFLAGS+=	-mcmodel=kernel
     51 CFLAGS+=	-mno-red-zone -mno-mmx -mno-sse -mno-avx
     52 CFLAGS+=	-msoft-float
     53 CFLAGS+=	${${ACTIVE_CC} == "gcc":?  -mno-fp-ret-in-387 :}
     54 .endif
     55 
     56 .if ${XEN_BUILD} == "i386"
     57 DEFCOPTS=	-O2 -fno-omit-frame-pointer
     58 CFLAGS+=	-msoft-float
     59 CFLAGS+=	-mno-mmx -mno-sse -mno-avx
     60 .endif
     61 
     62 ##
     63 ## (3) libkern and compat
     64 ##
     65 OPT_MODULAR=	%MODULAR%
     66 
     67 ##
     68 ## (4) local objects, compile rules, and dependencies
     69 ##
     70 
     71 MD_OBJS=
     72 .if ${XEN_BUILD} == i386
     73 MD_OBJS+=	locore.o spl.o copy.o vector.o lock_stubs.o
     74 .endif
     75 MD_CFILES=
     76 
     77 MD_SFILES=
     78 .if ${XEN_BUILD} == i386
     79 MD_SFILES+=	$S/arch/${XEN_BUILD}/${XEN_BUILD}/locore.S \
     80 		$S/arch/${XEN_BUILD}/${XEN_BUILD}/spl.S \
     81 		$S/arch/${XEN_BUILD}/${XEN_BUILD}/vector.S \
     82 		$S/arch/${XEN_BUILD}/${XEN_BUILD}/copy.S \
     83 		$S/arch/${XEN_BUILD}/${XEN_BUILD}/lock_stubs.S
     84 
     85 .endif
     86 
     87 .if ${XEN_BUILD} == i386
     88 copy.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/copy.S assym.h
     89 	${NORMAL_S}
     90 
     91 locore.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/locore.S assym.h
     92 	${NORMAL_S}
     93 
     94 spl.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/spl.S assym.h
     95 	${NORMAL_S}
     96 
     97 vector.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/vector.S assym.h
     98 	${NORMAL_S}
     99 
    100 lock_stubs.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/lock_stubs.S assym.h
    101 	${NORMAL_S}
    102 .endif
    103 
    104 .ifndef noBEGIN
    105 .if !make(obj) && !make(clean) && !make(cleandir)
    106 .BEGIN::
    107 .for A in ${XEN_MACHINE_ARCHS}
    108 	-@rm -f ${A} && \
    109 	    ln -s $S/arch/${A}/include ${A}
    110 .endfor
    111 	-@rm -rf xen-ma && \
    112 	    mkdir xen-ma && ln -s ../${XEN_BUILD} xen-ma/machine
    113 	-@rm -f machine && \
    114 	    ln -s ${ARCH_INC} machine
    115 .endif
    116 .endif
    117 
    118 ##
    119 ## (5) link settings
    120 ##
    121 .if ${XEN_BUILD} == i386
    122 TEXTADDR?=	0xc0100000
    123 .elif ${XEN_BUILD} == amd64
    124 TEXTADDR?=	0xffffffff80200000
    125 .endif
    126 LINKFLAGS_NORMAL=	-X
    127 KERNLDSCRIPT?=	$S/arch/${XEN_BUILD}/conf/kern.ldscript.Xen
    128 
    129 ##
    130 ## (6) port specific target dependencies
    131 ##
    132 
    133 .if ${XEN_BUILD} == i386
    134 linux_sigcode.o: assym.h
    135 pnpbioscall.o bioscall.o: assym.h
    136 mptramp.o: assym.h
    137 .elif  ${XEN_BUILD} == amd64
    138 locore.o machdep.o: Makefile
    139 linux32_sigcode.o netbsd32_sigcode.o: assym.h
    140 .endif
    141 busfunc.o cpu_in_cksum.o cpufunc.o lock_stubs.o: assym.h
    142 
    143 ##
    144 ## (7) misc settings
    145 ##
    146 
    147 ##
    148 ## (8) config(8) generated machinery
    149 ##
    150 %INCLUDES
    151 
    152 %OBJS
    153 
    154 %CFILES
    155 
    156 %SFILES
    157 
    158 %LOAD
    159 
    160 %RULES
    161 
    162 ##
    163 ## (9) port independent kernel machinery
    164 ##
    165 .include "$S/conf/Makefile.kern.inc"
    166 
    167 ##
    168 ## (10) Appending make options.
    169 ##
    170 %MAKEOPTIONSAPPEND
    171