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 .if exists(${RELEASEDIR})
20 STAGE_TARGETS?= iso-images-stage
23 .if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
24 . if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != "" || ${TARGET:Mriscv*} != ""
30 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
32 TLD?= ${FTPDIR}/snapshots
33 .if !defined(BUILDDATE) || empty(BUILDDATE)
34 BUILDDATE!= date +%Y%m%d
36 _SNAP_SUFFIX:= ${BUILDDATE}-${GITREV}-${GITCOUNT}
40 TLD?= ${FTPDIR}/releases
43 .if defined(EMBEDDED) && !empty(EMBEDDED)
44 . if ${TARGET:Marm*} != "" && (${TARGET_ARCH:Marm*} != "" || ${TARGET_ARCH} == "aarch64") || ${TARGET:Mriscv*} != ""
45 . if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
52 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
53 STAGE_TARGETS+= vm-images-stage
54 VM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
57 CLEANFILES+= ${STAGE_TARGETS}
58 CHECKSUM_FILES?= SHA512 SHA256
59 SNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
60 ISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
61 FTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
68 mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
69 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
70 cd ${RELEASEDIR} && rm -f CHECKSUM.*
71 . for IMAGE in ${IMAGES}
72 . if defined(EMBEDDED) && !empty(EMBEDDED)
74 mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
75 ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
76 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \
77 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
78 cd ${TLD}/ISO-IMAGES/${REVISION} && \
80 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
81 . endif # not embedded
82 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
84 mv ${OSRELEASE}-${IMAGE} \
85 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
86 cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \
87 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
88 cd ${TLD}/ISO-IMAGES/${REVISION} && \
90 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
92 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
94 mv ${OSRELEASE}-${IMAGE}.xz \
95 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
96 cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \
97 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
98 cd ${TLD}/ISO-IMAGES/${REVISION} && \
100 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
102 . endfor # images loop
103 cd ${RELEASEDIR} && rm -f CHECKSUM.*
104 . for CHECKSUM in ${CHECKSUM_FILES}
105 . if defined(EMBEDDED) && !empty(EMBEDDED)
106 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
107 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
108 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \
109 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
110 cd ${TLD}/ISO-IMAGES/${REVISION} && \
112 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
113 . else # not embedded
114 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
115 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
116 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \
117 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
118 cd ${TLD}/ISO-IMAGES/${REVISION} && \
120 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
122 . endfor # checksum files
124 . for IMAGE in ${IMAGES}
125 . if defined(EMBEDDED) && !empty(EMBEDDED)
126 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
127 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
128 cd ${TLD}/ISO-IMAGES/${REVISION} && \
130 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
131 . endif # not embedded
132 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
133 cd ${RELEASEDIR} && \
134 cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
135 ${ISO_DIR}/${OSRELEASE}-${IMAGE}
136 cd ${TLD}/ISO-IMAGES/${REVISION} && \
138 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
140 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
141 cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
142 ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
143 cd ${TLD}/ISO-IMAGES/${REVISION} && \
145 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
147 . endfor # images loop
148 cd ${RELEASEDIR} && rm -f CHECKSUM.*
149 . for CHECKSUM in ${CHECKSUM_FILES}
150 . if defined(EMBEDDED) && !empty(EMBEDDED)
151 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
152 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
153 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \
154 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
155 cd ${TLD}/ISO-IMAGES/${REVISION} && \
157 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
158 . else # not embedded
159 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
160 CHECKSUM.${CHECKSUM}-${OSRELEASE}
161 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \
162 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
163 cd ${TLD}/ISO-IMAGES/${REVISION} && \
165 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
167 . endfor # checksum files
169 .if exists(${RELEASEDIR}/ftp)
171 cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
172 echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE
173 echo ${GITBRANCH} > ${FTP_DIR}/GITBRANCH
174 echo ${GITREV} > ${FTP_DIR}/REVISION
175 cd ${TLD}/${TARGET} && \
176 ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
177 ${REVISION}-${BRANCH}
182 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
183 . if exists(${VM_DIR}/Latest)
184 rm -rf ${VM_DIR}/Latest
186 mkdir -p ${VM_DIR}/Latest
187 mkdir -p ${VM_DIR}/${BUILDDATE}
188 . for VMFORMAT in ${VMFORMATS}
189 cd ${RELEASEDIR}/vmimages && \
190 mv ${OSRELEASE}.${VMFORMAT}.xz \
191 ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
192 cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
193 ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
194 cd ${VM_DIR}/Latest && \
195 ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
196 ${OSRELEASE}.${VMFORMAT}.xz
198 cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
199 . for CHECKSUM in ${CHECKSUM_FILES}
200 cd ${RELEASEDIR}/vmimages && \
201 ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
202 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
203 ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
204 cd ${VM_DIR}/Latest && \
205 ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
209 . if exists(${VM_DIR}/Latest)
210 rm -rf ${VM_DIR}/Latest
212 mkdir -p ${VM_DIR}/Latest
213 . for VMFORMAT in ${VMFORMATS}
214 cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \
215 ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz
217 . for CHECKSUM in ${CHECKSUM_FILES}
218 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
219 ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
223 ftp-stage: remove-old-bits ${STAGE_TARGETS}