diff options
Diffstat (limited to 'release')
-rw-r--r-- | release/Makefile | 1 | ||||
-rw-r--r-- | release/Makefile.arm | 134 | ||||
-rw-r--r-- | release/arm/Makefile.BEAGLEBONE | 10 | ||||
-rw-r--r-- | release/arm/Makefile.PANDABOARD | 9 | ||||
-rw-r--r-- | release/arm/Makefile.RPI-B | 10 | ||||
-rw-r--r-- | release/arm/Makefile.WANDBOARD-QUAD | 10 | ||||
-rw-r--r-- | release/arm/Makefile.ZEDBOARD | 9 | ||||
-rw-r--r-- | release/arm/ROADMAP | 18 | ||||
-rwxr-xr-x | release/release.sh | 2 |
9 files changed, 203 insertions, 0 deletions
diff --git a/release/Makefile b/release/Makefile index e3485f222ad5..7b599409e51c 100644 --- a/release/Makefile +++ b/release/Makefile @@ -303,3 +303,4 @@ release-install: cd ${DESTDIR} && md5 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.MD5 .include "${.CURDIR}/Makefile.vm" +.include "${.CURDIR}/Makefile.arm" diff --git a/release/Makefile.arm b/release/Makefile.arm new file mode 100644 index 000000000000..b7092c32bbc1 --- /dev/null +++ b/release/Makefile.arm @@ -0,0 +1,134 @@ +# +# $FreeBSD$ +# + +BOARDS?= BEAGLEBONE \ + RPI-B \ + PANDABOARD \ + WANDBOARD-QUAD \ + ZEDBOARD + +ARMTARGETS?= +ARMSIZE?= 1G +BOOTSIZE?= 4m +ARM_WFLAGS?= CROSS_TOOLCHAIN=armv6-gcc +ARMPORTS?= + +WITH_ARM_IMAGES?=1 +CLEANFILES+= arm-all + +.if defined(WITH_ARM_IMAGES) && !empty(WITH_ARM_IMAGES) && !empty(BOARDS) +. for BOARD in ${BOARDS} +ARMTARGETS+= arm-${BOARD:tl} +ARMBEFORECLEAN+= arm-mdclean${BOARD:tl} +CLEANDIRS+= arm-${BOARD:tl} \ + arm-${BOARD:tl}-boot +CLEANFILES+= arm-buildworld${BOARD:tl} \ + arm-buildkernel${BOARD:tl} \ + arm-installworld${BOARD:tl} \ + arm-installkernel${BOARD:tl} \ + ${${BOARD:tu}IMAGE} \ + ${${BOARD:tu}MDDEV} \ + ${${BOARD:tu}MDFILE} \ + ${${BOARD:tu}BOOTDEV} \ + ${${BOARD:tu}BOOTFILE} \ + build-arm-${BOARD:tl} \ + build-arm-ports${BOARD:tl} +${BOARD:tu}IMAGE= arm-${BOARD:tu}.img +${BOARD:tu}MDDEV= arm-${BOARD:tu}.mddev +${BOARD:tu}MDFILE= arm-${BOARD:tu}.raw +${BOARD:tu}BOOTDEV= arm-${BOARD:tu}.bootdev +${BOARD:tu}BOOTFILE= arm-${BOARD:tu}.boot +. if exists(${.CURDIR}/arm/Makefile.${BOARD}) +. include "${.CURDIR}/arm/Makefile.${BOARD}" +. endif + +arm-mdclean${BOARD:tl}: +.if exists(${${BOARD:tu}MDDEV}) + umount ${${BOARD:tu}MDFILE} || true + mdconfig -d -u $$(cat ${${BOARD:tu}MDDEV}) +.endif +.if exists(${${BOARD:tu}BOOTDEV}) + umount ${${BOARD:tu}BOOTFILE} || true + mdconfig -d -u $$(cat ${${BOARD:tu}BOOTDEV}) +.endif + +arm-${BOARD:tl}: arm-buildworld${BOARD:tl} arm-buildkernel${BOARD:tl} \ + arm-installworld${BOARD:tl} arm-installkernel${BOARD:tl} + ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} build-${.TARGET} + +arm-buildworld${BOARD:tl}: + @echo ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${ARM_WFLAGS} \ + buildworld + touch ${.TARGET} + +arm-buildkernel${BOARD:tl}: + @echo ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${ARM_WFLAGS} \ + KERNCONF=${BOARD} buildkernel + touch ${.TARGET} + +arm-installworld${BOARD:tl}: arm-mkfs${BOARD:tl} + @echo ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${ARM_WFLAGS} \ + DESTDIR=${.OBJDIR}/arm-${BOARD:tl} installworld distribution + touch ${.TARGET} + +arm-installkernel${BOARD:tl}: + @echo ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${ARM_WFLAGS} \ + DESTDIR=${.OBJDIR}/arm-${BOARD:tl} KERNCONF=${BOARD} \ + installkernel + touch ${.TARGET} + +arm-mkfs${BOARD:tl}: +.if !exists(${${BOARD:tu}MDDEV}) + mkdir -p ${.OBJDIR}/arm-${BOARD:tl} + truncate -s ${ARMSIZE} ${.OBJDIR}/${${BOARD:tu}MDFILE} + echo $$(mdconfig -f ${.OBJDIR}/${${BOARD:tu}MDFILE}) > \ + ${.OBJDIR}/${${BOARD:tu}MDDEV} + newfs -S 4096 /dev/$$(cat ${.OBJDIR}/${${BOARD:tu}MDDEV}) + mount /dev/$$(cat ${.OBJDIR}/${${BOARD:tu}MDDEV}) \ + ${.OBJDIR}/arm-${BOARD:tl} +.endif +.if !exists(${${BOARD:tu}BOOTDEV}) + mkdir -p ${.OBJDIR}/arm-${BOARD:tl}-boot + truncate -s ${BOOTSIZE} ${.OBJDIR}/${${BOARD:tu}BOOTFILE} + echo $$(mdconfig -f ${.OBJDIR}/${${BOARD:tu}BOOTFILE}) > \ + ${.OBJDIR}/${${BOARD:tu}BOOTDEV} + newfs_msdos -S 4096 /dev/$$(cat ${.OBJDIR}/${${BOARD:tu}BOOTDEV}) + mount_msdosfs /dev/$$(cat ${.OBJDIR}/${${BOARD:tu}BOOTDEV}) \ + ${.OBJDIR}/arm-${BOARD:tl}-boot +.endif + +arm-mkimage${BOARD:tl}: +.if exists(/dev/$$(cat ${.OBJDIR}/${${BOARD:tu}BOOTDEV}) + umount ${.OBJDIR}/arm-${BOARD:tl}-boot +.endif +.if exists(/dev/$$(cat ${.OBJDIR}/${${BOARD:tu}MDDEV}) + umount ${.OBJDIR}/arm-${BOARD:tl} +.endif +# FIXME: +# Do these things need to be MBR? +# I'm also not entirely sure this is correct, anyway. +# + mkimg -s ${${BOARD}PARTSCHEME} \ + -b ${${BOARD:tu}BOOTFILE} \ + -p freebsd/rootfs:=${${BOARD:tu}MDFILE} \ + -o ${${BOARD:tu}IMAGE} + +build-arm-ports${BOARD:tl}: +. if defined(ARMPORTS) && !empty(ARMPORTS) +. if !exists(${PORTSDIR}/Makefile) +. error "Ports tree (${PORTSDIR}) is required." +. endif +. for AP in ${ARMPORTS} + @echo ${MAKE} -C ${PORTSDIR}/${AP} all install clean distclean +. endfor +. endif + touch ${.TARGET} + +. endfor # main loop +.endif # !WITH_ARM_IMAGES + +beforeclean: ${ARMBEFORECLEAN} + +arm-all: ${ARMTARGETS} + touch ${.TARGET} diff --git a/release/arm/Makefile.BEAGLEBONE b/release/arm/Makefile.BEAGLEBONE new file mode 100644 index 000000000000..5f59f0317d88 --- /dev/null +++ b/release/arm/Makefile.BEAGLEBONE @@ -0,0 +1,10 @@ +# +# $FreeBSD$ +# + +BOARD= BEAGLEBONE +${BOARD}PARTSCHEME= mbr +ARMPORTS= sysutils/u-boot-beaglebone + +build-arm-${BOARD:tl}: build-arm-ports${BOARD:tl} + touch ${.TARGET} diff --git a/release/arm/Makefile.PANDABOARD b/release/arm/Makefile.PANDABOARD new file mode 100644 index 000000000000..cd911e9cbb62 --- /dev/null +++ b/release/arm/Makefile.PANDABOARD @@ -0,0 +1,9 @@ +# +# $FreeBSD$ +# + +BOARD= PANDABOARD +${BOARD}PARTSCHEME= mbr + +build-arm-${BOARD:tl}: + touch ${.TARGET} diff --git a/release/arm/Makefile.RPI-B b/release/arm/Makefile.RPI-B new file mode 100644 index 000000000000..c81e51ed35c6 --- /dev/null +++ b/release/arm/Makefile.RPI-B @@ -0,0 +1,10 @@ +# +# $FreeBSD$ +# + +BOARD= RPI-B +${BOARD}PARTSCHEME= mbr +ARMPORTS= sysutils/u-boot-rpi + +build-arm-${BOARD:tl}: build-arm-ports${BOARD:tl} + touch ${.TARGET} diff --git a/release/arm/Makefile.WANDBOARD-QUAD b/release/arm/Makefile.WANDBOARD-QUAD new file mode 100644 index 000000000000..d7f7ff7e4474 --- /dev/null +++ b/release/arm/Makefile.WANDBOARD-QUAD @@ -0,0 +1,10 @@ +# +# $FreeBSD$ +# + +BOARD= WANDBOARD-QUAD +${BOARD}PARTSCHEME= mbr +ARMPORTS= sysutils/u-boot-wandboard + +build-arm-${BOARD:tl}: build-arm-ports${BOARD:tl} + touch ${.TARGET} diff --git a/release/arm/Makefile.ZEDBOARD b/release/arm/Makefile.ZEDBOARD new file mode 100644 index 000000000000..5d3a6856cc1d --- /dev/null +++ b/release/arm/Makefile.ZEDBOARD @@ -0,0 +1,9 @@ +# +# $FreeBSD$ +# + +BOARD= ZEDBOARD +${BOARD}PARTSCHEME= mbr + +build-arm-${BOARD:tl}: + touch ${.TARGET} diff --git a/release/arm/ROADMAP b/release/arm/ROADMAP new file mode 100644 index 000000000000..c76a41eb57a9 --- /dev/null +++ b/release/arm/ROADMAP @@ -0,0 +1,18 @@ +# +# $FreeBSD$ +# + +== WORKFLOW +===================================================================== + +- buildworld [1] +- buildkernel [1] +- ports build [2] +- md(4) device creation, mount, installworld, installkernel +- u-boot magic [2] +- rc.conf edits (gpart resize, sshd, etc.) +- ??? +- profit. + +[1]: Requires CROSS_TOOLCHAIN +[2]: If necessary diff --git a/release/release.sh b/release/release.sh index 158794f0c515..a822d783c59d 100755 --- a/release/release.sh +++ b/release/release.sh @@ -39,6 +39,8 @@ PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" export PATH +VERSION=2 + # Prototypes that can be redefined per-chroot or per-target. load_chroot_env() { } load_target_env() { } |