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