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