Home | History | Annotate | Line # | Download | only in installboot
      1 #	$NetBSD: Makefile,v 1.60 2024/05/22 15:42:42 tsutsui Exp $
      2 #
      3 
      4 .include <bsd.own.mk>
      5 
      6 PROG=	installboot
      7 MAN=	installboot.8
      8 SRCS=	installboot.c sum.c machines.c fstypes.c
      9 
     10 ARCH_XLAT= amd64-i386.c news68k-news.c newsmips-news.c
     11 ARCH_XLAT+= sun2-sun68k.c sun3-sun68k.c
     12 
     13 .if !defined(SMALLPROG) && !defined(ARCH_FILES)
     14 ARCH_FILES=  alpha.c amiga.c
     15 ARCH_FILES+= evbarm.c evbmips.c ews4800mips.c
     16 ARCH_FILES+= hp300.c hppa.c
     17 ARCH_FILES+= i386.c
     18 ARCH_FILES+= landisk.c
     19 ARCH_FILES+= macppc.c
     20 ARCH_FILES+= news.c next68k.c
     21 ARCH_FILES+= pmax.c
     22 ARCH_FILES+= sparc.c sparc64.c sun68k.c
     23 ARCH_FILES+= vax.c
     24 ARCH_FILES+= x68k.c
     25 .else
     26 ARCH_FILES?= ${ARCH_XLAT:M${MACHINE}-*:S/${MACHINE}-//}
     27 .if empty(ARCH_FILES)
     28 ARCH_FILES= ${MACHINE}.c
     29 .endif
     30 COPTS.machines.c+=	-DSINGLE_ARCH=ib_mach_${MACHINE}
     31 .endif
     32 
     33 SRCS+=${ARCH_FILES}
     34 
     35 .if !empty(ARCH_FILES:C/(evbarm|evbmips)/evboard/:Mevboard.c)
     36 SRCS+=evboards.c
     37 .endif
     38 
     39 .if !empty(ARCH_FILES:C/(evbarm|evbmips)/fdt/:Mfdt.c)
     40 FDTDIR=		${.CURDIR}/../../sys/external/bsd/libfdt/dist
     41 .PATH:		${FDTDIR}
     42 CPPFLAGS+=	-DSUPPORT_FDT -I${FDTDIR}
     43 SRCS+=fdt.c fdt_ro.c fdt_strerror.c
     44 # XXX libfdt has some sign-comparison issues
     45 COPTS.fdt.c+=		-Wno-error=sign-compare
     46 COPTS.fdt_ro.c+=	-Wno-error=sign-compare
     47 COPTS.fdt_strerror.c+=	-Wno-error=sign-compare
     48 .endif
     49 
     50 
     51 .if !defined(HOSTPROGNAME)
     52 .if !empty(ARCH_FILES:C/(evbarm|evbmips)/ofw/:Mofw.c)
     53 CPPFLAGS+=	-DSUPPORT_OPENFIRMWARE
     54 .endif
     55 .endif
     56 
     57 .if empty(ARCH_FILES:C/(macppc|news|sparc|sun68k|x68k)/stg2/:Mstg2.c)
     58 CPPFLAGS+=	-DNO_STAGE2
     59 .else
     60 SRCS+= bbinfo.c
     61 
     62 # fstypes are only needed for 'stage2' and then only from bbinfo.
     63 SRCS+= ffs.c
     64 .if SMALLPROG
     65 CPPFLAGS+=	-DNO_FFS_SWAP
     66 .else
     67 SRCS+= ffs_bswap.c
     68 .endif
     69 #SRCS+= ext2fs.c ext2fs_bswap.c
     70 .endif
     71 
     72 .if !empty(ARCH_FILES:C/(hp300|macppc)/cd9660/:Mcd9660.c) && \
     73     !defined(SMALLPROG)
     74 CPPFLAGS+=	-DSUPPORT_CD9660
     75 SRCS+= cd9660.c cd9660_util.c
     76 
     77 .if !make(obj) && !make(clean) && !make(cleandir)
     78 .BEGIN:
     79 	-rm -rf fs
     80 	${HOST_INSTALL_DIR} fs
     81 	${HOST_INSTALL_DIR} fs/cd9660
     82 	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/unicode.h fs
     83 	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/cd9660/iso.h fs/cd9660
     84 	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/cd9660/cd9660_extern.h fs/cd9660
     85 .endif
     86 
     87 cleandir distclean: cleaninc
     88 
     89 cleaninc:
     90 	-rm -rf fs
     91 .endif
     92 
     93 UFSSRC=		${NETBSDSRCDIR}/sys/ufs
     94 CD9660SRC=	${NETBSDSRCDIR}/sys/fs/cd9660
     95 CPPFLAGS+=	-I${.CURDIR} -I.
     96 .PATH:		${.CURDIR}/arch ${UFSSRC}/ffs ${UFSSRC}/ext2fs ${CD9660SRC}
     97 
     98 .if !defined(HOSTPROGNAME)
     99 .for f in i386 macppc
    100 COPTS.${f}.c+=  -Wno-pointer-sign
    101 .endfor
    102 
    103 .if !empty(SRCS:Mevboards.c)
    104 LDADD+=	-lprop
    105 DPADD+=	${LIBPROP}
    106 .endif
    107 
    108 LDADD+= -lutil
    109 DPADD+= ${LIBUTIL}
    110 .endif
    111 
    112 CWARNFLAGS+=		${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
    113 
    114 .include <bsd.prog.mk>
    115