aboutsummaryrefslogtreecommitdiff
path: root/release/Makefile.mirrors
diff options
context:
space:
mode:
authorGlen Barber <gjb@FreeBSD.org>2015-05-11 22:14:03 +0000
committerGlen Barber <gjb@FreeBSD.org>2015-05-11 22:14:03 +0000
commit23454946628263dd3d7d3a7751d43f61ec0ba656 (patch)
tree9d60acf6adb54ed3a19d379a10ef5b963aac9fa6 /release/Makefile.mirrors
parentbe80efd4917dfbd4c67395b08666bf710b0612c5 (diff)
downloadsrc-23454946628263dd3d7d3a7751d43f61ec0ba656.tar.gz
src-23454946628263dd3d7d3a7751d43f61ec0ba656.zip
Add a new file, Makefile.mirrors, which is intended to replace
a 474-line kludge of a shell script to pre-create the directory hierarchy on ftp-master. This is not in any way connected to the build, and there is no intention to do so. This only intent here is to try to make things a little bit easier for me. But I've probably just made things worse. Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=282785
Diffstat (limited to 'release/Makefile.mirrors')
-rw-r--r--release/Makefile.mirrors128
1 files changed, 128 insertions, 0 deletions
diff --git a/release/Makefile.mirrors b/release/Makefile.mirrors
new file mode 100644
index 000000000000..9fdb2ffcc012
--- /dev/null
+++ b/release/Makefile.mirrors
@@ -0,0 +1,128 @@
+#
+# This Makefile helps create the directory structure on ftp-master,
+# making staging builds a bit more sane.
+#
+# You probably do not want to use this. Really.
+# You have been warned.
+#
+# $FreeBSD$
+#
+
+.include "${.CURDIR}/Makefile"
+
+FTPDIR?= /ftp
+STAGE_TARGETS?= iso-images-stage
+
+# snapshot
+.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
+SNAPSHOT= 1
+TLD?= ${FTPDIR}/snapshots
+BUILDDATE!= date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
+. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
+. if !defined(BOARDNAME) || empty(BOARDNAME)
+BOARDNAME= ${KERNCONF}
+. endif
+_SNAP_SUFFIX:= -${BOARDNAME}-${BUILDDATE}
+. else # not arm/armv6
+_SNAP_SUFFIX:= -${BUILDDATE}
+. endif
+. for _D in /usr/bin /usr/local/bin
+. for _S in svnversion svnliteversion
+. if exists(${_D}/${_S})
+SVNVERSION?= ${_D}/${_S}
+. endif
+. endfor
+. endfor
+. if exists(${SVNVERSION}) && !empty(SVNVERSION)
+SVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile
+_SNAP_SUFFIX:= ${_SNAP_SUFFIX}-r${SVNREVISION}
+. endif
+.else
+# release
+SNAPSHOT=
+TLD?= ${FTPDIR}/releases
+.endif
+
+.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
+STAGE_TARGETS+= vm-images-stage
+VM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
+.endif
+
+CLEANFILES+= ${STAGE_TARGETS}
+CHECKSUM_FILES?= SHA256 MD5
+SNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
+ISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
+FTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
+
+iso-images-stage:
+ mkdir -p ${ISO_DIR}
+ mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
+.for IMAGE in ${IMAGES}
+ cp -p ${.OBJDIR}/${IMAGE} ${ISO_DIR}/${OSRELEASE}-${IMAGE}
+. if exists(/R/${IMAGE}.xz)
+ cp -p ${.OBJDIR}/${IMAGE}.xz ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
+. endif
+.endfor
+.if defined(SNAPSHOT) && !empty(SNAPSHOT)
+. for IMAGE in ${IMAGES}
+ cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE} \
+ ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
+ cd ${TLD}/ISO-IMAGES/${REVISION} && \
+ ln -s \
+ ../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
+. endfor
+. for CHECKSUM in ${CHECKSUM_FILES}
+. if exists(${ISO_DIR}/CHECKSUM.${CHECKSUM})
+ rm -f ${ISO_DIR}/CHECKSUM.${CHECKSUM}
+. endif
+ cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
+ CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
+. endfor
+.else # !snapshot
+ cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
+ ../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${IMAGE} .
+ cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
+ CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
+.endif
+.if exists(${.OBJDIR}/ftp)
+ mkdir -p ${FTP_DIR}
+ cp ${.OBJDIR}/ftp/*.txz ${.OBJDIR}/ftp/MANIFEST ${FTP_DIR}
+ cd ${TLD}/${TARGET} && \
+ ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
+ ${REVISION}-${BRANCH}
+.endif
+
+vm-images-stage:
+ @true
+# mkdir -p ${VM_DIR}
+#.if defined(SNAPSHOT) && !empty(SNAPSHOT)
+# mkdir -p ${VM_DIR}/${BUILDDATE}
+#. if exists(${VM_DIR}/Latest)
+# unlink ${VM_DIR}/Latest
+# cd ${VM_DIR} && ln -s ${BUILDDATE} Latest
+#. endif
+#. for VMIMAGE in ${VMIMAGES}
+# cd /R/vmimages && cp -p ${VMIMAGE}.xz \
+# ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz
+# cd ${VM_DIR}/Latest && ln -s \
+# ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz \
+# ${OSRELEASE}-${VMIMAGE}.xz
+#. endfor
+#. for CHECKSUM in ${CHECKSUM_FILES}
+#. if exists(${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM})
+# rm -f ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}
+#. endif
+# cd ${VM_DIR}/${BUILDDATE} && ${CHECKSUM:tl} ${OSRELEASE}* > \
+# CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
+# cd ${VM_DIR}/Latest && ln -s \
+# ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
+# CHECKSUM.${CHECKSUM}
+#. endfor
+#.else # !snapshot
+#. for CHECKSUM in ${CHECKSUM_FILES}
+# cd /R/vmimages && cp -p CHECKSUM.${CHECKSUM}* \
+# ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
+#.endif
+
+ftp-stage: ${STAGE_TARGETS}
+