Home | History | Annotate | Line # | Download | only in conf
Makefile.riscv revision 1.6
      1  1.6  skrll #	$NetBSD: Makefile.riscv,v 1.6 2020/03/14 16:12:15 skrll Exp $
      2  1.1   matt 
      3  1.1   matt # Makefile for NetBSD
      4  1.1   matt #
      5  1.1   matt # This makefile is constructed from a machine description:
      6  1.1   matt #	config machineid
      7  1.1   matt # Most changes should be made in the machine description
      8  1.1   matt #	/sys/arch/<machine>/conf/``machineid''
      9  1.1   matt # after which you should do
     10  1.1   matt #	config machineid
     11  1.1   matt # Machine generic makefile changes should be made in
     12  1.1   matt #	/sys/arch/riscv/conf/Makefile.riscv
     13  1.1   matt # after which config should be rerun for all machines of that type.
     14  1.1   matt #
     15  1.1   matt # To specify debugging, add the config line: makeoptions DEBUG="-g"
     16  1.1   matt # A better way is to specify -g only for a few files.
     17  1.1   matt #
     18  1.1   matt #	makeoptions DEBUGLIST="uvm* trap if_*"
     19  1.1   matt 
     20  1.1   matt USETOOLS?=	no
     21  1.1   matt NEED_OWN_INSTALL_TARGET?=no
     22  1.1   matt .include <bsd.own.mk>
     23  1.1   matt 
     24  1.1   matt ##
     25  1.1   matt ## (1) port identification
     26  1.1   matt ##
     27  1.1   matt .ifndef S
     28  1.1   matt S=		../../../..
     29  1.1   matt .endif
     30  1.1   matt THISRISCV=	$S/arch/${MACHINE}
     31  1.1   matt RISCV=		$S/arch/riscv
     32  1.1   matt GENASSYM_CONF=	${RISCV}/riscv/genassym.cf
     33  1.1   matt .-include "${THISRISCV}/conf/Makefile.${MACHINE}.inc"
     34  1.1   matt 
     35  1.1   matt ##
     36  1.1   matt ## (2) compile settings
     37  1.1   matt ##
     38  1.1   matt ## Note: -ffixed-?? must be kept in sync with cpu.h.
     39  1.1   matt ##
     40  1.1   matt CPPFLAGS+=	-D${MACHINE}
     41  1.2   matt CFLAGS+=	-mcmodel=medany
     42  1.1   matt .if !defined(LP64) || ${LP64} == "no"
     43  1.1   matt CFLAGS+=	-m32
     44  1.1   matt AFLAGS+=	-m32
     45  1.1   matt LDFLAGS+=	-m elf32lriscv
     46  1.1   matt LINKFORMAT+=	-m elf32lriscv
     47  1.1   matt SYSTEM_LD_TAIL_EXTRA+= \
     48  1.1   matt 		;echo ${OBJCOPY} -O elf32-littleriscv $@ $@.elf32; \
     49  1.1   matt 		${OBJCOPY} -O elf32-littleriscv $@ $@.elf32
     50  1.1   matt .endif # LP64=no
     51  1.1   matt AFLAGS+=	-x assembler-with-cpp ${AOPTS}
     52  1.1   matt 
     53  1.1   matt ##
     54  1.1   matt ## (3) libkern and compat
     55  1.1   matt ##
     56  1.1   matt OPT_MODULAR=	%MODULAR%
     57  1.1   matt 
     58  1.1   matt ##
     59  1.1   matt ## (4) local objects, compile rules, and dependencies
     60  1.1   matt ##
     61  1.1   matt MD_OBJS=	locore.o
     62  1.1   matt MD_CFILES=
     63  1.1   matt MD_SFILES=	${RISCV}/riscv/locore.S
     64  1.1   matt 
     65  1.1   matt locore.o: ${RISCV}/riscv/locore.S assym.h
     66  1.1   matt 	${NORMAL_S}
     67  1.1   matt 
     68  1.1   matt ##
     69  1.1   matt ## (5) link settings
     70  1.1   matt ##
     71  1.1   matt .if ${MACHINE_ARCH} == "riscv64" && ${LP64:Uyes} == "yes"
     72  1.5   maxv TEXTADDR?=		0xFFFFFFC000000000
     73  1.5   maxv .else
     74  1.1   matt TEXTADDR?=		0xC0001000
     75  1.1   matt .endif
     76  1.1   matt KERNLDSCRIPT?=		${RISCV}/conf/kern.ldscript
     77  1.1   matt LINKFORMAT+=		-T ${KERNLDSCRIPT}
     78  1.1   matt EXTRA_LINKFLAGS=	${LDOPTS} --relax
     79  1.1   matt LINKFLAGS_NORMAL=	-X
     80  1.1   matt STRIPFLAGS=		-g -X
     81  1.1   matt 
     82  1.1   matt ##
     83  1.1   matt ## (6) port specific target dependencies
     84  1.1   matt ##
     85  1.1   matt 
     86  1.1   matt # depend on CPU configuration
     87  1.1   matt machdep.o mainbus.o trap.o: Makefile
     88  1.1   matt 
     89  1.1   matt # depend on System V IPC/shmem options
     90  1.1   matt riscv_machdep.o pmap.o: Makefile
     91  1.1   matt 
     92  1.1   matt # various assembly files that depend on assym.h
     93  1.1   matt locore.o: assym.h
     94  1.1   matt 
     95  1.1   matt ##
     96  1.1   matt ## (7) misc settings
     97  1.1   matt ##
     98  1.1   matt RAMDISKDIR!=    cd ${NETBSDSRCDIR}/distrib/riscv/ramdisk && ${PRINTOBJDIR}
     99  1.1   matt 
    100  1.1   matt .if defined(NEED_MDSETIMAGE) && ${NEED_MDSETIMAGE} != "no" \
    101  1.1   matt     && defined(RAMDISKDIR) && exists(${RAMDISKDIR}/ramdisk.fs)
    102  1.6  skrll SYSTEM_DEP+=    ${RAMDISKDIR}/ramdisk.fs
    103  1.1   matt SYSTEM_LD_TAIL_EXTRA+=; \
    104  1.1   matt 	echo ${TOOL_MDSETIMAGE} -s $@ ${RAMDISKDIR}/ramdisk.fs; \
    105  1.1   matt 	${TOOL_MDSETIMAGE} -s $@ ${RAMDISKDIR}/ramdisk.fs
    106  1.1   matt .if !empty(DEBUG:M-g*)
    107  1.1   matt SYSTEM_LD_TAIL_EXTRA+=; \
    108  1.1   matt 	echo ${TOOL_MDSETIMAGE} -s $@.gdb ${RAMDISKDIR}/ramdisk.fs; \
    109  1.1   matt 	${TOOL_MDSETIMAGE} -s $@.gdb ${RAMDISKDIR}/ramdisk.fs
    110  1.1   matt .endif
    111  1.1   matt .endif
    112  1.1   matt 
    113  1.1   matt ##
    114  1.1   matt ## (8) config(8) generated machinery
    115  1.1   matt ##
    116  1.1   matt %INCLUDES
    117  1.1   matt 
    118  1.1   matt %OBJS
    119  1.1   matt 
    120  1.1   matt %CFILES
    121  1.1   matt 
    122  1.1   matt %SFILES
    123  1.1   matt 
    124  1.1   matt %LOAD
    125  1.1   matt 
    126  1.1   matt %RULES
    127  1.1   matt 
    128  1.1   matt ##
    129  1.1   matt ## (9) port independent kernel machinery
    130  1.1   matt ##
    131  1.1   matt .include "$S/conf/Makefile.kern.inc"
    132  1.1   matt 
    133  1.1   matt ##
    134  1.1   matt ## (10) Appending make options.
    135  1.1   matt ##
    136  1.1   matt %MAKEOPTIONSAPPEND
    137