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.
14 .include "${.CURDIR}/Makefile"
17 FTPDIR?= ${RELEASEDIR}/ftp-stage
18 .if exists(${RELEASEDIR})
19 STAGE_TARGETS?= iso-images-stage
22 .if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
23 . if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != "" || ${TARGET:Mriscv*} != ""
29 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
31 TLD?= ${FTPDIR}/snapshots
32 .if !defined(BUILDDATE) || empty(BUILDDATE)
33 BUILDDATE!= date +%Y%m%d
35 _SNAP_SUFFIX:= ${BUILDDATE}-${GITREV}-${GITCOUNT}
39 TLD?= ${FTPDIR}/releases
42 .if defined(EMBEDDED) && !empty(EMBEDDED)
43 . if ${TARGET:Marm*} != "" && (${TARGET_ARCH:Marm*} != "" || ${TARGET_ARCH} == "aarch64") || ${TARGET:Mriscv*} != ""
44 . if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
51 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
52 STAGE_TARGETS+= vm-images-stage
53 VM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
56 CLEANFILES+= ${STAGE_TARGETS}
57 CHECKSUM_FILES?= SHA512 SHA256
58 SNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
59 ISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
60 FTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}
67 mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
68 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
69 cd ${RELEASEDIR} && rm -f CHECKSUM.*
70 . for IMAGE in ${IMAGES}
71 . if defined(EMBEDDED) && !empty(EMBEDDED)
73 mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
74 ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
75 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \
76 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
77 cd ${TLD}/ISO-IMAGES/${REVISION} && \
79 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
80 . endif # not embedded
81 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
83 mv ${OSRELEASE}-${IMAGE} \
84 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
85 cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \
86 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
87 cd ${TLD}/ISO-IMAGES/${REVISION} && \
89 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
91 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
93 mv ${OSRELEASE}-${IMAGE}.xz \
94 ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
95 cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \
96 ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
97 cd ${TLD}/ISO-IMAGES/${REVISION} && \
99 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
101 . endfor # images loop
102 cd ${RELEASEDIR} && rm -f CHECKSUM.*
103 . for CHECKSUM in ${CHECKSUM_FILES}
104 . if defined(EMBEDDED) && !empty(EMBEDDED)
105 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
106 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
107 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \
108 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
109 cd ${TLD}/ISO-IMAGES/${REVISION} && \
111 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
112 . else # not embedded
113 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
114 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
115 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \
116 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
117 cd ${TLD}/ISO-IMAGES/${REVISION} && \
119 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
121 . endfor # checksum files
123 . for IMAGE in ${IMAGES}
124 . if defined(EMBEDDED) && !empty(EMBEDDED)
125 cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
126 ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
127 cd ${TLD}/ISO-IMAGES/${REVISION} && \
129 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
130 . endif # not embedded
131 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
132 cd ${RELEASEDIR} && \
133 cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
134 ${ISO_DIR}/${OSRELEASE}-${IMAGE}
135 cd ${TLD}/ISO-IMAGES/${REVISION} && \
137 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
139 . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
140 cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
141 ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
142 cd ${TLD}/ISO-IMAGES/${REVISION} && \
144 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
146 . endfor # images loop
147 cd ${RELEASEDIR} && rm -f CHECKSUM.*
148 . for CHECKSUM in ${CHECKSUM_FILES}
149 . if defined(EMBEDDED) && !empty(EMBEDDED)
150 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
151 CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
152 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \
153 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
154 cd ${TLD}/ISO-IMAGES/${REVISION} && \
156 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
157 . else # not embedded
158 cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
159 CHECKSUM.${CHECKSUM}-${OSRELEASE}
160 cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \
161 ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
162 cd ${TLD}/ISO-IMAGES/${REVISION} && \
164 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
166 . endfor # checksum files
168 .if exists(${RELEASEDIR}/ftp)
170 cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
171 echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE
172 echo ${GITBRANCH} > ${FTP_DIR}/GITBRANCH
173 echo ${GITREV} > ${FTP_DIR}/REVISION
174 cd ${TLD}/${TARGET} && \
175 ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
176 ${REVISION}-${BRANCH}
181 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
182 . if exists(${VM_DIR}/Latest)
183 rm -rf ${VM_DIR}/Latest
185 mkdir -p ${VM_DIR}/Latest
186 mkdir -p ${VM_DIR}/${BUILDDATE}
187 . for VMFORMAT in ${VMFORMATS}
188 cd ${RELEASEDIR}/vmimages && \
189 mv ${OSRELEASE}.${VMFORMAT}.xz \
190 ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
191 cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
192 ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz
193 cd ${VM_DIR}/Latest && \
194 ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
195 ${OSRELEASE}.${VMFORMAT}.xz
197 cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
198 . for CHECKSUM in ${CHECKSUM_FILES}
199 cd ${RELEASEDIR}/vmimages && \
200 ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
201 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
202 ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
203 cd ${VM_DIR}/Latest && \
204 ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
208 . if exists(${VM_DIR}/Latest)
209 rm -rf ${VM_DIR}/Latest
211 mkdir -p ${VM_DIR}/Latest
212 . for VMFORMAT in ${VMFORMATS}
213 cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \
214 ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz
216 . for CHECKSUM in ${CHECKSUM_FILES}
217 cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
218 ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
222 ftp-stage: remove-old-bits ${STAGE_TARGETS}