1# $NetBSD: Makefile.inc,v 1.49 2024/04/22 14:41:26 nia Exp $ 2# 3# Makefile for sysinst 4 5.if exists(${.CURDIR}/../../../Makefile.inc) 6.include "${.CURDIR}/../../../Makefile.inc" 7.endif 8 9PROG= sysinst 10MAN= sysinst.8 11 12WARNS= 4 13 14SRCS+= menu_defs.c msg_defs.c main.c install.c upgrade.c \ 15 txtwalk.c run.c factor.c net.c disks.c disks_lfs.c util.c geom.c \ 16 label.c target.c md.c sizemultname.c configmenu.c checkrc.c \ 17 disklabel.c partitions.c part_edit.c 18 19SRCS+= ${MD_OPTIONS:MAOUT2ELF:S/AOUT2ELF/aout2elf.c/} 20SRCS+= ${CPPFLAGS:M-DWSKBD:S/-DWSKBD/wskbd.c/} 21SRCS+= ${NODISKLABEL:D:Ubsddisklabel.c} 22SRCS+= ${NOPARTMAN:D:Upartman.c} 23 24.PATH: ${.CURDIR}/../../../../sbin/fsck 25SRCS+=partutil.c 26 27DPSRCS+= defs.h 28 29SYSINSTLANG?= en 30LANGUAGES?= de en es fr pl 31 32MENUS_MI= menus.mi 33MENUS_MI+= ${NOPARTMAN:D:Umenus.pm} 34 35.if ${NO_GPT:Uno} != "yes" 36CPPFLAGS+= -DHAVE_GPT 37GPT_DIR=${.CURDIR}/../../../../sbin/gpt 38SRCS+= gpt.c gpt_uuid.c 39CPPFLAGS.gpt_uuid.c+= -I${GPT_DIR} 40CPPFLAGS.gpt.c+= -I${GPT_DIR} 41.endif 42.if ${NO_MBR:Uyes} != "yes" 43CPPFLAGS+= -DHAVE_MBR 44SRCS+= mbr.c 45.endif 46.if ${NO_CLONES:Uno} == "yes" 47CPPFLAGS+= -DNO_CLONES 48.endif 49 50.if ${CHECK_ENTROPY:Uyes} != "no" 51MENUS_MI+= menus.entropy 52CPPFLAGS+= -DCHECK_ENTROPY=1 53.endif 54 55MSG_MD?= msg.md.${SYSINSTLANG} 56MENUS_MD?= menus.md.${SYSINSTLANG} 57 58.include <bsd.own.mk> # for mk.conf 59#.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib" 60 61DISTRIBVER!= ${HOST_SH} ${NETBSDSRCDIR}/sys/conf/osrelease.sh 62DISTRIBVERDEP= ${NETBSDSRCDIR}/sys/sys/param.h \ 63 ${NETBSDSRCDIR}/sys/conf/osrelease.sh 64 65_MKSHTARGET_CREATE?= ${_MKSHMSG_CREATE} ${.CURDIR:T}/${.TARGET} 66 67DPADD= ${LIBCURSES} ${LIBTERMLIB} ${LIBPROP} ${LIBUTIL} 68LDADD= -lcurses -ltermlib -lprop -lutil 69 70UNIF_AWK= ${.CURDIR}/../../unif.awk 71MSG_XLAT_SH= ${.CURDIR}/../../msg_xlat.sh 72MSG_CMP_SH= ${.CURDIR}/../../msg_cmp.sh 73 74SETS_TAR_SUFF=${"${USE_XZ_SETS:Uno}"!="no":?"tar.xz":"tgz"} 75 76.if ${MKBSDTAR:Uno} == "no" 77CPPFLAGS+= -DUSING_PAXASTAR 78.endif 79 80.if ${MKCOMPAT:Uno} != "no" 81CPPFLAGS+= -DHAVE_BASE32 82.endif 83 84.if ${MKCOMPAT:Uno} != "no" && \ 85 (${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el") 86CPPFLAGS+= -DHAVE_BASE64 87.endif 88 89.if ${MKCOMPAT:Uno} != "no" && ${MKDEBUG:Uno} != "no" 90CPPFLAGS+= -DHAVE_DEBUG32 91.endif 92 93.if ${MKCOMPAT:Uno} != "no" && ${MKDEBUG:Uno} != "no" && \ 94 (${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el") 95CPPFLAGS+= -DHAVE_DEBUG64 96.endif 97 98.if ${MKDTB:Uno} != "no" 99CPPFLAGS+= -DHAVE_DTB 100.endif 101 102.if ${MKKMOD:Uno} != "no" 103CPPFLAGS+= -DHAVE_MODULES 104.endif 105 106CATALOGDIR= /usr/share/sysinst/catalog 107CPPFLAGS+= -I. -I${.CURDIR}/../.. -I${.CURDIR} \ 108 -I${.CURDIR}/../../../../sbin/fsck \ 109 -DSETS_TAR_SUFF=${SETS_TAR_SUFF:Q} \ 110 -DREL=\"${DISTRIBVER}\" -DMACH=\"${MACHINE}\" \ 111 -DMACH_${MACHINE} -DARCH_${MACHINE_ARCH} \ 112 ${NODISKLABEL:D-DNO_DISKLABEL} \ 113 ${NOPARTMAN:D-DNO_PARTMAN} 114 115.if ${USE_XZ_SETS:Uno} != "no" 116CPPFLAGS+= -DEXTRACT_NEEDS_BIG_RAM 117.endif 118 119.if ${RELEASEMACHINEDIR} != ${MACHINE} 120CPPFLAGS+= -DARCH_SUBDIR="\"${RELEASEMACHINEDIR}\"" 121CPPFLAGS+= -DPKG_ARCH_SUBDIR="\"${MACHINE_ARCH}\"" 122.endif 123 124.if defined(NETBSD_OFFICIAL_RELEASE) && ${NETBSD_OFFICIAL_RELEASE} == "yes" 125CPPFLAGS+= -DSYSINST_FTP_HOST=\"ftp.NetBSD.org\" -DNETBSD_OFFICIAL_RELEASE 126CPPFLAGS+= -DSYSINST_HTTP_HOST=\"cdn.NetBSD.org\" -DNETBSD_OFFICIAL_RELEASE 127CPPFLAGS+= -DREL_PATH=\"netbsd-${DISTRIBVER:C/\.[0-9][_A-Z]*[0-9]*$//:S/./-/}\" 128CPPFLAGS+= -DPKG_SUBDIR="\"${DISTRIBVER:C/_.*$//}\"" 129.else 130CPPFLAGS+= -DSYSINST_FTP_HOST=\"nyftp.NetBSD.org\" 131CPPFLAGS+= -DSYSINST_HTTP_HOST=\"nycdn.NetBSD.org\" 132.if (${DISTRIBVER:M*.99.*}) 133CPPFLAGS+= -DREL_PATH=\"HEAD\" 134CPPFLAGS+= -DPKG_SUBDIR="\"${DISTRIBVER:C/\.99\.[0-9]*[_A-Z]*$//}.0\"" 135.elif (${DISTRIBVER:M*.[0-9].[0-9]*}) 136CPPFLAGS+= -DREL_PATH=\"netbsd-${DISTRIBVER:C/\.[0-9][_A-Z]*[0-9]*$//:S/./-/}\" 137CPPFLAGS+= -DPKG_SUBDIR="\"${DISTRIBVER:C/_.*$//}\"" 138.elif (${DISTRIBVER:M*.[0-9]*}) 139CPPFLAGS+= -DREL_PATH=\"netbsd-${DISTRIBVER:C/\.[0-9][_A-Z]*[0-9]*$//}\" 140CPPFLAGS+= -DPKG_SUBDIR="\"${DISTRIBVER:C/_.*$//}\"" 141.endif 142.endif 143CPPFLAGS+= -DNETBSD_MAJOR='"${DISTRIBVER:C/\..*//}"' 144 145.if !defined(DEBUG) 146CPPFLAGS+= -DCATALOG_DIR=\"${CATALOGDIR}\" 147.endif 148 149.if (defined(DEBUG)) 150.if ${ACTIVE_CC} == "gcc" 151# make gcc run additional passes for better debug info (only needed 152# when compiling with -O0) 153O0TRACKING= -fvar-tracking-assignments -fvar-tracking 154.endif 155CPPFLAGS+=-DDEBUG 156DBG +=-g -O0 ${O0TRACKING} 157.else 158.if defined(SMALLPROG) 159COPTS += -Os 160.endif 161.endif 162 163.if (!defined(SMALLPROG) || defined(SMALLPROG_INET6)) && (${USE_INET6} != "no") 164CPPFLAGS+=-DINET6 165.endif 166 167COPTS+= ${CC_WNO_FORMAT_TRUNCATION} 168COPTS.disklabel.c+= ${CC_WNO_STRINGOP_TRUNCATION} 169 170# Host to ftp from. Default: 171# "ftp.NetBSD.org" 172# 173.if defined(SYSINST_FTP_HOST) 174CPPFLAGS+= -DSYSINST_FTP_HOST=\"${SYSINST_FTP_HOST}\" 175.endif 176 177# Top-level ftp directory. Default: 178# "pub/NetBSD/NetBSD-" + VER + "/" + MACH 179# 180.if defined(SYSINST_FTP_DIR) 181CPPFLAGS+= -DSYSINST_FTP_DIR=\"${SYSINST_FTP_DIR}\" 182.endif 183 184# Top-level CDROM directory. Default: 185# "/" + MACH 186# 187.if defined(SYSINST_CDROM_DIR) 188CPPFLAGS+= -DSYSINST_CDROM_DIR=\"${SYSINST_CDROM_DIR}\" 189.endif 190 191 192DPSRCS+= msg_defs.h menu_defs.h 193 194CLEANFILES= menu_defs.c menu_defs.h menus.def \ 195 msg_defs.c msg_defs.h msg.def msgtouch \ 196 sysinstmsgs.* 197 198.PATH: ${.CURDIR}/../.. 199 200menu_defs.h: menu_defs.c 201 [ -f ${.TARGET} ] || { \ 202 ${_MKSHTARGET_CREATE}; \ 203 ${TOOL_MENUC} menus.def; \ 204 } 205menu_defs.c: menus.def 206 ${_MKTARGET_CREATE} 207 [ ! -f menu_defs.h ] || mv -f menu_defs.h menu_defs.oh 208 ${TOOL_MENUC} menus.def 209 ! cmp -s menu_defs.oh menu_defs.h || mv -f menu_defs.oh menu_defs.h 210 @rm -f menu_defs.oh 211 212msg_defs.h: msg_defs.c 213 [ -f ${.TARGET} ] || { \ 214 ${_MKSHTARGET_CREATE}; \ 215 ${TOOL_MSGC} msg.def; \ 216 } 217msg_defs.c: msg.def 218 ${_MKTARGET_CREATE} 219 [ ! -f msg_defs.h ] || mv -f msg_defs.h msg_defs.oh 220 ${TOOL_MSGC} msg.def 221 ! cmp -s msg_defs.oh msg_defs.h || mv -f msg_defs.oh msg_defs.h 222 @rm -f msg_defs.oh 223 224# Needed to get proper dependency checks on osrelease 225msgtouch: ${DISTRIBVERDEP} 226 touch ${.TARGET} 227 228.if !defined(NOPARTMAN) 229MSG_MD+= msg.pm.${SYSINSTLANG} 230.endif 231 232.if ${CHECK_ENTROPY:Uyes} != "no" 233MSG_MD+= msg.entropy.${SYSINSTLANG} 234.endif 235 236msg.def: msg.mi.${SYSINSTLANG} ${MSG_MD} msgtouch 237 ${_MKTARGET_CREATE} 238 ${TOOL_SED} "s/@@VERSION@@/${DISTRIBVER}/" ${.ALLSRC} | \ 239 ${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \ 240 ${TOOL_AWK} -f ${UNIF_AWK} -v defines="${MD_OPTIONS}" > ${.TARGET} 241 242menus.def: ${MENUS_MI} ${MENUS_MD} msgtouch 243 ${_MKTARGET_CREATE} 244 ${TOOL_SED} "s/@@VERSION@@/${DISTRIBVER}/" ${.ALLSRC} | \ 245 ${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \ 246 ${TOOL_AWK} -f ${UNIF_AWK} -v defines="${MD_OPTIONS}" > ${.TARGET} 247 248sysinstmsgs.fmtcnt: msg.mi.${SYSINSTLANG} ${MSG_MD} msgtouch msg_defs.h 249 ${_MKTARGET_CREATE} 250 ${TOOL_SED} "s/@@VERSION@@/${DISTRIBVER}/" \ 251 ${.ALLSRC:M*.${SYSINSTLANG}} | \ 252 ${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \ 253 ${TOOL_AWK} -f ${UNIF_AWK} -v defines="${MD_OPTIONS}" | \ 254 ${HOST_SH} ${MSG_XLAT_SH} -c > ${.TARGET} 255 256.for LANG in ${LANGUAGES:N${SYSINSTLANG}} 257sysinstmsgs.${LANG}: msg.mi.${LANG} ${MSG_MD:S/.${SYSINSTLANG}$/.${LANG}/} msgtouch msg_defs.h sysinstmsgs.fmtcnt 258 ${_MKTARGET_CREATE} 259 ${TOOL_SED} "s/@@VERSION@@/${DISTRIBVER}/" ${.ALLSRC:M*.${LANG}} | \ 260 ${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \ 261 ${TOOL_AWK} -f ${UNIF_AWK} -v defines="${MD_OPTIONS}" | \ 262 ${HOST_SH} ${MSG_XLAT_SH} -f sysinstmsgs.fmtcnt > ${.TARGET} 263 264DPSRCS+= sysinstmsgs.${LANG} 265FILES+= sysinstmsgs.${LANG} 266FILESDIR_sysinstmsgs.${LANG}= ${CATALOGDIR} 267.endfor 268 269.PHONY: check-lang 270check-lang: msg.def msg_defs.h 271 ${_MKTARGET_CREATE} 272 ${TOOL_SED} "s/@@VERSION@@/${DISTRIBVER}/" msg.def | \ 273 ${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \ 274 ${TOOL_AWK} -f ${UNIF_AWK} -v defines="${MD_OPTIONS}" | \ 275 ${HOST_SH} ${MSG_XLAT_SH} -i > /tmp/sysinst.en 276 ${HOST_SH} ${MSG_CMP_SH} msg_defs.h /tmp/sysinst.en sysinstmsgs.${LANG} 277 @rm /tmp/sysinst.en 278 279COPTS.util.c+= ${CC_WNO_STRINGOP_TRUNCATION} 280COPTS+= -fcommon 281 282.include <bsd.prog.mk> 283