1 # $NetBSD: Makefile.xen,v 1.26.10.3 2010/08/11 22:52:58 yamt 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 .include <bsd.own.mk> 25 26 USE_SSP?= yes 27 28 ## 29 ## (1) port identification 30 ## 31 XEN= $S/arch/xen 32 I386= $S/arch/i386 33 AMD64= $S/arch/amd64 34 GENASSYM_CONF= $S/arch/${XEN_BUILD}/${XEN_BUILD}/genassym.cf 35 36 ARCH_INC= $S/arch/xen/include/${XEN_BUILD} 37 38 ## 39 ## (2) compile settings 40 ## 41 DEFCOPTS= -O2 42 CPPFLAGS+= -D${XEN_BUILD} 43 AFLAGS+= -x assembler-with-cpp -traditional-cpp ${DBG} -D__XEN__ 44 EXTRA_INCLUDES= -I${.CURDIR}/xen-ma 45 46 .if ${XEN_BUILD} == "amd64" 47 CPPFLAGS+= -Dx86_64 48 CFLAGS+= -mcmodel=kernel 49 CFLAGS+= -mno-red-zone 50 .endif 51 52 53 ## 54 ## (3) libkern and compat 55 ## 56 KERN_AS= obj 57 58 ## 59 ## (4) local objects, compile rules, and dependencies 60 ## 61 MD_OBJS= locore.o spl.o copy.o vector.o 62 MD_CFILES= 63 64 MD_SFILES= $S/arch/${XEN_BUILD}/${XEN_BUILD}/locore.S \ 65 $S/arch/${XEN_BUILD}/${XEN_BUILD}/spl.S \ 66 $S/arch/${XEN_BUILD}/${XEN_BUILD}/vector.S \ 67 $S/arch/${XEN_BUILD}/${XEN_BUILD}/copy.S 68 69 copy.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/copy.S assym.h 70 ${NORMAL_S} 71 72 locore.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/locore.S assym.h 73 ${NORMAL_S} 74 75 spl.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/spl.S assym.h 76 ${NORMAL_S} 77 78 vector.o: $S/arch/${XEN_BUILD}/${XEN_BUILD}/vector.S assym.h 79 ${NORMAL_S} 80 .ifndef noBEGIN 81 .if !make(obj) && !make(clean) && !make(cleandir) 82 .BEGIN: 83 .for A in ${XEN_MACHINE_ARCHS} 84 rm -f ${A} 85 ln -s $S/arch/${A}/include ${A} 86 .endfor 87 -rm -rf xen-ma 88 mkdir xen-ma 89 ln -s ../${XEN_BUILD} xen-ma/machine 90 rm -f machine 91 ln -s ${ARCH_INC} machine 92 .endif 93 .endif 94 95 ## 96 ## (5) link settings 97 ## 98 .if ${XEN_BUILD} == i386 99 TEXTADDR?= 0xc0100000 100 .elif ${XEN_BUILD} == amd64 101 TEXTADDR?= 0xffffffff80100000 102 .endif 103 LINKFLAGS_NORMAL= -X 104 KERN_LDSCRIPT?= kern.ldscript.Xen 105 LINKFORMAT= -T $S/arch/${XEN_BUILD}/conf/${KERN_LDSCRIPT} 106 107 ## 108 ## (6) port specific target dependencies 109 ## 110 111 .if ${XEN_BUILD} == i386 112 freebsd_sigcode.o ibcs2_sigcode.o linux_sigcode.o: assym.h 113 svr4_sigcode.o mach_sigcode.o: assym.h 114 apmcall.o pnpbioscall.o bioscall.o: assym.h 115 mptramp.o: assym.h 116 .elif ${XEN_BUILD} == amd64 117 locore.o machdep.o: Makefile 118 linux_support.o linux32_sigcode.o netbsd32_sigcode.o: assym.h 119 .endif 120 busfunc.o cpu_in_cksum.o cpufunc.o lock_stubs.o: assym.h 121 122 ## 123 ## (7) misc settings 124 ## 125 126 ## 127 ## (8) config(8) generated machinery 128 ## 129 %INCLUDES 130 131 %OBJS 132 133 %CFILES 134 135 %SFILES 136 137 %LOAD 138 139 %RULES 140 141 ## 142 ## (9) port independent kernel machinery 143 ## 144 .include "$S/conf/Makefile.kern.inc" 145 146 ## 147 ## (10) Appending make options. 148 ## 149 %MAKEOPTIONSAPPEND 150