1 1.38 thorpej # $NetBSD: Makefile.gzboot,v 1.38 2020/02/12 19:55:32 thorpej Exp $ 2 1.1 thorpej 3 1.1 thorpej NOMAN= # defined 4 1.1 thorpej 5 1.33 christos .include <bsd.init.mk> # Pull in OBJDIR name rules. 6 1.1 thorpej .include <bsd.own.mk> 7 1.25 matt .include <bsd.klinks.mk> 8 1.1 thorpej 9 1.1 thorpej EVBARM_STAND= ${S}/arch/evbarm/stand 10 1.1 thorpej 11 1.1 thorpej BASE= gzboot_${PLATFORM}_${RELOC} 12 1.7 thorpej PROGSYM=${BASE}.sym 13 1.7 thorpej PROG= ${BASE}.bin 14 1.1 thorpej WARNS= 1 15 1.1 thorpej 16 1.1 thorpej NEWVERSWHAT= "Gzip Boot" 17 1.1 thorpej BINMODE=644 18 1.1 thorpej 19 1.1 thorpej DBG= -Os 20 1.1 thorpej 21 1.1 thorpej # XXX SHOULD NOT NEED TO DEFINE THESE! 22 1.1 thorpej LIBCRT0= 23 1.30 tsutsui LIBCRTI= 24 1.1 thorpej LIBC= 25 1.1 thorpej LIBCRTBEGIN= 26 1.1 thorpej LIBCRTEND= 27 1.31 martin STRIPFLAG= 28 1.1 thorpej 29 1.1 thorpej .PATH: ${EVBARM_STAND}/gzboot 30 1.1 thorpej .PATH: ${EVBARM_STAND}/board 31 1.1 thorpej 32 1.4 thorpej SRCS+= gzboot.c image.S 33 1.1 thorpej 34 1.1 thorpej STARTFILE= srtbegin.o 35 1.1 thorpej 36 1.1 thorpej CPPFLAGS+= -nostdinc -I. -I${EVBARM_STAND}/gzboot -I${EVBARM_STAND}/board 37 1.1 thorpej CPPFLAGS+= -I${S} -I${S}/arch -I${S}/lib/libsa 38 1.15 tsutsui CPPFLAGS+= -I${S}/../common/dist/zlib 39 1.29 joerg CPPFLAGS+= ${ARM_APCS_FLAGS} 40 1.3 thorpej 41 1.1 thorpej CPPFLAGS+= -D_STANDALONE 42 1.5 thorpej 43 1.5 thorpej # Specify the heap size (used by board mem_init() routines) 44 1.14 he CPPFLAGS+= -DBOARD_HEAP_SIZE=1048576 # 1M 45 1.3 thorpej 46 1.3 thorpej # libsa options 47 1.1 thorpej CPPFLAGS+= -DHEAP_VARIABLE 48 1.3 thorpej 49 1.3 thorpej CPPFLAGS+= -DRELOC=${RELOC} 50 1.3 thorpej CPPFLAGS+= -DMAXIMAGESIZE=${MAXIMAGESIZE} 51 1.3 thorpej CPPFLAGS+= -DLOADADDR=${LOADADDR} 52 1.38 thorpej .if defined(GZSRCADDR) 53 1.38 thorpej CPPFLAGS+= -DGZSRCADDR=${GZSRCADDR} 54 1.38 thorpej .endif 55 1.1 thorpej 56 1.1 thorpej COPTS+= -ffreestanding 57 1.20 khorben COPTS+= -fno-stack-protector 58 1.23 matt COPTS+= -fno-unwind-tables 59 1.15 tsutsui CWARNFLAGS+= -Werror 60 1.15 tsutsui CWARNFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith 61 1.1 thorpej 62 1.36 christos CLEANFILES+= ${STARTFILE} ${BASE}.list 63 1.8 thorpej CLEANFILES+= ${PROGSYM} 64 1.1 thorpej 65 1.1 thorpej ### find out what to use for libkern 66 1.1 thorpej KERN_AS= library 67 1.1 thorpej .include "${S}/lib/libkern/Makefile.inc" 68 1.1 thorpej LIBKERN= ${KERNLIB} 69 1.1 thorpej 70 1.1 thorpej ### find out what to use for libz 71 1.1 thorpej Z_AS= library 72 1.1 thorpej .include "${S}/lib/libz/Makefile.inc" 73 1.1 thorpej LIBZ= ${ZLIB} 74 1.1 thorpej 75 1.1 thorpej ### find out what to use for libsa 76 1.1 thorpej SA_AS= library 77 1.1 thorpej .include "${S}/lib/libsa/Makefile.inc" 78 1.1 thorpej LIBSA= ${SALIB} 79 1.1 thorpej 80 1.16 dholland cleandir distclean: .WAIT cleanlibdir 81 1.1 thorpej 82 1.1 thorpej cleanlibdir: 83 1.10 jmc -rm -rf lib 84 1.1 thorpej 85 1.34 joerg DIRECT_LDFLAGS= -M -T ${LDSCRIPT} --fix-v4bx 86 1.1 thorpej 87 1.1 thorpej LIBLIST=${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBSA} 88 1.1 thorpej 89 1.36 christos .include "${S}/conf/newvers_stand.mk" 90 1.1 thorpej 91 1.7 thorpej ${PROG}: ${PROGSYM} 92 1.7 thorpej ${OBJCOPY} -O binary ${PROGSYM} ${.TARGET} 93 1.8 thorpej 94 1.8 thorpej # Prevent the normal install target from doing anything. 95 1.8 thorpej proginstall:: 96 1.8 thorpej 97 1.8 thorpej # Install the raw binary or the symbol version, based on whether or 98 1.8 thorpej # not the resulting gzboot needs to be mdsetimage'd. 99 1.8 thorpej .if ${MAXIMAGESIZE} == "0" 100 1.8 thorpej FILES= ${PROG} 101 1.8 thorpej .else 102 1.8 thorpej FILES= ${PROGSYM} 103 1.8 thorpej .endif 104 1.1 thorpej 105 1.1 thorpej .include <bsd.prog.mk> 106 1.7 thorpej 107 1.7 thorpej ${PROGSYM}: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} 108 1.18 matt ${_MKTARGET_LINK} 109 1.34 joerg ${LD} -o ${.TARGET} ${DIRECT_LDFLAGS} ${STARTFILE} \ 110 1.7 thorpej ${OBJS} ${LIBLIST} > ${BASE}.list 111