Makefile.mirrors revision 283672
118334Speter#
290075Sobrien# This Makefile helps create the directory structure on ftp-master,
3189824Sdas# making staging builds a bit more sane.
418334Speter#
590075Sobrien# You probably do not want to use this.  Really.
618334Speter# You have been warned.
790075Sobrien#
890075Sobrien# Seriously.
990075Sobrien#
1090075Sobrien# Don't use this unless you know why you're using it.
1118334Speter#
1290075Sobrien# $FreeBSD: stable/10/release/Makefile.mirrors 283672 2015-05-29 00:46:14Z gjb $
1390075Sobrien#
1490075Sobrien
1590075Sobrien.include "${.CURDIR}/Makefile"
1618334Speter
1718334SpeterRELEASEDIR?=		/R
1890075SobrienFTPDIR?=		${RELEASEDIR}/ftp-stage
19169699Skan.if exists(${RELEASEDIR})
20169699SkanSTAGE_TARGETS?=		iso-images-stage
2118334Speter.endif
2296549Sobrien
23189824Sdas.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
24189824Sdas. if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm"
25189824SdasEMBEDDED=		1
2696549Sobrien. endif
2718334Speter.endif
2818334Speter
2918334Speter# snapshot
3018334Speter.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
3118334SpeterSNAPSHOT=		1
3218334SpeterTLD?=			${FTPDIR}/snapshots
3318334Speter. if !defined(SVNREVISION) || empty(SVNREVISION)
3418334Speter.  for _D in /usr/bin /usr/local/bin
3550397Sobrien.   for _S in svnversion svnliteversion
36132730Skan.    if exists(${_D}/${_S})
37169699SkanSVNVERSION?=		${_D}/${_S}
38132730Skan.    endif
3990075Sobrien.   endfor
4018334Speter.  endfor
4190075Sobrien.  if exists(${SVNVERSION}) && !empty(SVNVERSION)
4290075SobrienSVNREVISION!=		${SVNVERSION} ${WORLDDIR}/Makefile
4318334Speter.  endif
4490075Sobrien. endif # !defined(SVNREVISION)
4518334Speter. if !defined(BUILDDATE) || empty(BUILDDATE)
4690075Sobrien.  if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh)
4718334SpeterBUILDDATE!=		cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
4850397Sobrien.  else
4990075SobrienBUILDDATE!=		date +%Y%m%d
5090075Sobrien.  endif
5150397Sobrien. endif
5290075Sobrien_SNAP_SUFFIX:=		${BUILDDATE}-r${SVNREVISION}
5390075Sobrien.else
54132730Skan# release
5590075SobrienSNAPSHOT=
5690075SobrienTLD?=			${FTPDIR}/releases
5796263Sobrien.endif
58169699Skan
59169699Skan.if defined(EMBEDDED) && !empty(EMBEDDED)
60169699Skan. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
61169699Skan.  if !defined(BOARDNAME) && empty(BOARDNAME)
62169699SkanBOARDNAME:=		${KERNCONF}
63132730Skan.  else
64132730SkanOLDNAME:=		${KERNCONF}
65117421Skan.  endif
66117421Skan.  if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
67132730SkanSNAPSHOT=		1
68169699Skan.  endif
6950397SobrienIMAGES:=		img
7018334Speter. endif # arm/armv6
7118334Speter.endif # embedded
7218334Speter
7318334Speter.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
74261188SpfgSTAGE_TARGETS+=		vm-images-stage
75261188SpfgVM_DIR=			${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
7618334Speter.endif
7718334Speter
7818334SpeterCLEANFILES+=		${STAGE_TARGETS}
7918334SpeterCHECKSUM_FILES?=	SHA256 MD5
8018334SpeterSNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
8118334SpeterISO_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
8218334SpeterFTP_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
83169699Skan
8418334Speterremove-old-bits:
8518334Speter	rm -rf ${FTPDIR}
86132730Skan
8718334Speteriso-images-stage:
88169699Skan	mkdir -p ${ISO_DIR}
89169699Skan	mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
90169699Skan.if defined(SNAPSHOT) && !empty(SNAPSHOT)
9118334Speter	cd ${RELEASEDIR} && rm -f CHECKSUM.*
9218334Speter. for IMAGE in ${IMAGES}
9318334Speter.  if defined(EMBEDDED) && !empty(EMBEDDED)
9418334Speter.   if defined(OLDNAME) && !empty(OLDNAME)
9518334Speter	@# arm/armv6 IMX6 -> WANDBOARD, for example.
9618334Speter	cd ${RELEASEDIR} && \
9718334Speter		mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
9818334Speter		${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
9918334Speter.   endif
10018334Speter	cd ${RELEASEDIR} && \
10118334Speter		mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
10218334Speter		${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
103169699Skan	cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \
104169699Skan		${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
105169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
10618334Speter		ln -s \
107169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
10818334Speter.  endif # not embedded
109169699Skan.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
11018334Speter	cd ${RELEASEDIR} && \
111169699Skan		mv ${OSRELEASE}-${IMAGE} \
11218334Speter		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
113169699Skan	cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \
114132730Skan		${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
115169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
116132730Skan		ln -s \
117169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
118169699Skan.   endif
11918334Speter.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
120169699Skan	cd ${RELEASEDIR} && \
12118334Speter		mv ${OSRELEASE}-${IMAGE}.xz \
122169699Skan		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
123169699Skan	cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \
124169699Skan		${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
125169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
126132730Skan		ln -s \
12790075Sobrien		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
12890075Sobrien.   endif
129117421Skan. endfor # images loop
13090075Sobrien	cd ${RELEASEDIR} && rm -f CHECKSUM.*
131132730Skan. for CHECKSUM in ${CHECKSUM_FILES}
132169699Skan.  if defined(EMBEDDED) && !empty(EMBEDDED)
133169699Skan	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
13418334Speter		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
135169699Skan	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \
136169699Skan		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
137169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
13818334Speter		ln -s \
139169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
14018334Speter.  else # not embedded
141169699Skan	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
142169699Skan		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
14318334Speter	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \
14418334Speter		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
14518334Speter	cd ${TLD}/ISO-IMAGES/${REVISION} && \
14618334Speter		ln -s \
14718334Speter		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
14818334Speter.  endif #
14918334Speter. endfor # checksum files
15018334Speter.else # not snapshot
15118334Speter. for IMAGE in ${IMAGES}
15218334Speter.  if defined(EMBEDDED) && !empty(EMBEDDED)
15318334Speter.   if defined(OLDNAME) && !empty(OLDNAME)
15496263Sobrien	@# arm/armv6 IMX6 -> WANDBOARD, for example.
15596263Sobrien	cd ${RELEASEDIR} && \
15696263Sobrien		mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
15796263Sobrien		${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
15896263Sobrien.   endif
15918334Speter	cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
16018334Speter		${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
16118334Speter	cd ${TLD}/ISO-IMAGES/${REVISION} && \
16218334Speter		ln -s \
16318334Speter		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
164169699Skan.  endif # not embedded
165169699Skan.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
166169699Skan	cd ${RELEASEDIR} && \
167169699Skan	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
168169699Skan		${ISO_DIR}/${OSRELEASE}-${IMAGE}
169169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
170169699Skan		ln -s \
171169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
172169699Skan.   endif
17318334Speter.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
174169699Skan	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
175169699Skan		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
176169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
177169699Skan		ln -s \
178169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
179169699Skan.   endif
18018334Speter. endfor # images loop
181169699Skan	cd ${RELEASEDIR} && rm -f CHECKSUM.*
182169699Skan. for CHECKSUM in ${CHECKSUM_FILES}
183169699Skan.  if defined(EMBEDDED) && !empty(EMBEDDED)
184169699Skan	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
185169699Skan		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
186169699Skan	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \
187169699Skan		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
188169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
189169699Skan		ln -s \
190169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
191169699Skan.  else # not embedded
192169699Skan	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
193169699Skan		CHECKSUM.${CHECKSUM}-${OSRELEASE}
194169699Skan	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \
195169699Skan		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
196169699Skan	cd ${TLD}/ISO-IMAGES/${REVISION} && \
197169699Skan		ln -s \
198169699Skan		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
199169699Skan.  endif
200169699Skan. endfor # checksum files
201169699Skan.endif # release
202169699Skan.if exists(${RELEASEDIR}/ftp)
203169699Skan	mkdir -p ${FTP_DIR}
204169699Skan	cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
205169699Skan	cd ${TLD}/${TARGET} && \
206169699Skan		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
207169699Skan			${REVISION}-${BRANCH}
208169699Skan.endif
209169699Skan
210169699Skanvm-images-stage:
211169699Skan	mkdir -p ${VM_DIR}
212169699Skan.if defined(SNAPSHOT) && !empty(SNAPSHOT)
213169699Skan. if exists(${VM_DIR}/Latest)
214169699Skan	rm -rf ${VM_DIR}/Latest
215169699Skan. endif
216169699Skan	mkdir -p ${VM_DIR}/Latest
217169699Skan	mkdir -p ${VM_DIR}/${BUILDDATE}
218169699Skan. for VMFORMAT in ${VMFORMATS}
219169699Skan	cd ${RELEASEDIR}/vmimages && \
220169699Skan		mv ${OSRELEASE}.${VMFORMAT}.xz \
221169699Skan		${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
222169699Skan	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
223169699Skan		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
224169699Skan	cd ${VM_DIR}/Latest && \
225169699Skan		ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
226169699Skan		${OSRELEASE}.${VMFORMAT}.xz
227169699Skan. endfor
228169699Skan	cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
229169699Skan. for CHECKSUM in ${CHECKSUM_FILES}
230169699Skan	cd ${RELEASEDIR}/vmimages && \
231169699Skan		${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
232169699Skan	cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
233169699Skan		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
234169699Skan	cd ${VM_DIR}/Latest && \
235169699Skan		ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
236169699Skan		CHECKSUM.${CHECKSUM}
237169699Skan. endfor
238169699Skan.else # not snapshot
239169699Skan. if exists(${VM_DIR}/Latest)
240169699Skan	rm -rf ${VM_DIR}/Latest
241169699Skan. endif
242169699Skan	mkdir -p ${VM_DIR}/Latest
243169699Skan. for VMFORMAT in ${VMFORMATS}
244169699Skan	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \
245169699Skan		${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz
246169699Skan. endfor
247169699Skan. for CHECKSUM in ${CHECKSUM_FILES}
248169699Skan	cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
249169699Skan		${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
250169699Skan. endfor
251169699Skan.endif
252169699Skan
253169699Skanftp-stage:	remove-old-bits ${STAGE_TARGETS}
254169699Skan
255169699Skan