Makefile.sparc64 revision 1.62.12.1       1  1.62.12.1    bouyer # 	$NetBSD: Makefile.sparc64,v 1.62.12.1 2007/06/05 20:22:33 bouyer Exp $
      2       1.45       eeh 
      3       1.45       eeh #=========================================================================
      4       1.45       eeh #
      5       1.45       eeh #			***** WARNING ******
      6       1.45       eeh #
      7       1.45       eeh # ANYONE WHO CHANGES THIS MAKEFILE AND DOES NOT TEST BOTH A 32-BIT
      8       1.45       eeh # AND 64-BIT KERNEL WILL BE SHOT.
      9       1.45       eeh #
     10       1.45       eeh #=========================================================================
     11       1.45       eeh 
     12        1.1       eeh 
     13        1.1       eeh # Makefile for NetBSD
     14        1.1       eeh #
     15        1.1       eeh # This makefile is constructed from a machine description:
     16        1.1       eeh #	config machineid
     17        1.1       eeh # Most changes should be made in the machine description
     18        1.1       eeh #	/sys/arch/sparc64/conf/``machineid''
     19        1.1       eeh # after which you should do
     20        1.1       eeh #	config machineid
     21        1.1       eeh # Machine generic makefile changes should be made in
     22        1.1       eeh #	/sys/arch/sparc64/conf/Makefile.sparc64
     23        1.1       eeh # after which config should be rerun for all machines of that type.
     24       1.44    atatat #
     25       1.44    atatat # To specify debugging, add the config line: makeoptions DEBUG="-g"
     26       1.44    atatat # A better way is to specify -g only for a few files.
     27       1.44    atatat #
     28       1.44    atatat #	makeoptions DEBUGLIST="uvm* trap if_*"
     29        1.1       eeh 
     30       1.45       eeh # Default to 32-bit.  Set the MACHINE_ARCH accordingly.
     31       1.45       eeh #
     32       1.45       eeh # You must also be using the correct toolchain or the kernel build
     33       1.45       eeh # will fail.
     34       1.45       eeh #
     35       1.41   thorpej LP64?=	no
     36       1.41   thorpej .if ${LP64} == "yes"
     37       1.40   thorpej MACHINE_ARCH=sparc64
     38       1.41   thorpej .else
     39       1.41   thorpej MACHINE_ARCH=sparc
     40       1.41   thorpej .endif
     41       1.42       jmc 
     42       1.42       jmc USETOOLS?=	no
     43       1.44    atatat NEED_OWN_INSTALL_TARGET?=no
     44       1.39   thorpej .include <bsd.own.mk>
     45       1.39   thorpej 
     46       1.44    atatat ##
     47       1.44    atatat ## (1) port identification
     48       1.44    atatat ##
     49        1.1       eeh SPARC64=	$S/arch/sparc64
     50       1.56  christos GENASSYM_CONF=	${SPARC64}/sparc64/genassym.cf
     51        1.1       eeh 
     52       1.44    atatat ##
     53       1.44    atatat ## (2) compile settings
     54       1.44    atatat ##
     55       1.45       eeh CPPFLAGS+=	-Dsparc64 -D__sparc64__
     56       1.40   thorpej .if ${LP64} == "yes"
     57       1.45       eeh # 64-bit kernels
     58       1.45       eeh CPPFLAGS+=	-D_LP64 -Wa,-Av9a
     59       1.45       eeh AFLAGS+=	-Wa,-Av9a
     60       1.54    martin CC_NOOPT=	${NORMAL_C}
     61       1.30       eeh .if defined(PROF)
     62       1.45       eeh # Profiling is only supported in the medium low memory model.
     63       1.45       eeh CFLAGS+=	-mcmodel=medlow
     64       1.45       eeh .else
     65       1.45       eeh # Since the kernel resides in the lower 32 bits, use medium low for now anyway.
     66       1.40   thorpej CFLAGS+=	-mcmodel=medlow
     67       1.30       eeh .endif
     68       1.45       eeh .else
     69       1.45       eeh # 32-bit kernels
     70       1.45       eeh CPPFLAGS+=	-m32 -Wa,-Av8plusa -mcpu=ultrasparc
     71       1.45       eeh AFLAGS+=	-Wa,-Av8plusa
     72       1.53    martin # XXX
     73       1.53    martin # The sparc gcc version 3.3.3 (NetBSD nb1 20040301) does not compile this
     74       1.53    martin # file properly with higher optimizations
     75       1.54    martin CC_NOOPT=	${NORMAL_C:C/-O./-O0/}
     76       1.45       eeh .endif
     77       1.45       eeh CFLAGS+=	-mno-fpu
     78       1.45       eeh AFLAGS+=	-x assembler-with-cpp -traditional-cpp
     79       1.44    atatat 
     80       1.44    atatat ##
     81       1.44    atatat ## (3) libkern and compat
     82       1.44    atatat ##
     83       1.52    martin # KERN_AS=	obj	# memcpy, memset, etc. are in locore.s
     84       1.44    atatat 
     85       1.44    atatat ##
     86       1.44    atatat ## (4) local objects, compile rules, and dependencies
     87       1.44    atatat ##
     88       1.44    atatat MD_OBJS=	locore.o
     89       1.44    atatat MD_CFILES=
     90       1.44    atatat MD_SFILES=	${SPARC64}/sparc64/locore.s
     91       1.31       eeh 
     92       1.44    atatat locore.o: ${SPARC64}/sparc64/locore.s assym.h
     93       1.44    atatat 	${NORMAL_S}
     94       1.51  christos 
     95       1.51  christos in_cksum.o: assym.h
     96       1.34       mrg 
     97       1.44    atatat ##
     98       1.44    atatat ## (5) link settings
     99       1.44    atatat ##
    100       1.44    atatat TEXTADDR?=	01000000
    101       1.44    atatat LINKFORMAT=	-n -T ${SPARC64}/conf/${KERN_LDSCRIPT}
    102       1.40   thorpej .if ${LP64} == "yes"
    103       1.34       mrg KERN_LDSCRIPT?= kern.ldscript
    104       1.35       mrg .else
    105       1.35       mrg KERN_LDSCRIPT?= kern32.ldscript
    106       1.35       mrg .endif
    107       1.31       eeh 
    108       1.44    atatat ##
    109       1.44    atatat ## (6) port specific target dependencies
    110       1.44    atatat ##
    111       1.10       mrg 
    112       1.44    atatat # depend on CPU configuration
    113       1.44    atatat bwtwo.o cgsix.o cgthree.o cgtwo.o cons.o dma.o esp.o fb.o if_ie.o: Makefile
    114       1.44    atatat ms.c obio.o zs.c autoconf.o clock.o cpu.o disksubr.o locore.o: Makefile
    115       1.44    atatat machdep.o mem.o openprom.o pmap.o vm_machdep.o: Makefile
    116       1.44    atatat 
    117       1.44    atatat ##
    118       1.44    atatat ## (7) misc settings
    119       1.44    atatat ##
    120       1.48  jdolecek 
    121       1.48  jdolecek # define .MAIN _before_ the make() check, so that implicit target
    122       1.48  jdolecek # would be defined
    123       1.48  jdolecek .MAIN: all
    124       1.47       mrg 
    125       1.47       mrg .if make(depend) || make(all) || make(dependall)
    126       1.47       mrg .BEGIN:
    127       1.47       mrg 	@rm -f sparc && \
    128       1.47       mrg 		ln -s $S/arch/sparc/include sparc
    129       1.47       mrg .endif
    130       1.44    atatat 
    131       1.44    atatat ##
    132       1.44    atatat ## (8) config(8) generated machinery
    133       1.44    atatat ##
    134       1.10       mrg %INCLUDES
    135        1.1       eeh 
    136        1.1       eeh %OBJS
    137        1.1       eeh 
    138        1.1       eeh %CFILES
    139        1.1       eeh 
    140        1.1       eeh %SFILES
    141        1.1       eeh 
    142        1.1       eeh %LOAD
    143        1.2       mrg 
    144       1.44    atatat %RULES
    145        1.1       eeh 
    146       1.62   gdamore ## Include rules for Atheros WLAN
    147       1.62   gdamore .include "$S/contrib/dev/ath/netbsd/Makefile.ath.inc"
    148       1.58    martin 
    149       1.44    atatat ##
    150       1.44    atatat ## (9) port independent kernel machinery
    151       1.44    atatat ##
    152       1.44    atatat .include "$S/conf/Makefile.kern.inc"
    153       1.55   thorpej 
    154       1.55   thorpej ##
    155       1.55   thorpej ## (10) Appending make options.
    156       1.55   thorpej ##
    157       1.55   thorpej %MAKEOPTIONSAPPEND
    158