Makefile.sparc64 revision 1.73.6.1       1  1.73.6.1     rmind # 	$NetBSD: Makefile.sparc64,v 1.73.6.1 2014/05/18 17:45:26 rmind 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.30       eeh .if defined(PROF)
     61      1.45       eeh # Profiling is only supported in the medium low memory model.
     62  1.73.6.1     rmind CFLAGS+=	${${ACTIVE_CC} == "gcc":? -mcmodel=medlow :}
     63  1.73.6.1     rmind CFLAGS+=	${${ACTIVE_CC} == "clang":? -mcmodel=small :}
     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.73.6.1     rmind CFLAGS+=	${${ACTIVE_CC} == "gcc":? -mcmodel=medlow :}
     67  1.73.6.1     rmind CFLAGS+=	${${ACTIVE_CC} == "clang":? -mcmodel=small :}
     68      1.30       eeh .endif
     69      1.45       eeh .else
     70      1.45       eeh # 32-bit kernels
     71      1.45       eeh CPPFLAGS+=	-m32 -Wa,-Av8plusa -mcpu=ultrasparc
     72      1.45       eeh AFLAGS+=	-Wa,-Av8plusa
     73      1.45       eeh .endif
     74      1.45       eeh CFLAGS+=	-mno-fpu
     75      1.70     joerg AFLAGS+=	-x assembler-with-cpp
     76      1.44    atatat 
     77      1.44    atatat ##
     78      1.44    atatat ## (3) libkern and compat
     79      1.44    atatat ##
     80      1.72  christos OPT_MODULAR=	%MODULAR%
     81      1.72  christos .if !empty(OPT_MODULAR)
     82      1.72  christos KERN_AS=	obj
     83      1.72  christos .else
     84      1.72  christos KERN_AS=	library
     85      1.72  christos .endif
     86      1.44    atatat 
     87      1.44    atatat ##
     88      1.44    atatat ## (4) local objects, compile rules, and dependencies
     89      1.44    atatat ##
     90      1.69    martin MD_OBJS=	locore.o copy.o mp_subr.o
     91      1.44    atatat MD_CFILES=
     92      1.69    martin MD_SFILES=	${SPARC64}/sparc64/locore.s ${SPARC64}/sparc64/copy.S \
     93      1.69    martin 	 ${SPARC64}/sparc64/mp_subr.S
     94      1.31       eeh 
     95      1.44    atatat locore.o: ${SPARC64}/sparc64/locore.s assym.h
     96      1.44    atatat 	${NORMAL_S}
     97      1.51  christos 
     98      1.69    martin copy.o:	${SPARC64}/sparc64/copy.S assym.h
     99      1.69    martin 	${NORMAL_S}
    100      1.69    martin 
    101      1.69    martin mp_subr.o:	${SPARC64}/sparc64/mp_subr.S assym.h
    102      1.69    martin 	${NORMAL_S}
    103      1.69    martin 
    104      1.73  christos # Our libkern needs stuff from assym.h for memcpy and memset.
    105      1.73  christos dependkernlib:	assym.h
    106      1.73  christos 
    107      1.44    atatat ##
    108      1.44    atatat ## (5) link settings
    109      1.44    atatat ##
    110      1.44    atatat TEXTADDR?=	01000000
    111      1.67    martin LINKFORMAT=	-T ${SPARC64}/conf/${KERN_LDSCRIPT}
    112      1.40   thorpej .if ${LP64} == "yes"
    113      1.34       mrg KERN_LDSCRIPT?= kern.ldscript
    114      1.35       mrg .else
    115      1.35       mrg KERN_LDSCRIPT?= kern32.ldscript
    116      1.35       mrg .endif
    117      1.31       eeh 
    118      1.44    atatat ##
    119      1.44    atatat ## (6) port specific target dependencies
    120      1.44    atatat ##
    121      1.10       mrg 
    122      1.44    atatat # depend on CPU configuration
    123      1.44    atatat bwtwo.o cgsix.o cgthree.o cgtwo.o cons.o dma.o esp.o fb.o if_ie.o: Makefile
    124      1.44    atatat ms.c obio.o zs.c autoconf.o clock.o cpu.o disksubr.o locore.o: Makefile
    125      1.44    atatat machdep.o mem.o openprom.o pmap.o vm_machdep.o: Makefile
    126      1.44    atatat 
    127      1.66     joerg cpu_in_cksum.o lock_stubs.o: assym.h
    128      1.66     joerg 
    129      1.44    atatat ##
    130      1.44    atatat ## (7) misc settings
    131      1.44    atatat ##
    132      1.48  jdolecek 
    133      1.48  jdolecek # define .MAIN _before_ the make() check, so that implicit target
    134      1.48  jdolecek # would be defined
    135      1.48  jdolecek .MAIN: all
    136      1.47       mrg 
    137      1.47       mrg .if make(depend) || make(all) || make(dependall)
    138      1.47       mrg .BEGIN:
    139      1.47       mrg 	@rm -f sparc && \
    140      1.47       mrg 		ln -s $S/arch/sparc/include sparc
    141      1.47       mrg .endif
    142      1.44    atatat 
    143      1.44    atatat ##
    144      1.44    atatat ## (8) config(8) generated machinery
    145      1.44    atatat ##
    146      1.10       mrg %INCLUDES
    147       1.1       eeh 
    148       1.1       eeh %OBJS
    149       1.1       eeh 
    150       1.1       eeh %CFILES
    151       1.1       eeh 
    152       1.1       eeh %SFILES
    153       1.1       eeh 
    154       1.1       eeh %LOAD
    155       1.2       mrg 
    156      1.44    atatat %RULES
    157       1.1       eeh 
    158      1.44    atatat ##
    159      1.44    atatat ## (9) port independent kernel machinery
    160      1.44    atatat ##
    161      1.44    atatat .include "$S/conf/Makefile.kern.inc"
    162      1.55   thorpej 
    163      1.55   thorpej ##
    164      1.55   thorpej ## (10) Appending make options.
    165      1.55   thorpej ##
    166      1.55   thorpej %MAKEOPTIONSAPPEND
    167