Makefile.mirrors revision 283545
1# 2# This Makefile helps create the directory structure on ftp-master, 3# making staging builds a bit more sane. 4# 5# You probably do not want to use this. Really. 6# You have been warned. 7# 8# Seriously. 9# 10# Don't use this unless you know why you're using it. 11# 12# $FreeBSD: stable/10/release/Makefile.mirrors 283545 2015-05-25 22:12:30Z gjb $ 13# 14 15.include "${.CURDIR}/Makefile" 16 17RELEASEDIR?= /R 18FTPDIR?= ${RELEASEDIR}/ftp-stage 19STAGE_TARGETS?= iso-images-stage 20 21.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD)) 22. if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm" 23EMBEDDED= 1 24. endif 25.endif 26 27# snapshot 28.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" 29SNAPSHOT= 1 30TLD?= ${FTPDIR}/snapshots 31. for _D in /usr/bin /usr/local/bin 32. for _S in svnversion svnliteversion 33. if exists(${_D}/${_S}) 34SVNVERSION?= ${_D}/${_S} 35. endif 36. endfor 37. endfor 38. if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh) 39BUILDDATE!= cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d 40. else 41BUILDDATE!= date +%Y%m%d 42. endif 43. if exists(${SVNVERSION}) && !empty(SVNVERSION) 44SVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile 45_SNAP_SUFFIX:= -r${SVNREVISION}-${BUILDDATE} 46. else 47_SNAP_SUFFIX:= -${BUILDDATE} 48. endif 49.else 50# release 51SNAPSHOT= 52TLD?= ${FTPDIR}/releases 53.endif 54 55.if defined(EMBEDDED) && !empty(EMBEDDED) 56. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6" 57. if !defined(BOARDNAME) && empty(BOARDNAME) 58BOARDNAME:= ${KERNCONF} 59. else 60OLDNAME:= ${KERNCONF} 61. endif 62. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" 63SNAPSHOT= 1 64. endif 65IMAGES:= img 66. endif # arm/armv6 67.endif # embedded 68 69.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 70STAGE_TARGETS+= vm-images-stage 71VM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH} 72.endif 73 74CLEANFILES+= ${STAGE_TARGETS} 75CHECKSUM_FILES?= SHA256 MD5 76SNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' ' 77ISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION} 78FTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH} 79 80remove-old-bits: 81 rm -rf ${FTPDIR} 82 83iso-images-stage: 84 mkdir -p ${ISO_DIR} 85 mkdir -p ${TLD}/ISO-IMAGES/${REVISION} 86.if exists(${RELEASEDIR}) 87 @# Assume we have images to copy. 88. if defined(SNAPSHOT) && !empty(SNAPSHOT) 89 cd ${RELEASEDIR} && rm -f CHECKSUM.* 90. for IMAGE in ${IMAGES} 91. if defined(EMBEDDED) && !empty(EMBEDDED) 92. if defined(OLDNAME) && !empty(OLDNAME) 93 @# arm/armv6 IMX6 -> WANDBOARD, for example. 94 cd ${RELEASEDIR} && \ 95 mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ 96 ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 97. endif 98 cd ${RELEASEDIR} && \ 99 mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ 100 ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 101 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \ 102 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 103 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 104 ln -s \ 105 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz 106. endif # not embedded 107. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) 108 cd ${RELEASEDIR} && \ 109 mv ${OSRELEASE}-${IMAGE} \ 110 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} || true 111 cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \ 112 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 113 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 114 ln -s \ 115 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} 116. endif 117. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) 118 cd ${RELEASEDIR} && \ 119 mv ${OSRELEASE}-${IMAGE}.xz \ 120 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz || true 121 cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \ 122 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 123 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 124 ln -s \ 125 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz 126. endif 127. endfor # images loop 128 cd ${RELEASEDIR} && rm -f CHECKSUM.* 129. for CHECKSUM in ${CHECKSUM_FILES} 130. if defined(EMBEDDED) && !empty(EMBEDDED) 131 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 132 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 133 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \ 134 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 135 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 136 ln -s \ 137 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} 138. else # not embedded 139 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 140 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 141 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \ 142 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 143 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 144 ln -s \ 145 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} 146. endif # 147. endfor # checksum files 148. else # not snapshot 149. for IMAGE in ${IMAGES} 150. if defined(EMBEDDED) && !empty(EMBEDDED) 151. if defined(OLDNAME) && !empty(OLDNAME) 152 @# arm/armv6 IMX6 -> WANDBOARD, for example. 153 cd ${RELEASEDIR} && \ 154 mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ 155 ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 156. endif 157 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ 158 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 159 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 160 ln -s \ 161 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz 162. endif # not embedded 163. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) 164 cd ${RELEASEDIR} && \ 165 cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \ 166 ${ISO_DIR}/${OSRELEASE}-${IMAGE} 167 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 168 ln -s \ 169 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE} 170. endif 171. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) 172 cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \ 173 ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz 174 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 175 ln -s \ 176 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz 177. endif 178. endfor # images loop 179 cd ${RELEASEDIR} && rm -f CHECKSUM.* 180. for CHECKSUM in ${CHECKSUM_FILES} 181. if defined(EMBEDDED) && !empty(EMBEDDED) 182 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 183 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 184 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \ 185 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 186 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 187 ln -s \ 188 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} 189. else # not embedded 190 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ 191 CHECKSUM.${CHECKSUM}-${OSRELEASE} 192 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \ 193 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} 194 cd ${TLD}/ISO-IMAGES/${REVISION} && \ 195 ln -s \ 196 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE} 197. endif 198. endfor # checksum files 199. endif # release 200. if exists(${RELEASEDIR}/ftp) 201 mkdir -p ${FTP_DIR} 202 cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR} 203 cd ${TLD}/${TARGET} && \ 204 ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \ 205 ${REVISION}-${BRANCH} 206. endif 207.endif # no RELEASEDIR 208 209vm-images-stage: 210 mkdir -p ${VM_DIR} 211.if defined(SNAPSHOT) && !empty(SNAPSHOT) 212. if exists(${VM_DIR}/Latest) 213 rm -rf ${VM_DIR}/Latest 214. endif 215 mkdir -p ${VM_DIR}/Latest 216 mkdir -p ${VM_DIR}/${BUILDDATE} 217. for VMFORMAT in ${VMFORMATS} 218 cd ${RELEASEDIR}/vmimages && \ 219 mv ${OSRELEASE}.${VMFORMAT}.xz \ 220 ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz 221 cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ 222 ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz 223 cd ${VM_DIR}/Latest && \ 224 ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ 225 ${OSRELEASE}.${VMFORMAT}.xz 226. endfor 227 cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.* 228. for CHECKSUM in ${CHECKSUM_FILES} 229 cd ${RELEASEDIR}/vmimages && \ 230 ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} 231 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ 232 ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} 233 cd ${VM_DIR}/Latest && \ 234 ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ 235 CHECKSUM.${CHECKSUM} 236. endfor 237.else # not snapshot 238. if exists(${VM_DIR}/Latest) 239 rm -rf ${VM_DIR}/Latest 240. endif 241 mkdir -p ${VM_DIR}/Latest 242. for VMFORMAT in ${VMFORMATS} 243 cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \ 244 ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz 245. endfor 246. for CHECKSUM in ${CHECKSUM_FILES} 247 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \ 248 ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM} 249. endfor 250.endif 251 252ftp-stage: remove-old-bits ${STAGE_TARGETS} 253 254