Makefile.mirrors revision 282791
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 282791 2015-05-12 00:33:18Z 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(/R/${IMAGE}.xz)
70	cp -p ${RELEASEDIR}/${IMAGE}.xz \
71		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
72.  endif
73. endfor
74.endif
75
76.if defined(SNAPSHOT) && !empty(SNAPSHOT)
77. for IMAGE in ${IMAGES}
78	cd ${ISO_DIR} && mv ${OSRELEASE}-${IMAGE} \
79		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
80	cd ${TLD}/ISO-IMAGES/${REVISION} && \
81		ln -s \
82		../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
83. endfor
84. for CHECKSUM in ${CHECKSUM_FILES}
85.  if exists(${ISO_DIR}/CHECKSUM.${CHECKSUM})
86	rm -f ${ISO_DIR}/CHECKSUM.${CHECKSUM}
87.  endif
88	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
89		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
90. endfor
91.else	# !snapshot
92	cd ${TLD}/ISO-IMAGES/${REVISION} && ln -s \
93		../../${TARGET}/${TARGET_ARCH}/${OSRELEASE}-${IMAGE} .
94	cd ${ISO_DIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
95		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
96.endif
97.if exists(${RELEASEDIR}/ftp)
98	mkdir -p ${FTP_DIR}
99	cp ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
100	cd ${TLD}/${TARGET} && \
101		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
102			${REVISION}-${BRANCH}
103.endif
104
105vm-images-stage:
106	@true
107#	mkdir -p ${VM_DIR}
108#.if defined(SNAPSHOT) && !empty(SNAPSHOT)
109#	mkdir -p ${VM_DIR}/${BUILDDATE}
110#. if exists(${VM_DIR}/Latest)
111#	unlink ${VM_DIR}/Latest
112#	cd ${VM_DIR} && ln -s ${BUILDDATE} Latest
113#. endif
114#. for VMIMAGE in ${VMIMAGES}
115#	cd /R/vmimages && cp -p ${VMIMAGE}.xz \
116#		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz
117#	cd ${VM_DIR}/Latest && ln -s \
118#		../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}-${VMIMAGE}.xz \
119#		${OSRELEASE}-${VMIMAGE}.xz
120#. endfor
121#. for CHECKSUM in ${CHECKSUM_FILES}
122#.  if exists(${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM})
123#	rm -f ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}
124#.  endif
125#	cd ${VM_DIR}/${BUILDDATE} && ${CHECKSUM:tl} ${OSRELEASE}* > \
126#		CHECKSUM.${CHECKSUM}-${REVISION}-${BRANCH}-${SNAP_SUFFIX}
127#	cd ${VM_DIR}/Latest && ln -s \
128#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
129#		CHECKSUM.${CHECKSUM}
130#. endfor
131#.else	# !snapshot
132#. for CHECKSUM in ${CHECKSUM_FILES}
133#	cd /R/vmimages && cp -p CHECKSUM.${CHECKSUM}* \
134#		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
135#.endif
136
137ftp-stage:	remove-old-bits ${STAGE_TARGETS}
138
139