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