MycroftOS: BNuilding now uses a proper Makefile.

- Big thx once again to the HassOS guys.
This commit is contained in:
Peter Steenbergen 2019-12-10 13:21:49 +01:00
parent f45287d34d
commit 8b826c72fd
4 changed files with 52 additions and 20 deletions

43
Makefile Normal file
View File

@ -0,0 +1,43 @@
RELEASE_DIR = release
BUILDROOT=buildroot
BUILDROOT_EXTERNAL=buildroot-external
DEFCONFIG_DIR = $(BUILDROOT_EXTERNAL)/configs
TARGETS := $(notdir $(patsubst %_defconfig,%,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))
TARGETS_CONFIG := $(notdir $(patsubst %_defconfig,%-config,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))
.NOTPARALLEL: $(TARGETS) $(TARGETS_CONFIG) all
.PHONY: $(TARGETS) $(TARGETS_CONFIG) all clean help
all: $(TARGETS)
$(RELEASE_DIR):
mkdir -p $(RELEASE_DIR)
$(TARGETS_CONFIG): %-config:
@echo "config $*"
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) "$*_defconfig"
$(TARGETS): %: $(RELEASE_DIR) %-config
@echo "build $@"
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) 2>&1 | tee logs/buildroot_output.txt
cp -f $(BUILDROOT)/output/images/sdcard.img $(RELEASE_DIR)/MycroftOS_$@.img
# Do not clean when building for one target
ifneq ($(words $(filter $(TARGETS),$(MAKECMDGOALS))), 1)
@echo "clean $@"
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) clean
endif
@echo "finished $@"
clean:
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) clean
help:
@echo "Supported targets: $(TARGETS)"
@echo "Run 'make <target>' to build a target image."
@echo "Run 'make all' to build all target images."
@echo "Run 'make clean' to clean the build output."
@echo "Run 'make <target>-config' to configure buildroot for a target."

View File

@ -17,9 +17,15 @@ If this is the very first time you are going to build an image, you need to exec
This will patch the Buildroot packages.
## Building the image.
We can build the image(s) by running the following command;
Building the image(s) can be done by utilizing a proper Makefile;
<br>
- ./scripts/build.sh
To see the available commands, just run: 'make help'
<br>
At this moment only one image get's build. Namely the one for RPi3. Later on in time this section will get expanded with other possible supported hardware.
As example to build the rpi3 version;<br>
make clean<br>
make rpi3-config<br>
make rpi3<br>
<br>
To build all available buids, run;<br>
make all

View File

@ -1,17 +0,0 @@
#!/bin/bash
set -e
mkdir -p release
mkdir -p logs
all_platforms=(rpi3)
for platform in "${all_platforms[@]}"; do
make -C buildroot BR2_EXTERNAL=../buildroot-external clean
make -C buildroot BR2_EXTERNAL=../buildroot-external mycroftos_${platform}_defconfig
# Optional if you need to change stuff, uncomment the next line.
# make -C buildroot BR2_EXTERNAL=../buildroot-external menuconfig
make -C buildroot BR2_EXTERNAL=../buildroot-external 2>&1 | tee logs/buildroot_output.txt
cp -f buildroot/output/images/sdcard.img release/MycroftOS_${platform}.img
done