which helps control some of the arm-specific bits a bit more cleanly (but not really 'clean'). If BOARDNAME is defined (as is in the WANDBOARD configuration RE uses), do some magic to work with the KERNCONF and BOARDNAME to rename the file, making it a bit more intuitive for the consumer to determine which they need. Yes, it is ugly, that is why there is a big warning at the top. It is, however, still much cleaner than the now 474-line shell script, and this Makefile produces the hierarchy needed without much evil. MFC after: 1 week X-MFC-Note: needs all previous Makefile.mirror commits Sponsored by: The FreeBSD Foundation
189 lines
5.7 KiB
Makefile
189 lines
5.7 KiB
Makefile
#
|
|
# 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.
|
|
#
|
|
# Seriously.
|
|
#
|
|
# Don't use this unless you know why you're using it.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
.include "${.CURDIR}/Makefile"
|
|
|
|
RELEASEDIR?= /R
|
|
FTPDIR?= ${RELEASEDIR}/ftp-stage
|
|
STAGE_TARGETS?= iso-images-stage
|
|
|
|
.if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm"
|
|
EMBEDDED= 1
|
|
.endif
|
|
|
|
# snapshot
|
|
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
|
|
SNAPSHOT= 1
|
|
TLD?= ${FTPDIR}/snapshots
|
|
. 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(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh)
|
|
BUILDDATE!= cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
|
|
. else
|
|
BUILDDATE!= date +%Y%m%d
|
|
. endif
|
|
. if exists(${SVNVERSION}) && !empty(SVNVERSION)
|
|
SVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile
|
|
_SNAP_SUFFIX:= -r${SVNREVISION}-${BUILDDATE}
|
|
. else
|
|
_SNAP_SUFFIX:= -${BUILDDATE}
|
|
. endif
|
|
.else
|
|
# release
|
|
SNAPSHOT=
|
|
TLD?= ${FTPDIR}/releases
|
|
.endif
|
|
|
|
.if defined(EMBEDDED) && !empty(EMBEDDED)
|
|
. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
|
|
. if !defined(BOARDNAME) && empty(BOARDNAME)
|
|
BOARDNAME:= ${KERNCONF}
|
|
. else
|
|
OLDNAME:= ${KERNCONF}
|
|
. endif
|
|
. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
|
|
SNAPSHOT= 1
|
|
. endif
|
|
IMAGES:= ${BOARDNAME}.img
|
|
. endif # arm/armv6
|
|
.endif # embedded
|
|
|
|
.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}
|
|
|
|
remove-old-bits:
|
|
rm -rf ${FTPDIR}
|
|
|
|
iso-images-stage:
|
|
mkdir -p ${ISO_DIR}
|
|
mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
|
|
.if exists(${RELEASEDIR})
|
|
@# Assume we have images to copy.
|
|
. for IMAGE in ${IMAGES}
|
|
@# arm/armv6 IMX6 -> WANDBOARD, for example.
|
|
. if defined(OLDNAME) && !empty(OLDNAME)
|
|
cd ${RELEASEDIR} && mv ${OSRELEASE}-${IMAGE:S,${BOARDNAME},${OLDNAME},}.xz \
|
|
${OSRELEASE}-${IMAGE}.xz
|
|
. endif
|
|
. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
|
|
cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
|
|
${ISO_DIR}/${OSRELEASE}-${IMAGE}
|
|
. endif
|
|
. if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
|
|
cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
|
|
${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
|
|
. endif
|
|
. if exists(${RELEASEDIR}/CHECKSUM.${CHECKSUM})
|
|
cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM} \
|
|
${ISO_DIR}/CHECKSUM.${CHECKSUM}
|
|
. endif
|
|
. endfor
|
|
.endif
|
|
|
|
.if defined(SNAPSHOT) && !empty(SNAPSHOT)
|
|
. for IMAGE in ${IMAGES}
|
|
cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE} \
|
|
${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} || true
|
|
cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE}.xz \
|
|
${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz || true
|
|
cd ${TLD}/ISO-IMAGES/${REVISION} && \
|
|
ln -s \
|
|
../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} || true
|
|
cd ${TLD}/ISO-IMAGES/${REVISION} && \
|
|
ln -s \
|
|
../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz || true
|
|
cd ${TLD} && find -L . -type l | xargs rm
|
|
. endfor
|
|
. for CHECKSUM in ${CHECKSUM_FILES}
|
|
. if exists(${ISO_DIR}/CHECKSUM.${CHECKSUM})
|
|
rm -f ${ISO_DIR}/CHECKSUM.${CHECKSUM}
|
|
. endif
|
|
. if defined(EMBEDDED) && !empty(EMBEDDED)
|
|
cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
|
|
CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
|
|
cd ${TLD}/ISO-IMAGES/${REVISION} && \
|
|
ln -s \
|
|
../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
|
|
. else
|
|
cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
|
|
CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
|
|
cd ${TLD}/ISO-IMAGES/${REVISION} && \
|
|
ln -s \
|
|
../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
|
|
. endif
|
|
. endfor
|
|
.else # !snapshot
|
|
cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
|
|
../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE} || true
|
|
cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
|
|
../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz || true
|
|
cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
|
|
CHECKSUM.${CHECKSUM}-${OSRELEASE}
|
|
.endif
|
|
.if exists(${RELEASEDIR}/ftp)
|
|
mkdir -p ${FTP_DIR}
|
|
cp ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/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: remove-old-bits ${STAGE_TARGETS}
|
|
|