rc.subr: improve description for ${name}_offcmd
[freebsd.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 #
13
14 .include "${.CURDIR}/Makefile"
15
16 RELEASEDIR?=            /R
17 FTPDIR?=                ${RELEASEDIR}/ftp-stage
18 .if exists(${RELEASEDIR})
19 STAGE_TARGETS?=         iso-images-stage
20 .endif
21
22 .if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
23 . if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != "" || ${TARGET:Mriscv*} != ""
24 EMBEDDED=               1
25 . endif
26 .endif
27
28 # snapshot
29 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
30 SNAPSHOT=               1
31 TLD?=                   ${FTPDIR}/snapshots
32 .if !defined(BUILDDATE) || empty(BUILDDATE)
33 BUILDDATE!=             date +%Y%m%d
34 .endif
35 _SNAP_SUFFIX:=          ${BUILDDATE}-${GITREV}-${GITCOUNT}
36 .else
37 # release
38 SNAPSHOT=
39 TLD?=                   ${FTPDIR}/releases
40 .endif
41
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*} != ""
45 SNAPSHOT=               1
46 .  endif
47 IMAGES:=                img
48 . endif # arm/armv6
49 .endif # embedded
50
51 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
52 STAGE_TARGETS+=         vm-images-stage
53 VM_DIR=                 ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
54 .endif
55
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}
61
62 remove-old-bits:
63         rm -rf ${FTPDIR}
64
65 iso-images-stage:
66         mkdir -p ${ISO_DIR}
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)
72         cd ${RELEASEDIR} && \
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} && \
78                 ln -s \
79                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
80 .  endif # not embedded
81 .   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
82         cd ${RELEASEDIR} && \
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} && \
88                 ln -s \
89                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
90 .   endif
91 .   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
92         cd ${RELEASEDIR} && \
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} && \
98                 ln -s \
99                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
100 .   endif
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} && \
110                 ln -s \
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} && \
118                 ln -s \
119                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
120 .  endif #
121 . endfor # checksum files
122 .else # not snapshot
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} && \
128                 ln -s \
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} && \
136                 ln -s \
137                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
138 .   endif
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} && \
143                 ln -s \
144                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
145 .   endif
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} && \
155                 ln -s \
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} && \
163                 ln -s \
164                 ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
165 .  endif
166 . endfor # checksum files
167 .endif # release
168 .if exists(${RELEASEDIR}/ftp)
169         mkdir -p ${FTP_DIR}
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}
177 .endif
178
179 vm-images-stage:
180         mkdir -p ${VM_DIR}
181 .if defined(SNAPSHOT) && !empty(SNAPSHOT)
182 . if exists(${VM_DIR}/Latest)
183         rm -rf ${VM_DIR}/Latest
184 . endif
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
196 .  for FS in ${VMFSLIST}
197         cd ${RELEASEDIR}/vmimages && \
198                 mv ${OSRELEASE}-${FS}.${VMFORMAT}.xz \
199                 ${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz
200         cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
201                 ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz
202         cd ${VM_DIR}/Latest && \
203                 ln -s ../${BUILDDATE}/${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
204                 ${OSRELEASE}-${FS}.${VMFORMAT}.xz
205 .  endfor
206 . endfor
207         cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
208 . for CHECKSUM in ${CHECKSUM_FILES}
209         cd ${RELEASEDIR}/vmimages && \
210                 ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
211         cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
212                 ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
213         cd ${VM_DIR}/Latest && \
214                 ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
215                 CHECKSUM.${CHECKSUM}
216 . endfor
217 .else # not snapshot
218 . if exists(${VM_DIR}/Latest)
219         rm -rf ${VM_DIR}/Latest
220 . endif
221         mkdir -p ${VM_DIR}/Latest
222 . for VMFORMAT in ${VMFORMATS}
223         cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \
224                 ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz
225 .  for FS in ${VMFSLIST}
226         cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${FS}.${VMFORMAT}.xz \
227                 ${VM_DIR}/Latest/${OSRELEASE}-${FS}.${VMFORMAT}.xz
228 .  endfor
229 . endfor
230 . for CHECKSUM in ${CHECKSUM_FILES}
231         cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
232                 ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
233 . endfor
234 .endif
235
236 ftp-stage:      remove-old-bits ${STAGE_TARGETS}
237