2 # This Makefile helps create the directory structure on ftp-master,
3 # making staging builds a bit more sane.
5 # You probably do not want to use this. Really.
6 # You have been warned.
10 # Don't use this unless you know why you're using it.
15 .include "${.CURDIR}/Makefile"
18 FTPDIR?= ${RELEASEDIR}/ftp-stage
19 STAGE_TARGETS?= iso-images-stage
21 .if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
22 . if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm"
28 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
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}
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
41 BUILDDATE!= date +%Y%m%d
43 . if exists(${SVNVERSION}) && !empty(SVNVERSION)
44 SVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile
45 _SNAP_SUFFIX:= -r${SVNREVISION}-${BUILDDATE}
47 _SNAP_SUFFIX:= -${BUILDDATE}
52 TLD?= ${FTPDIR}/releases
55 .if defined(EMBEDDED) && !empty(EMBEDDED)
56 . if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6"
57 . if !defined(BOARDNAME) && empty(BOARDNAME)
58 BOARDNAME:= ${KERNCONF}
62 . if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT"
69 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
70 STAGE_TARGETS+= vm-images-stage
71 VM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
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}
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.
95 mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \
96 ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
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} && \
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} && \
115 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
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} && \
125 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
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} && \
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} && \
145 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
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
157 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
158 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
159 cd ${TLD}/ISO-IMAGES/${REVISION} && \
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} && \
169 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
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} && \
176 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
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} && \
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} && \
196 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
198 . endfor # checksum files
200 . if exists(${RELEASEDIR}/ftp)
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}
207 .endif # no RELEASEDIR
211 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
212 . if exists(${VM_DIR}/Latest)
213 rm -rf ${VM_DIR}/Latest
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
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} \
238 . if exists(${VM_DIR}/Latest)
239 rm -rf ${VM_DIR}/Latest
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
246 . for CHECKSUM in ${CHECKSUM_FILES}
247 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
248 ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
252 ftp-stage: remove-old-bits ${STAGE_TARGETS}