Makefile.mirrors revision 283576
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#
8282798Sgjb# Seriously.
9282798Sgjb#
10282798Sgjb# Don't use this unless you know why you're using it.
11282798Sgjb#
12282785Sgjb# $FreeBSD: head/release/Makefile.mirrors 283576 2015-05-26 17:44:31Z gjb $
13282785Sgjb#
14282785Sgjb
15282785Sgjb.include "${.CURDIR}/Makefile"
16282785Sgjb
17282787SgjbRELEASEDIR?=		/R
18282799SgjbFTPDIR?=		${RELEASEDIR}/ftp-stage
19283574Sgjb.if exists(${RELEASEDIR})
20282785SgjbSTAGE_TARGETS?=		iso-images-stage
21283574Sgjb.endif
22282785Sgjb
23283298Sgjb.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
24283272Sgjb. if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm"
25283271SgjbEMBEDDED=		1
26283272Sgjb. endif
27283271Sgjb.endif
28283271Sgjb
29282785Sgjb# snapshot
30282785Sgjb.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
31282785SgjbSNAPSHOT=		1
32282785SgjbTLD?=			${FTPDIR}/snapshots
33282785Sgjb. for _D in /usr/bin /usr/local/bin
34282785Sgjb.  for _S in svnversion svnliteversion
35282785Sgjb.   if exists(${_D}/${_S})
36282785SgjbSVNVERSION?=		${_D}/${_S}
37282785Sgjb.   endif
38282785Sgjb.  endfor
39282785Sgjb. endfor
40283271Sgjb. if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh)
41283271SgjbBUILDDATE!=		cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
42283271Sgjb. else
43283271SgjbBUILDDATE!=		date +%Y%m%d
44283271Sgjb. endif
45282785Sgjb. if exists(${SVNVERSION}) && !empty(SVNVERSION)
46282785SgjbSVNREVISION!=		${SVNVERSION} ${WORLDDIR}/Makefile
47283271Sgjb_SNAP_SUFFIX:=		-r${SVNREVISION}-${BUILDDATE}
48283271Sgjb. else
49283271Sgjb_SNAP_SUFFIX:=		-${BUILDDATE}
50282785Sgjb. endif
51282785Sgjb.else
52282785Sgjb# release
53282785SgjbSNAPSHOT=
54282785SgjbTLD?=			${FTPDIR}/releases
55282785Sgjb.endif
56282785Sgjb
57283271Sgjb.if defined(EMBEDDED) && !empty(EMBEDDED)
58283271Sgjb. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
59283271Sgjb.  if !defined(BOARDNAME) && empty(BOARDNAME)
60283271SgjbBOARDNAME:=		${KERNCONF}
61283271Sgjb.  else
62283271SgjbOLDNAME:=		${KERNCONF}
63283271Sgjb.  endif
64283271Sgjb.  if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
65283271SgjbSNAPSHOT=		1
66283271Sgjb.  endif
67283298SgjbIMAGES:=		img
68283271Sgjb. endif # arm/armv6
69283271Sgjb.endif # embedded
70283271Sgjb
71282785Sgjb.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
72282785SgjbSTAGE_TARGETS+=		vm-images-stage
73282785SgjbVM_DIR=			${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
74282785Sgjb.endif
75282785Sgjb
76282785SgjbCLEANFILES+=		${STAGE_TARGETS}
77282785SgjbCHECKSUM_FILES?=	SHA256 MD5
78282785SgjbSNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
79282785SgjbISO_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
80282785SgjbFTP_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
81282785Sgjb
82282789Sgjbremove-old-bits:
83282789Sgjb	rm -rf ${FTPDIR}
84282789Sgjb
85282785Sgjbiso-images-stage:
86282785Sgjb	mkdir -p ${ISO_DIR}
87282785Sgjb	mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
88283576Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT)
89283298Sgjb	cd ${RELEASEDIR} && rm -f CHECKSUM.*
90283576Sgjb. for IMAGE in ${IMAGES}
91283576Sgjb.  if defined(EMBEDDED) && !empty(EMBEDDED)
92283576Sgjb.   if defined(OLDNAME) && !empty(OLDNAME)
93283271Sgjb	@# arm/armv6 IMX6 -> WANDBOARD, for example.
94283298Sgjb	cd ${RELEASEDIR} && \
95283298Sgjb		mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
96283298Sgjb		${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
97283576Sgjb.   endif
98283298Sgjb	cd ${RELEASEDIR} && \
99283298Sgjb		mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
100283298Sgjb		${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
101283298Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \
102283298Sgjb		${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
103283298Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
104283298Sgjb		ln -s \
105283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
106283576Sgjb.  endif # not embedded
107283576Sgjb.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
108283298Sgjb	cd ${RELEASEDIR} && \
109283298Sgjb		mv ${OSRELEASE}-${IMAGE} \
110283573Sgjb		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
111283298Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \
112283298Sgjb		${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
113282785Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
114282785Sgjb		ln -s \
115283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
116283576Sgjb.   endif
117283576Sgjb.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
118283298Sgjb	cd ${RELEASEDIR} && \
119283298Sgjb		mv ${OSRELEASE}-${IMAGE}.xz \
120283573Sgjb		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
121283298Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \
122283298Sgjb		${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
123283265Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
124283265Sgjb		ln -s \
125283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
126283576Sgjb.   endif
127283576Sgjb. endfor # images loop
128283298Sgjb	cd ${RELEASEDIR} && rm -f CHECKSUM.*
129283576Sgjb. for CHECKSUM in ${CHECKSUM_FILES}
130283576Sgjb.  if defined(EMBEDDED) && !empty(EMBEDDED)
131283298Sgjb	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
132283271Sgjb		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
133283298Sgjb	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \
134283298Sgjb		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
135283271Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
136283271Sgjb		ln -s \
137283271Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
138283576Sgjb.  else # not embedded
139283298Sgjb	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
140283265Sgjb		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
141283298Sgjb	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \
142283298Sgjb		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
143282796Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
144282794Sgjb		ln -s \
145283265Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
146283576Sgjb.  endif #
147283576Sgjb. endfor # checksum files
148283576Sgjb.else # not snapshot
149283576Sgjb. for IMAGE in ${IMAGES}
150283576Sgjb.  if defined(EMBEDDED) && !empty(EMBEDDED)
151283576Sgjb.   if defined(OLDNAME) && !empty(OLDNAME)
152283298Sgjb	@# arm/armv6 IMX6 -> WANDBOARD, for example.
153283298Sgjb	cd ${RELEASEDIR} && \
154283298Sgjb		mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
155283298Sgjb		${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
156283576Sgjb.   endif
157283298Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
158283298Sgjb		${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
159283298Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
160283298Sgjb		ln -s \
161283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
162283576Sgjb.  endif # not embedded
163283576Sgjb.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
164283298Sgjb	cd ${RELEASEDIR} && \
165283298Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
166283298Sgjb		${ISO_DIR}/${OSRELEASE}-${IMAGE}
167283298Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
168283298Sgjb		ln -s \
169283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
170283576Sgjb.   endif
171283576Sgjb.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
172283298Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
173283298Sgjb		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
174283298Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
175283298Sgjb		ln -s \
176283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
177283576Sgjb.   endif
178283576Sgjb. endfor # images loop
179283298Sgjb	cd ${RELEASEDIR} && rm -f CHECKSUM.*
180283576Sgjb. for CHECKSUM in ${CHECKSUM_FILES}
181283576Sgjb.  if defined(EMBEDDED) && !empty(EMBEDDED)
182283298Sgjb	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
183283298Sgjb		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
184283298Sgjb	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \
185283298Sgjb		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
186283298Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
187283298Sgjb		ln -s \
188283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
189283576Sgjb.  else # not embedded
190283298Sgjb	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
191283266Sgjb		CHECKSUM.${CHECKSUM}-${OSRELEASE}
192283298Sgjb	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \
193283298Sgjb		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
194283298Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
195283298Sgjb		ln -s \
196283298Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
197283576Sgjb.  endif
198283576Sgjb. endfor # checksum files
199283576Sgjb.endif # release
200283576Sgjb.if exists(${RELEASEDIR}/ftp)
201282785Sgjb	mkdir -p ${FTP_DIR}
202283298Sgjb	cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
203282785Sgjb	cd ${TLD}/${TARGET} && \
204282785Sgjb		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
205282785Sgjb			${REVISION}-${BRANCH}
206283576Sgjb.endif
207282785Sgjb
208282785Sgjbvm-images-stage:
209283302Sgjb	mkdir -p ${VM_DIR}
210283302Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT)
211283302Sgjb. if exists(${VM_DIR}/Latest)
212283302Sgjb	rm -rf ${VM_DIR}/Latest
213283302Sgjb. endif
214283302Sgjb	mkdir -p ${VM_DIR}/Latest
215283302Sgjb	mkdir -p ${VM_DIR}/${BUILDDATE}
216283302Sgjb. for VMFORMAT in ${VMFORMATS}
217283302Sgjb	cd ${RELEASEDIR}/vmimages && \
218283302Sgjb		mv ${OSRELEASE}.${VMFORMAT}.xz \
219283302Sgjb		${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
220283302Sgjb	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
221283302Sgjb		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
222283302Sgjb	cd ${VM_DIR}/Latest && \
223283302Sgjb		ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
224283302Sgjb		${OSRELEASE}.${VMFORMAT}.xz
225283302Sgjb. endfor
226283302Sgjb	cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
227283302Sgjb. for CHECKSUM in ${CHECKSUM_FILES}
228283302Sgjb	cd ${RELEASEDIR}/vmimages && \
229283302Sgjb		${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
230283302Sgjb	cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
231283302Sgjb		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
232283302Sgjb	cd ${VM_DIR}/Latest && \
233283302Sgjb		ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
234283302Sgjb		CHECKSUM.${CHECKSUM}
235283302Sgjb. endfor
236283302Sgjb.else # not snapshot
237283302Sgjb. if exists(${VM_DIR}/Latest)
238283302Sgjb	rm -rf ${VM_DIR}/Latest
239283302Sgjb. endif
240283302Sgjb	mkdir -p ${VM_DIR}/Latest
241283302Sgjb. for VMFORMAT in ${VMFORMATS}
242283302Sgjb	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \
243283302Sgjb		${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz
244283302Sgjb. endfor
245283302Sgjb. for CHECKSUM in ${CHECKSUM_FILES}
246283302Sgjb	cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
247283302Sgjb		${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
248283302Sgjb. endfor
249283302Sgjb.endif
250282785Sgjb
251282789Sgjbftp-stage:	remove-old-bits ${STAGE_TARGETS}
252282785Sgjb
253