Makefile.mirrors revision 282798
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 282798 2015-05-12 01:20:27Z gjb $
13282785Sgjb#
14282785Sgjb
15282785Sgjb.include "${.CURDIR}/Makefile"
16282785Sgjb
17282785SgjbFTPDIR?=		/ftp
18282787SgjbRELEASEDIR?=		/R
19282785SgjbSTAGE_TARGETS?=		iso-images-stage
20282785Sgjb
21282785Sgjb# snapshot
22282785Sgjb.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
23282785SgjbSNAPSHOT=		1
24282785SgjbTLD?=			${FTPDIR}/snapshots
25282785SgjbBUILDDATE!=		date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
26282785Sgjb. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
27282785Sgjb.  if !defined(BOARDNAME) || empty(BOARDNAME)
28282785SgjbBOARDNAME=		${KERNCONF}
29282785Sgjb.  endif
30282785Sgjb_SNAP_SUFFIX:=		-${BOARDNAME}-${BUILDDATE}
31282785Sgjb. else		# not arm/armv6
32282785Sgjb_SNAP_SUFFIX:=		-${BUILDDATE}
33282785Sgjb. endif
34282785Sgjb. for _D in /usr/bin /usr/local/bin
35282785Sgjb.  for _S in svnversion svnliteversion
36282785Sgjb.   if exists(${_D}/${_S})
37282785SgjbSVNVERSION?=		${_D}/${_S}
38282785Sgjb.   endif
39282785Sgjb.  endfor
40282785Sgjb. endfor
41282785Sgjb. if exists(${SVNVERSION}) && !empty(SVNVERSION)
42282785SgjbSVNREVISION!=		${SVNVERSION} ${WORLDDIR}/Makefile
43282785Sgjb_SNAP_SUFFIX:=		${_SNAP_SUFFIX}-r${SVNREVISION}
44282785Sgjb. endif
45282785Sgjb.else
46282785Sgjb# release
47282785SgjbSNAPSHOT=
48282785SgjbTLD?=			${FTPDIR}/releases
49282785Sgjb.endif
50282785Sgjb
51282785Sgjb.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
52282785SgjbSTAGE_TARGETS+=		vm-images-stage
53282785SgjbVM_DIR=			${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
54282785Sgjb.endif
55282785Sgjb
56282785SgjbCLEANFILES+=		${STAGE_TARGETS}
57282785SgjbCHECKSUM_FILES?=	SHA256 MD5
58282785SgjbSNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
59282785SgjbISO_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
60282785SgjbFTP_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
61282785Sgjb
62282789Sgjbremove-old-bits:
63282789Sgjb	rm -rf ${FTPDIR}
64282789Sgjb
65282785Sgjbiso-images-stage:
66282785Sgjb	mkdir -p ${ISO_DIR}
67282785Sgjb	mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
68282787Sgjb.if exists(${RELEASEDIR})
69282787Sgjb	@# Assume we have images to copy.
70282787Sgjb. for IMAGE in ${IMAGES}
71282787Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
72282787Sgjb		${ISO_DIR}/${OSRELEASE}-${IMAGE}
73282792Sgjb.  if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
74282792Sgjb	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
75282787Sgjb		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
76282791Sgjb.  endif
77282793Sgjb.  if exists(${RELEASEDIR}/CHECKSUM.${CHECKSUM})
78282793Sgjb	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM} \
79282793Sgjb		${ISO_DIR}/CHECKSUM.${CHECKSUM}
80282793Sgjb.  endif
81282791Sgjb. endfor
82282787Sgjb.endif
83282787Sgjb
84282785Sgjb.if defined(SNAPSHOT) && !empty(SNAPSHOT)
85282785Sgjb. for IMAGE in ${IMAGES}
86282785Sgjb	cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE} \
87282785Sgjb		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
88282785Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
89282785Sgjb		ln -s \
90282797Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
91282785Sgjb. endfor
92282785Sgjb. for CHECKSUM in ${CHECKSUM_FILES}
93282785Sgjb.  if exists(${ISO_DIR}/CHECKSUM.${CHECKSUM})
94282785Sgjb	rm -f ${ISO_DIR}/CHECKSUM.${CHECKSUM}
95282785Sgjb.  endif
96282785Sgjb	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
97282785Sgjb		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
98282796Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && \
99282794Sgjb		ln -s \
100282797Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
101282785Sgjb. endfor
102282785Sgjb.else	# !snapshot
103282785Sgjb	cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
104282797Sgjb		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE} .
105282785Sgjb	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
106282785Sgjb		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
107282785Sgjb.endif
108282787Sgjb.if exists(${RELEASEDIR}/ftp)
109282785Sgjb	mkdir -p ${FTP_DIR}
110282787Sgjb	cp ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
111282785Sgjb	cd ${TLD}/${TARGET} && \
112282785Sgjb		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
113282785Sgjb			${REVISION}-${BRANCH}
114282785Sgjb.endif
115282785Sgjb
116282785Sgjbvm-images-stage:
117282785Sgjb	@true
118282785Sgjb#	mkdir -p ${VM_DIR}
119282785Sgjb#.if defined(SNAPSHOT) && !empty(SNAPSHOT)
120282785Sgjb#	mkdir -p ${VM_DIR}/${BUILDDATE}
121282785Sgjb#. if exists(${VM_DIR}/Latest)
122282785Sgjb#	unlink ${VM_DIR}/Latest
123282785Sgjb#	cd ${VM_DIR} && ln -s ${BUILDDATE} Latest
124282785Sgjb#. endif
125282785Sgjb#. for VMIMAGE in ${VMIMAGES}
126282785Sgjb#	cd /R/vmimages && cp -p ${VMIMAGE}.xz \
127282785Sgjb#		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz
128282785Sgjb#	cd ${VM_DIR}/Latest && ln -s \
129282785Sgjb#		../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz \
130282785Sgjb#		${OSRELEASE}-${VMIMAGE}.xz
131282785Sgjb#. endfor
132282785Sgjb#. for CHECKSUM in ${CHECKSUM_FILES}
133282785Sgjb#.  if exists(${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM})
134282785Sgjb#	rm -f ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}
135282785Sgjb#.  endif
136282785Sgjb#	cd ${VM_DIR}/${BUILDDATE} && ${CHECKSUM:tl} ${OSRELEASE}* > \
137282785Sgjb#		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
138282785Sgjb#	cd ${VM_DIR}/Latest && ln -s \
139282785Sgjb#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
140282785Sgjb#		CHECKSUM.${CHECKSUM}
141282785Sgjb#. endfor
142282785Sgjb#.else	# !snapshot
143282785Sgjb#. for CHECKSUM in ${CHECKSUM_FILES}
144282785Sgjb#	cd /R/vmimages && cp -p CHECKSUM.${CHECKSUM}* \
145282785Sgjb#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
146282785Sgjb#.endif
147282785Sgjb
148282789Sgjbftp-stage:	remove-old-bits ${STAGE_TARGETS}
149282785Sgjb
150