1282785Sgjb# 2282785Sgjb# This Makefile helps create the directory structure on ftp-master, 3282785Sgjb# making staging builds a bit more sane. 4282785Sgjb# 5282785Sgjb# You probably do not want to use this. Really. 6282785Sgjb# You have been warned. 7282785Sgjb# 8282798Sgjb# Seriously. 9282798Sgjb# 10282798Sgjb# Don't use this unless you know why you're using it. 11282798Sgjb# 12282785Sgjb# $FreeBSD: stable/11/release/Makefile.mirrors 349518 2019-06-28 20:28:20Z gjb $ 13282785Sgjb# 14282785Sgjb 15282785Sgjb.include "${.CURDIR}/Makefile" 16282785Sgjb 17282787SgjbRELEASEDIR?= /R 18282799SgjbFTPDIR?= ${RELEASEDIR}/ftp-stage 19283574Sgjb.if exists(${RELEASEDIR}) 20282785SgjbSTAGE_TARGETS?= iso-images-stage 21283574Sgjb.endif 22349518SgjbSRCBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR} 23282785Sgjb 24283298Sgjb.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD)) 25325898Sgjb. if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != "" 26283271SgjbEMBEDDED= 1 27283272Sgjb. endif 28283271Sgjb.endif 29283271Sgjb 30282785Sgjb# snapshot 31300814Sgjb.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != "" 32282785SgjbSNAPSHOT= 1 33282785SgjbTLD?= ${FTPDIR}/snapshots 34283580Sgjb. if !defined(SVNREVISION) || empty(SVNREVISION) 35283580Sgjb. for _D in /usr/bin /usr/local/bin 36283580Sgjb. for _S in svnversion svnliteversion 37283580Sgjb. if exists(${_D}/${_S}) 38282785SgjbSVNVERSION?= ${_D}/${_S} 39283580Sgjb. endif 40283580Sgjb. endfor 41282785Sgjb. endfor 42283580Sgjb. if exists(${SVNVERSION}) && !empty(SVNVERSION) 43283580SgjbSVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile 44283580Sgjb. endif 45283593Sgjb. endif # !defined(SVNREVISION) 46283580Sgjb. if !defined(BUILDDATE) || empty(BUILDDATE) 47283580Sgjb. if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh) 48283271SgjbBUILDDATE!= cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d 49283580Sgjb. else 50283271SgjbBUILDDATE!= date +%Y%m%d 51283580Sgjb. endif 52283271Sgjb. endif 53283618Sgjb_SNAP_SUFFIX:= ${BUILDDATE}-r${SVNREVISION} 54282785Sgjb.else 55282785Sgjb# release 56282785SgjbSNAPSHOT= 57282785SgjbTLD?= ${FTPDIR}/releases 58282785Sgjb.endif 59282785Sgjb 60283271Sgjb.if defined(EMBEDDED) && !empty(EMBEDDED) 61325898Sgjb. if ${TARGET:Marm*} != "" && (${TARGET_ARCH:Marm*} != "" || ${TARGET_ARCH} == "aarch64") 62283271Sgjb. if !defined(BOARDNAME) && empty(BOARDNAME) 63283271SgjbBOARDNAME:= ${KERNCONF} 64283271Sgjb. else 65283271SgjbOLDNAME:= ${KERNCONF} 66283271Sgjb. endif 67300814Sgjb. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != "" 68283271SgjbSNAPSHOT= 1 69283271Sgjb. endif 70283298SgjbIMAGES:= img 71283271Sgjb. endif # arm/armv6 72283271Sgjb.endif # embedded 73283271Sgjb 74282785Sgjb.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 75282785SgjbSTAGE_TARGETS+= vm-images-stage 76282785SgjbVM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH} 77282785Sgjb.endif 78282785Sgjb 79282785SgjbCLEANFILES+= ${STAGE_TARGETS} 80289337SgjbCHECKSUM_FILES?= SHA512 SHA256 81282785SgjbSNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' ' 82282785SgjbISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION} 83282785SgjbFTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH} 84282785Sgjb 85282789Sgjbremove-old-bits: 86282789Sgjb rm -rf ${FTPDIR} 87282789Sgjb 88282785Sgjbiso-images-stage: 89282785Sgjb mkdir -p ${ISO_DIR} 90282785Sgjb mkdir -p ${TLD}/ISO-IMAGES/${REVISION} 91283576Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT) 92283298Sgjb cd ${RELEASEDIR} && rm -f CHECKSUM.* 93283576Sgjb. for IMAGE in ${IMAGES} 94283576Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 95283576Sgjb. if defined(OLDNAME) && !empty(OLDNAME) 96283271Sgjb @# arm/armv6 IMX6 -> WANDBOARD, for example. 97283298Sgjb cd ${RELEASEDIR} && \ 98283298Sgjb mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ 99283298Sgjb ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 100283576Sgjb. endif 101283298Sgjb cd ${RELEASEDIR} && \ 102283298Sgjb mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ 103283298Sgjb ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 104283298Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \ 105283298Sgjb ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 106283298Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 107283298Sgjb ln -s \ 108283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 109283576Sgjb. endif # not embedded 110283576Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) 111283298Sgjb cd ${RELEASEDIR} && \ 112283298Sgjb mv ${OSRELEASE}-${IMAGE} \ 113283573Sgjb ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 114283298Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \ 115283298Sgjb ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 116282785Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 117282785Sgjb ln -s \ 118283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 119283576Sgjb. endif 120283576Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) 121283298Sgjb cd ${RELEASEDIR} && \ 122283298Sgjb mv ${OSRELEASE}-${IMAGE}.xz \ 123283573Sgjb ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 124283298Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \ 125283298Sgjb ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 126283265Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 127283265Sgjb ln -s \ 128283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 129283576Sgjb. endif 130283576Sgjb. endfor # images loop 131283298Sgjb cd ${RELEASEDIR} && rm -f CHECKSUM.* 132283576Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 133283576Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 134283298Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 135283271Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 136283298Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \ 137283298Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 138283271Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 139283271Sgjb ln -s \ 140283271Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 141283576Sgjb. else # not embedded 142283298Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 143283265Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 144283298Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \ 145283298Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 146282796Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 147282794Sgjb ln -s \ 148283265Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 149283576Sgjb. endif # 150283576Sgjb. endfor # checksum files 151283576Sgjb.else # not snapshot 152283576Sgjb. for IMAGE in ${IMAGES} 153283576Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 154283576Sgjb. if defined(OLDNAME) && !empty(OLDNAME) 155283298Sgjb @# arm/armv6 IMX6 -> WANDBOARD, for example. 156283298Sgjb cd ${RELEASEDIR} && \ 157283298Sgjb mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ 158283298Sgjb ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 159283576Sgjb. endif 160283298Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ 161283298Sgjb ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 162283298Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 163283298Sgjb ln -s \ 164283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 165283576Sgjb. endif # not embedded 166283576Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) 167283298Sgjb cd ${RELEASEDIR} && \ 168283298Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \ 169283298Sgjb ${ISO_DIR}/${OSRELEASE}-${IMAGE} 170283298Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 171283298Sgjb ln -s \ 172283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE} 173283576Sgjb. endif 174283576Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) 175283298Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \ 176283298Sgjb ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz 177283298Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 178283298Sgjb ln -s \ 179283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz 180283576Sgjb. endif 181283576Sgjb. endfor # images loop 182283298Sgjb cd ${RELEASEDIR} && rm -f CHECKSUM.* 183283576Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 184283576Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 185283298Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 186283298Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 187283298Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \ 188283298Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 189283298Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 190283298Sgjb ln -s \ 191283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 192283576Sgjb. else # not embedded 193283298Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 194283266Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE} 195283298Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \ 196283298Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} 197283298Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 198283298Sgjb ln -s \ 199283298Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE} 200283576Sgjb. endif 201283576Sgjb. endfor # checksum files 202283576Sgjb.endif # release 203283576Sgjb.if exists(${RELEASEDIR}/ftp) 204282785Sgjb mkdir -p ${FTP_DIR} 205283298Sgjb cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR} 206349518Sgjb echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE 207349518Sgjb echo ${SRCBRANCH} > ${FTP_DIR}/SRCBRANCH 208349518Sgjb echo r${SVNREVISION} > ${FTP_DIR}/REVISION 209282785Sgjb cd ${TLD}/${TARGET} && \ 210282785Sgjb ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \ 211282785Sgjb ${REVISION}-${BRANCH} 212283576Sgjb.endif 213282785Sgjb 214282785Sgjbvm-images-stage: 215283302Sgjb mkdir -p ${VM_DIR} 216283302Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT) 217283302Sgjb. if exists(${VM_DIR}/Latest) 218283302Sgjb rm -rf ${VM_DIR}/Latest 219283302Sgjb. endif 220283302Sgjb mkdir -p ${VM_DIR}/Latest 221283302Sgjb mkdir -p ${VM_DIR}/${BUILDDATE} 222283302Sgjb. for VMFORMAT in ${VMFORMATS} 223283302Sgjb cd ${RELEASEDIR}/vmimages && \ 224283302Sgjb mv ${OSRELEASE}.${VMFORMAT}.xz \ 225283302Sgjb ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz 226283302Sgjb cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ 227283302Sgjb ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz 228283302Sgjb cd ${VM_DIR}/Latest && \ 229283302Sgjb ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ 230283302Sgjb ${OSRELEASE}.${VMFORMAT}.xz 231283302Sgjb. endfor 232283302Sgjb cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.* 233283302Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 234283302Sgjb cd ${RELEASEDIR}/vmimages && \ 235283302Sgjb ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} 236283302Sgjb cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ 237283302Sgjb ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} 238283302Sgjb cd ${VM_DIR}/Latest && \ 239283302Sgjb ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ 240283302Sgjb CHECKSUM.${CHECKSUM} 241283302Sgjb. endfor 242283302Sgjb.else # not snapshot 243283302Sgjb. if exists(${VM_DIR}/Latest) 244283302Sgjb rm -rf ${VM_DIR}/Latest 245283302Sgjb. endif 246283302Sgjb mkdir -p ${VM_DIR}/Latest 247283302Sgjb. for VMFORMAT in ${VMFORMATS} 248283302Sgjb cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \ 249283302Sgjb ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz 250283302Sgjb. endfor 251283302Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 252283302Sgjb cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \ 253283302Sgjb ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM} 254283302Sgjb. endfor 255283302Sgjb.endif 256282785Sgjb 257282789Sgjbftp-stage: remove-old-bits ${STAGE_TARGETS} 258282785Sgjb 259