]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - release/Makefile.mirrors
MFC r282785, r282787, r282789, r282790, r282791, r282792, r282793,
[FreeBSD/stable/10.git] / release / Makefile.mirrors
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 # Seriously.
9 #
10 # Don't use this unless you know why you're using it.
11 #
12 # $FreeBSD$
13 #
14
15 .include "${.CURDIR}/Makefile"
16
17 RELEASEDIR?=            /R
18 FTPDIR?=                ${RELEASEDIR}/ftp-stage
19 STAGE_TARGETS?=         iso-images-stage
20
21 .if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
22 . if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm"
23 EMBEDDED=               1
24 . endif
25 .endif
26
27 # snapshot
28 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
29 SNAPSHOT=               1
30 TLD?=                   ${FTPDIR}/snapshots
31 . for _D in /usr/bin /usr/local/bin
32 .  for _S in svnversion svnliteversion
33 .   if exists(${_D}/${_S})
34 SVNVERSION?=            ${_D}/${_S}
35 .   endif
36 .  endfor
37 . endfor
38 . if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh)
39 BUILDDATE!=             cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
40 . else
41 BUILDDATE!=             date +%Y%m%d
42 . endif
43 . if exists(${SVNVERSION}) && !empty(SVNVERSION)
44 SVNREVISION!=           ${SVNVERSION} ${WORLDDIR}/Makefile
45 _SNAP_SUFFIX:=          -r${SVNREVISION}-${BUILDDATE}
46 . else
47 _SNAP_SUFFIX:=          -${BUILDDATE}
48 . endif
49 .else
50 # release
51 SNAPSHOT=
52 TLD?=                   ${FTPDIR}/releases
53 .endif
54
55 .if defined(EMBEDDED) && !empty(EMBEDDED)
56 . if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
57 .  if !defined(BOARDNAME) && empty(BOARDNAME)
58 BOARDNAME:=             ${KERNCONF}
59 .  else
60 OLDNAME:=               ${KERNCONF}
61 .  endif
62 .  if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
63 SNAPSHOT=               1
64 .  endif
65 IMAGES:=                img
66 . endif # arm/armv6
67 .endif # embedded
68
69 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
70 STAGE_TARGETS+=         vm-images-stage
71 VM_DIR=                 ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
72 .endif
73
74 CLEANFILES+=            ${STAGE_TARGETS}
75 CHECKSUM_FILES?=        SHA256 MD5
76 SNAP_SUFFIX!=           echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
77 ISO_DIR=                ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
78 FTP_DIR=                ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
79
80 remove-old-bits:
81         rm -rf ${FTPDIR}
82
83 iso-images-stage:
84         mkdir -p ${ISO_DIR}
85         mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
86 .if exists(${RELEASEDIR})
87         @# Assume we have images to copy.
88 . if defined(SNAPSHOT) && !empty(SNAPSHOT)
89         cd ${RELEASEDIR} && rm -f CHECKSUM.*
90 .  for IMAGE in ${IMAGES}
91 .   if defined(EMBEDDED) && !empty(EMBEDDED)
92 .    if defined(OLDNAME) && !empty(OLDNAME)
93         @# arm/armv6 IMX6 -> WANDBOARD, for example.
94         cd ${RELEASEDIR} && \
95                 mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
96                 ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
97 .    endif
98         cd ${RELEASEDIR} && \
99                 mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
100                 ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
101         cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \
102                 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
103         cd ${TLD}/ISO-IMAGES/${REVISION} && \
104                 ln -s \
105                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
106 .   endif # not embedded
107 .    if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
108         cd ${RELEASEDIR} && \
109                 mv ${OSRELEASE}-${IMAGE} \
110                 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} || true
111         cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \
112                 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
113         cd ${TLD}/ISO-IMAGES/${REVISION} && \
114                 ln -s \
115                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
116 .    endif
117 .    if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
118         cd ${RELEASEDIR} && \
119                 mv ${OSRELEASE}-${IMAGE}.xz \
120                 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz || true
121         cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \
122                 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
123         cd ${TLD}/ISO-IMAGES/${REVISION} && \
124                 ln -s \
125                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
126 .    endif
127 .  endfor # images loop
128         cd ${RELEASEDIR} && rm -f CHECKSUM.*
129 .  for CHECKSUM in ${CHECKSUM_FILES}
130 .   if defined(EMBEDDED) && !empty(EMBEDDED)
131         cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
132                 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
133         cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \
134                 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
135         cd ${TLD}/ISO-IMAGES/${REVISION} && \
136                 ln -s \
137                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
138 .   else # not embedded
139         cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
140                 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
141         cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \
142                 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
143         cd ${TLD}/ISO-IMAGES/${REVISION} && \
144                 ln -s \
145                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
146 .   endif #
147 .  endfor # checksum files
148 . else # not snapshot
149 .  for IMAGE in ${IMAGES}
150 .   if defined(EMBEDDED) && !empty(EMBEDDED)
151 .    if defined(OLDNAME) && !empty(OLDNAME)
152         @# arm/armv6 IMX6 -> WANDBOARD, for example.
153         cd ${RELEASEDIR} && \
154                 mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
155                 ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
156 .    endif
157         cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
158                 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
159         cd ${TLD}/ISO-IMAGES/${REVISION} && \
160                 ln -s \
161                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
162 .   endif # not embedded
163 .    if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
164         cd ${RELEASEDIR} && \
165         cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
166                 ${ISO_DIR}/${OSRELEASE}-${IMAGE}
167         cd ${TLD}/ISO-IMAGES/${REVISION} && \
168                 ln -s \
169                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
170 .    endif
171 .    if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
172         cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
173                 ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
174         cd ${TLD}/ISO-IMAGES/${REVISION} && \
175                 ln -s \
176                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
177 .    endif
178 .  endfor # images loop
179         cd ${RELEASEDIR} && rm -f CHECKSUM.*
180 .  for CHECKSUM in ${CHECKSUM_FILES}
181 .   if defined(EMBEDDED) && !empty(EMBEDDED)
182         cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
183                 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
184         cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \
185                 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
186         cd ${TLD}/ISO-IMAGES/${REVISION} && \
187                 ln -s \
188                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
189 .   else # not embedded
190         cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
191                 CHECKSUM.${CHECKSUM}-${OSRELEASE}
192         cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \
193                 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
194         cd ${TLD}/ISO-IMAGES/${REVISION} && \
195                 ln -s \
196                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
197 .   endif
198 .  endfor # checksum files
199 . endif # release
200 . if exists(${RELEASEDIR}/ftp)
201         mkdir -p ${FTP_DIR}
202         cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
203         cd ${TLD}/${TARGET} && \
204                 ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
205                         ${REVISION}-${BRANCH}
206 . endif
207 .endif # no RELEASEDIR
208
209 vm-images-stage:
210         mkdir -p ${VM_DIR}
211 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
212 . if exists(${VM_DIR}/Latest)
213         rm -rf ${VM_DIR}/Latest
214 . endif
215         mkdir -p ${VM_DIR}/Latest
216         mkdir -p ${VM_DIR}/${BUILDDATE}
217 . for VMFORMAT in ${VMFORMATS}
218         cd ${RELEASEDIR}/vmimages && \
219                 mv ${OSRELEASE}.${VMFORMAT}.xz \
220                 ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
221         cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
222                 ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
223         cd ${VM_DIR}/Latest && \
224                 ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
225                 ${OSRELEASE}.${VMFORMAT}.xz
226 . endfor
227         cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
228 . for CHECKSUM in ${CHECKSUM_FILES}
229         cd ${RELEASEDIR}/vmimages && \
230                 ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
231         cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
232                 ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
233         cd ${VM_DIR}/Latest && \
234                 ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
235                 CHECKSUM.${CHECKSUM}
236 . endfor
237 .else # not snapshot
238 . if exists(${VM_DIR}/Latest)
239         rm -rf ${VM_DIR}/Latest
240 . endif
241         mkdir -p ${VM_DIR}/Latest
242 . for VMFORMAT in ${VMFORMATS}
243         cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \
244                 ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz
245 . endfor
246 . for CHECKSUM in ${CHECKSUM_FILES}
247         cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
248                 ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
249 . endfor
250 .endif
251
252 ftp-stage:      remove-old-bits ${STAGE_TARGETS}
253