Makefile.mirrors revision 282792
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#
8282785Sgjb# $FreeBSD: head/release/Makefile.mirrors 282792 2015-05-12 00:39:01Z gjb $
9282785Sgjb#
10282785Sgjb
11282785Sgjb.include "${.CURDIR}/Makefile"
12282785Sgjb
13282785SgjbFTPDIR?=		/ftp
14282787SgjbRELEASEDIR?=		/R
15282785SgjbSTAGE_TARGETS?=		iso-images-stage
16282785Sgjb
17282785Sgjb# snapshot
18282785Sgjb.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
19282785SgjbSNAPSHOT=		1
20282785SgjbTLD?=			${FTPDIR}/snapshots
21282785SgjbBUILDDATE!=		date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
22282785Sgjb. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
23282785Sgjb.  if !defined(BOARDNAME) || empty(BOARDNAME)
24282785SgjbBOARDNAME=		${KERNCONF}
25282785Sgjb.  endif
26282785Sgjb_SNAP_SUFFIX:=		-${BOARDNAME}-${BUILDDATE}
27282785Sgjb. else		# not arm/armv6
28282785Sgjb_SNAP_SUFFIX:=		-${BUILDDATE}
29282785Sgjb. endif
30282785Sgjb. for _D in /usr/bin /usr/local/bin
31282785Sgjb.  for _S in svnversion svnliteversion
32282785Sgjb.   if exists(${_D}/${_S})
33282785SgjbSVNVERSION?=		${_D}/${_S}
34282785Sgjb.   endif
35282785Sgjb.  endfor
36282785Sgjb. endfor
37282785Sgjb. if exists(${SVNVERSION}) && !empty(SVNVERSION)
38282785SgjbSVNREVISION!=		${SVNVERSION} ${WORLDDIR}/Makefile
39282785Sgjb_SNAP_SUFFIX:=		${_SNAP_SUFFIX}-r${SVNREVISION}
40282785Sgjb. endif
41282785Sgjb.else
42282785Sgjb# release
43282785SgjbSNAPSHOT=
44282785SgjbTLD?=			${FTPDIR}/releases
45282785Sgjb.endif
46282785Sgjb
47282785Sgjb.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
48282785SgjbSTAGE_TARGETS+=		vm-images-stage
49282785SgjbVM_DIR=			${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
50282785Sgjb.endif
51282785Sgjb
52282785SgjbCLEANFILES+=		${STAGE_TARGETS}
53282785SgjbCHECKSUM_FILES?=	SHA256 MD5
54282785SgjbSNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
55282785SgjbISO_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
56282785SgjbFTP_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
57282785Sgjb
58282789Sgjbremove-old-bits:
59282789Sgjb	rm -rf ${FTPDIR}
60282789Sgjb
61282785Sgjbiso-images-stage:
62282785Sgjb	mkdir -p ${ISO_DIR}
63282785Sgjb	mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
64282787Sgjb.if exists(${RELEASEDIR})
65282787Sgjb	@# Assume we have images to copy.
66282787Sgjb. for IMAGE in ${IMAGES}
67282787Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
68282787Sgjb		${ISO_DIR}/${OSRELEASE}-${IMAGE}
69282792Sgjb.  if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
70282792Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
71282787Sgjb		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
72282791Sgjb.  endif
73282791Sgjb. endfor
74282787Sgjb.endif
75282787Sgjb
76282785Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT)
77282785Sgjb. for IMAGE in ${IMAGES}
78282785Sgjb	cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE} \
79282785Sgjb		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
80282785Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
81282785Sgjb		ln -s \
82282785Sgjb		../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
83282785Sgjb. endfor
84282785Sgjb. for CHECKSUM in ${CHECKSUM_FILES}
85282785Sgjb.  if exists(${ISO_DIR}/CHECKSUM.${CHECKSUM})
86282785Sgjb	rm -f ${ISO_DIR}/CHECKSUM.${CHECKSUM}
87282785Sgjb.  endif
88282785Sgjb	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
89282785Sgjb		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
90282785Sgjb. endfor
91282785Sgjb.else	# !snapshot
92282785Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
93282785Sgjb		../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${IMAGE} .
94282785Sgjb	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
95282785Sgjb		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
96282785Sgjb.endif
97282787Sgjb.if exists(${RELEASEDIR}/ftp)
98282785Sgjb	mkdir -p ${FTP_DIR}
99282787Sgjb	cp ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
100282785Sgjb	cd ${TLD}/${TARGET} && \
101282785Sgjb		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
102282785Sgjb			${REVISION}-${BRANCH}
103282785Sgjb.endif
104282785Sgjb
105282785Sgjbvm-images-stage:
106282785Sgjb	@true
107282785Sgjb#	mkdir -p ${VM_DIR}
108282785Sgjb#.if defined(SNAPSHOT) && !empty(SNAPSHOT)
109282785Sgjb#	mkdir -p ${VM_DIR}/${BUILDDATE}
110282785Sgjb#. if exists(${VM_DIR}/Latest)
111282785Sgjb#	unlink ${VM_DIR}/Latest
112282785Sgjb#	cd ${VM_DIR} && ln -s ${BUILDDATE} Latest
113282785Sgjb#. endif
114282785Sgjb#. for VMIMAGE in ${VMIMAGES}
115282785Sgjb#	cd /R/vmimages && cp -p ${VMIMAGE}.xz \
116282785Sgjb#		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz
117282785Sgjb#	cd ${VM_DIR}/Latest && ln -s \
118282785Sgjb#		../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz \
119282785Sgjb#		${OSRELEASE}-${VMIMAGE}.xz
120282785Sgjb#. endfor
121282785Sgjb#. for CHECKSUM in ${CHECKSUM_FILES}
122282785Sgjb#.  if exists(${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM})
123282785Sgjb#	rm -f ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}
124282785Sgjb#.  endif
125282785Sgjb#	cd ${VM_DIR}/${BUILDDATE} && ${CHECKSUM:tl} ${OSRELEASE}* > \
126282785Sgjb#		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
127282785Sgjb#	cd ${VM_DIR}/Latest && ln -s \
128282785Sgjb#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
129282785Sgjb#		CHECKSUM.${CHECKSUM}
130282785Sgjb#. endfor
131282785Sgjb#.else	# !snapshot
132282785Sgjb#. for CHECKSUM in ${CHECKSUM_FILES}
133282785Sgjb#	cd /R/vmimages && cp -p CHECKSUM.${CHECKSUM}* \
134282785Sgjb#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
135282785Sgjb#.endif
136282785Sgjb
137282789Sgjbftp-stage:	remove-old-bits ${STAGE_TARGETS}
138282785Sgjb
139