Home | History | Annotate | Line # | Download | only in gzboot
Makefile.gzboot revision 1.29
      1  1.29     joerg #	$NetBSD: Makefile.gzboot,v 1.29 2013/12/15 18:08:37 joerg Exp $
      2   1.1   thorpej 
      3   1.1   thorpej NOMAN=  # defined
      4   1.1   thorpej 
      5  1.11       bsh .include <bsd.obj.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 VERSIONFILE=	${EVBARM_STAND}/gzboot/version
     18   1.1   thorpej 
     19   1.1   thorpej BINMODE=644
     20   1.1   thorpej 
     21   1.1   thorpej DBG=	-Os
     22   1.1   thorpej 
     23   1.1   thorpej # XXX SHOULD NOT NEED TO DEFINE THESE!
     24   1.1   thorpej LIBCRT0=
     25   1.1   thorpej LIBC=
     26   1.1   thorpej LIBCRTBEGIN= 
     27   1.1   thorpej LIBCRTEND=      
     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.28     joerg .if ${HAVE_LLVM:Uno} != "no" || ${HAVE_GCC:U0} >= 48
     41  1.28     joerg CPPFLAGS+=	-marm
     42  1.27  christos .else
     43  1.28     joerg CPPFLAGS+=	-mno-thumb -mno-thumb-interwork
     44  1.27  christos .endif
     45   1.3   thorpej 
     46   1.1   thorpej CPPFLAGS+= -D_STANDALONE
     47   1.5   thorpej 
     48   1.5   thorpej # Specify the heap size (used by board mem_init() routines)
     49  1.14        he CPPFLAGS+= -DBOARD_HEAP_SIZE=1048576		# 1M
     50   1.3   thorpej 
     51   1.3   thorpej # libsa options
     52   1.1   thorpej CPPFLAGS+= -DHEAP_VARIABLE
     53   1.3   thorpej 
     54   1.3   thorpej CPPFLAGS+= -DRELOC=${RELOC}
     55   1.3   thorpej CPPFLAGS+= -DMAXIMAGESIZE=${MAXIMAGESIZE}
     56   1.3   thorpej CPPFLAGS+= -DLOADADDR=${LOADADDR}
     57   1.1   thorpej 
     58   1.1   thorpej COPTS+=	-ffreestanding
     59  1.20   khorben COPTS+=	-fno-stack-protector
     60  1.23      matt COPTS+=	-fno-unwind-tables
     61  1.15   tsutsui CWARNFLAGS+= -Werror
     62  1.15   tsutsui CWARNFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
     63   1.1   thorpej 
     64   1.1   thorpej CLEANFILES+= ${STARTFILE} vers.c ${BASE}.list
     65   1.8   thorpej CLEANFILES+= ${PROGSYM}
     66   1.1   thorpej SRCS+= vers.c
     67   1.1   thorpej 
     68   1.1   thorpej ### find out what to use for libkern
     69   1.1   thorpej KERN_AS=	library
     70   1.1   thorpej .include "${S}/lib/libkern/Makefile.inc"
     71   1.1   thorpej LIBKERN=	${KERNLIB}
     72   1.1   thorpej 
     73   1.1   thorpej ### find out what to use for libz
     74   1.1   thorpej Z_AS=		library
     75   1.1   thorpej .include "${S}/lib/libz/Makefile.inc"
     76   1.1   thorpej LIBZ=		${ZLIB}
     77   1.1   thorpej 
     78   1.1   thorpej ### find out what to use for libsa
     79   1.1   thorpej SA_AS=		library
     80   1.1   thorpej .include "${S}/lib/libsa/Makefile.inc"
     81   1.1   thorpej LIBSA=		${SALIB}
     82   1.1   thorpej 
     83  1.16  dholland cleandir distclean: .WAIT cleanlibdir
     84   1.1   thorpej 
     85   1.1   thorpej cleanlibdir:
     86  1.10       jmc 	-rm -rf lib
     87   1.1   thorpej 
     88  1.19      matt LDFLAGS= -M -T ${LDSCRIPT} --fix-v4bx
     89   1.1   thorpej 
     90   1.1   thorpej LIBLIST=${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBSA}
     91   1.1   thorpej 
     92   1.1   thorpej .PHONY: vers.c
     93   1.1   thorpej vers.c: ${VERSIONFILE}
     94  1.17     joerg 	${HOST_SH} ${S}/conf/newvers_stand.sh ${${MKREPRO} == "yes" :?:-D} \
     95  1.17     joerg 	    ${.ALLSRC} '${PLATFORM}' ${NEWVERSWHAT}
     96   1.1   thorpej 
     97   1.7   thorpej ${PROG}: ${PROGSYM}
     98   1.7   thorpej 	${OBJCOPY} -O binary ${PROGSYM} ${.TARGET}
     99   1.8   thorpej 
    100   1.8   thorpej # Prevent the normal install target from doing anything.
    101   1.8   thorpej proginstall::
    102   1.8   thorpej 
    103   1.8   thorpej # Install the raw binary or the symbol version, based on whether or
    104   1.8   thorpej # not the resulting gzboot needs to be mdsetimage'd.
    105   1.8   thorpej .if ${MAXIMAGESIZE} == "0"
    106   1.8   thorpej FILES=	${PROG}
    107   1.8   thorpej .else
    108   1.8   thorpej FILES=	${PROGSYM}
    109   1.8   thorpej .endif
    110   1.1   thorpej 
    111   1.1   thorpej .include <bsd.prog.mk>
    112   1.7   thorpej 
    113   1.7   thorpej ${PROGSYM}: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
    114  1.18      matt 	${_MKTARGET_LINK}
    115   1.7   thorpej 	${LD} -o ${.TARGET} ${LDFLAGS} ${STARTFILE} \
    116   1.7   thorpej 	    ${OBJS} ${LIBLIST} > ${BASE}.list
    117