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# 8283545Sgjb# Seriously. 9283545Sgjb# 10283545Sgjb# Don't use this unless you know why you're using it. 11283545Sgjb# 12282785Sgjb# $FreeBSD: stable/10/release/Makefile.mirrors 325899 2017-11-16 16:00:01Z gjb $ 13282785Sgjb# 14282785Sgjb 15282785Sgjb.include "${.CURDIR}/Makefile" 16282785Sgjb 17283545SgjbRELEASEDIR?= /R 18283545SgjbFTPDIR?= ${RELEASEDIR}/ftp-stage 19283672Sgjb.if exists(${RELEASEDIR}) 20282785SgjbSTAGE_TARGETS?= iso-images-stage 21283672Sgjb.endif 22282785Sgjb 23283545Sgjb.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD)) 24325899Sgjb. if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != "" 25283545SgjbEMBEDDED= 1 26283545Sgjb. endif 27283545Sgjb.endif 28283545Sgjb 29282785Sgjb# snapshot 30284813Sgjb.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" 31282785SgjbSNAPSHOT= 1 32282785SgjbTLD?= ${FTPDIR}/snapshots 33283672Sgjb. if !defined(SVNREVISION) || empty(SVNREVISION) 34283672Sgjb. for _D in /usr/bin /usr/local/bin 35283672Sgjb. for _S in svnversion svnliteversion 36283672Sgjb. if exists(${_D}/${_S}) 37282785SgjbSVNVERSION?= ${_D}/${_S} 38283672Sgjb. endif 39283672Sgjb. endfor 40282785Sgjb. endfor 41283672Sgjb. if exists(${SVNVERSION}) && !empty(SVNVERSION) 42283672SgjbSVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile 43283672Sgjb. endif 44283672Sgjb. endif # !defined(SVNREVISION) 45283672Sgjb. if !defined(BUILDDATE) || empty(BUILDDATE) 46283672Sgjb. if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh) 47283545SgjbBUILDDATE!= cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d 48283672Sgjb. else 49283545SgjbBUILDDATE!= date +%Y%m%d 50283672Sgjb. endif 51283545Sgjb. endif 52283672Sgjb_SNAP_SUFFIX:= ${BUILDDATE}-r${SVNREVISION} 53282785Sgjb.else 54282785Sgjb# release 55282785SgjbSNAPSHOT= 56282785SgjbTLD?= ${FTPDIR}/releases 57282785Sgjb.endif 58282785Sgjb 59283545Sgjb.if defined(EMBEDDED) && !empty(EMBEDDED) 60325899Sgjb. if ${TARGET:Marm*} != "" && ${TARGET_ARCH:Marm*} != "" 61283545Sgjb. if !defined(BOARDNAME) && empty(BOARDNAME) 62283545SgjbBOARDNAME:= ${KERNCONF} 63283545Sgjb. else 64283545SgjbOLDNAME:= ${KERNCONF} 65283545Sgjb. endif 66284813Sgjb. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" 67283545SgjbSNAPSHOT= 1 68283545Sgjb. endif 69283545SgjbIMAGES:= img 70283545Sgjb. endif # arm/armv6 71283545Sgjb.endif # embedded 72283545Sgjb 73282785Sgjb.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 74282785SgjbSTAGE_TARGETS+= vm-images-stage 75282785SgjbVM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH} 76282785Sgjb.endif 77282785Sgjb 78282785SgjbCLEANFILES+= ${STAGE_TARGETS} 79289555SgjbCHECKSUM_FILES?= SHA512 SHA256 80282785SgjbSNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' ' 81282785SgjbISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION} 82282785SgjbFTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH} 83282785Sgjb 84283545Sgjbremove-old-bits: 85283545Sgjb rm -rf ${FTPDIR} 86283545Sgjb 87282785Sgjbiso-images-stage: 88282785Sgjb mkdir -p ${ISO_DIR} 89282785Sgjb mkdir -p ${TLD}/ISO-IMAGES/${REVISION} 90283672Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT) 91283545Sgjb cd ${RELEASEDIR} && rm -f CHECKSUM.* 92283672Sgjb. for IMAGE in ${IMAGES} 93283672Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 94283672Sgjb. if defined(OLDNAME) && !empty(OLDNAME) 95283545Sgjb @# arm/armv6 IMX6 -> WANDBOARD, for example. 96283545Sgjb cd ${RELEASEDIR} && \ 97283545Sgjb mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ 98283545Sgjb ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 99283672Sgjb. endif 100283545Sgjb cd ${RELEASEDIR} && \ 101283545Sgjb mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ 102283545Sgjb ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 103283545Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \ 104283545Sgjb ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 105282785Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 106282785Sgjb ln -s \ 107283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 108283672Sgjb. endif # not embedded 109283672Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) 110283545Sgjb cd ${RELEASEDIR} && \ 111283545Sgjb mv ${OSRELEASE}-${IMAGE} \ 112283672Sgjb ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 113283545Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \ 114283545Sgjb ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 115283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 116283545Sgjb ln -s \ 117283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 118283672Sgjb. endif 119283672Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) 120283545Sgjb cd ${RELEASEDIR} && \ 121283545Sgjb mv ${OSRELEASE}-${IMAGE}.xz \ 122283672Sgjb ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 123283545Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \ 124283545Sgjb ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 125283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 126283545Sgjb ln -s \ 127283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 128283672Sgjb. endif 129283672Sgjb. endfor # images loop 130283545Sgjb cd ${RELEASEDIR} && rm -f CHECKSUM.* 131283672Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 132283672Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 133283545Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 134283545Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 135283545Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \ 136283545Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 137283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 138283545Sgjb ln -s \ 139283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 140283672Sgjb. else # not embedded 141283545Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 142283545Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 143283545Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \ 144283545Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 145283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 146283545Sgjb ln -s \ 147283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 148283672Sgjb. endif # 149283672Sgjb. endfor # checksum files 150283672Sgjb.else # not snapshot 151283672Sgjb. for IMAGE in ${IMAGES} 152283672Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 153283672Sgjb. if defined(OLDNAME) && !empty(OLDNAME) 154283545Sgjb @# arm/armv6 IMX6 -> WANDBOARD, for example. 155283545Sgjb cd ${RELEASEDIR} && \ 156283545Sgjb mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ 157283545Sgjb ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 158283672Sgjb. endif 159283545Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ 160283545Sgjb ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 161283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 162283545Sgjb ln -s \ 163283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 164283672Sgjb. endif # not embedded 165283672Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) 166283545Sgjb cd ${RELEASEDIR} && \ 167283545Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \ 168283545Sgjb ${ISO_DIR}/${OSRELEASE}-${IMAGE} 169283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 170283545Sgjb ln -s \ 171283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE} 172283672Sgjb. endif 173283672Sgjb. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) 174283545Sgjb cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \ 175283545Sgjb ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz 176283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 177283545Sgjb ln -s \ 178283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz 179283672Sgjb. endif 180283672Sgjb. endfor # images loop 181283545Sgjb cd ${RELEASEDIR} && rm -f CHECKSUM.* 182283672Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 183283672Sgjb. if defined(EMBEDDED) && !empty(EMBEDDED) 184283545Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 185283545Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 186283545Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \ 187283545Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 188283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 189283545Sgjb ln -s \ 190283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 191283672Sgjb. else # not embedded 192283545Sgjb cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 193283545Sgjb CHECKSUM.${CHECKSUM}-${OSRELEASE} 194283545Sgjb cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \ 195283545Sgjb ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} 196283545Sgjb cd ${TLD}/ISO-IMAGES/${REVISION} && \ 197283545Sgjb ln -s \ 198283545Sgjb ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE} 199283672Sgjb. endif 200283672Sgjb. endfor # checksum files 201283672Sgjb.endif # release 202283672Sgjb.if exists(${RELEASEDIR}/ftp) 203282785Sgjb mkdir -p ${FTP_DIR} 204283545Sgjb cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR} 205282785Sgjb cd ${TLD}/${TARGET} && \ 206282785Sgjb ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \ 207282785Sgjb ${REVISION}-${BRANCH} 208283672Sgjb.endif 209282785Sgjb 210282785Sgjbvm-images-stage: 211283545Sgjb mkdir -p ${VM_DIR} 212283545Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT) 213283545Sgjb. if exists(${VM_DIR}/Latest) 214283545Sgjb rm -rf ${VM_DIR}/Latest 215283545Sgjb. endif 216283545Sgjb mkdir -p ${VM_DIR}/Latest 217283545Sgjb mkdir -p ${VM_DIR}/${BUILDDATE} 218283545Sgjb. for VMFORMAT in ${VMFORMATS} 219283545Sgjb cd ${RELEASEDIR}/vmimages && \ 220283545Sgjb mv ${OSRELEASE}.${VMFORMAT}.xz \ 221283545Sgjb ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz 222283545Sgjb cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ 223283545Sgjb ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz 224283545Sgjb cd ${VM_DIR}/Latest && \ 225283545Sgjb ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ 226283545Sgjb ${OSRELEASE}.${VMFORMAT}.xz 227283545Sgjb. endfor 228283545Sgjb cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.* 229283545Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 230283545Sgjb cd ${RELEASEDIR}/vmimages && \ 231283545Sgjb ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} 232283545Sgjb cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ 233283545Sgjb ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} 234283545Sgjb cd ${VM_DIR}/Latest && \ 235283545Sgjb ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ 236283545Sgjb CHECKSUM.${CHECKSUM} 237283545Sgjb. endfor 238283545Sgjb.else # not snapshot 239283545Sgjb. if exists(${VM_DIR}/Latest) 240283545Sgjb rm -rf ${VM_DIR}/Latest 241283545Sgjb. endif 242283545Sgjb mkdir -p ${VM_DIR}/Latest 243283545Sgjb. for VMFORMAT in ${VMFORMATS} 244283545Sgjb cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \ 245283545Sgjb ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz 246283545Sgjb. endfor 247283545Sgjb. for CHECKSUM in ${CHECKSUM_FILES} 248283545Sgjb cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \ 249283545Sgjb ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM} 250283545Sgjb. endfor 251283545Sgjb.endif 252282785Sgjb 253283545Sgjbftp-stage: remove-old-bits ${STAGE_TARGETS} 254282785Sgjb 255