Makefile.mirrors revision 282793
1#
2# This Makefile helps create the directory structure on ftp-master,
3# making staging builds a bit more sane.
4#
5# You probably do not want to use this.  Really.
6# You have been warned.
7#
8# $FreeBSD: head/release/Makefile.mirrors 282793 2015-05-12 00:46:32Z gjb $
9#
10
11.include "${.CURDIR}/Makefile"
12
13FTPDIR?=		/ftp
14RELEASEDIR?=		/R
15STAGE_TARGETS?=		iso-images-stage
16
17# snapshot
18.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
19SNAPSHOT=		1
20TLD?=			${FTPDIR}/snapshots
21BUILDDATE!=		date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
22. if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
23.  if !defined(BOARDNAME) || empty(BOARDNAME)
24BOARDNAME=		${KERNCONF}
25.  endif
26_SNAP_SUFFIX:=		-${BOARDNAME}-${BUILDDATE}
27. else		# not arm/armv6
28_SNAP_SUFFIX:=		-${BUILDDATE}
29. endif
30. for _D in /usr/bin /usr/local/bin
31.  for _S in svnversion svnliteversion
32.   if exists(${_D}/${_S})
33SVNVERSION?=		${_D}/${_S}
34.   endif
35.  endfor
36. endfor
37. if exists(${SVNVERSION}) && !empty(SVNVERSION)
38SVNREVISION!=		${SVNVERSION} ${WORLDDIR}/Makefile
39_SNAP_SUFFIX:=		${_SNAP_SUFFIX}-r${SVNREVISION}
40. endif
41.else
42# release
43SNAPSHOT=
44TLD?=			${FTPDIR}/releases
45.endif
46
47.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
48STAGE_TARGETS+=		vm-images-stage
49VM_DIR=			${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
50.endif
51
52CLEANFILES+=		${STAGE_TARGETS}
53CHECKSUM_FILES?=	SHA256 MD5
54SNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
55ISO_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
56FTP_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
57
58remove-old-bits:
59	rm -rf ${FTPDIR}
60
61iso-images-stage:
62	mkdir -p ${ISO_DIR}
63	mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
64.if exists(${RELEASEDIR})
65	@# Assume we have images to copy.
66. for IMAGE in ${IMAGES}
67	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
68		${ISO_DIR}/${OSRELEASE}-${IMAGE}
69.  if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
70	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
71		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
72.  endif
73.  if exists(${RELEASEDIR}/CHECKSUM.${CHECKSUM})
74	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM} \
75		${ISO_DIR}/CHECKSUM.${CHECKSUM}
76.  endif
77. endfor
78.endif
79
80.if defined(SNAPSHOT) && !empty(SNAPSHOT)
81. for IMAGE in ${IMAGES}
82	cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE} \
83		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
84	cd ${TLD}/ISO-IMAGES/${REVISION} && \
85		ln -s \
86		../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
87. endfor
88. for CHECKSUM in ${CHECKSUM_FILES}
89.  if exists(${ISO_DIR}/CHECKSUM.${CHECKSUM})
90	rm -f ${ISO_DIR}/CHECKSUM.${CHECKSUM}
91.  endif
92	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
93		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
94. endfor
95.else	# !snapshot
96	cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
97		../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${IMAGE} .
98	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
99		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
100.endif
101.if exists(${RELEASEDIR}/ftp)
102	mkdir -p ${FTP_DIR}
103	cp ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
104	cd ${TLD}/${TARGET} && \
105		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
106			${REVISION}-${BRANCH}
107.endif
108
109vm-images-stage:
110	@true
111#	mkdir -p ${VM_DIR}
112#.if defined(SNAPSHOT) && !empty(SNAPSHOT)
113#	mkdir -p ${VM_DIR}/${BUILDDATE}
114#. if exists(${VM_DIR}/Latest)
115#	unlink ${VM_DIR}/Latest
116#	cd ${VM_DIR} && ln -s ${BUILDDATE} Latest
117#. endif
118#. for VMIMAGE in ${VMIMAGES}
119#	cd /R/vmimages && cp -p ${VMIMAGE}.xz \
120#		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz
121#	cd ${VM_DIR}/Latest && ln -s \
122#		../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz \
123#		${OSRELEASE}-${VMIMAGE}.xz
124#. endfor
125#. for CHECKSUM in ${CHECKSUM_FILES}
126#.  if exists(${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM})
127#	rm -f ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}
128#.  endif
129#	cd ${VM_DIR}/${BUILDDATE} && ${CHECKSUM:tl} ${OSRELEASE}* > \
130#		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
131#	cd ${VM_DIR}/Latest && ln -s \
132#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
133#		CHECKSUM.${CHECKSUM}
134#. endfor
135#.else	# !snapshot
136#. for CHECKSUM in ${CHECKSUM_FILES}
137#	cd /R/vmimages && cp -p CHECKSUM.${CHECKSUM}* \
138#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
139#.endif
140
141ftp-stage:	remove-old-bits ${STAGE_TARGETS}
142
143