94 lines
2.5 KiB
Makefile
94 lines
2.5 KiB
Makefile
ARCH = i386
|
|
TOP_D = $(shell pwd)
|
|
BR_D = $(TOP_D)/buildroot
|
|
OUT_D = $(TOP_D)/output/$(ARCH)
|
|
BR_OUT_D = $(OUT_D)/buildroot
|
|
CONF_D = $(TOP_D)/conf
|
|
DL_D = $(TOP_D)/download
|
|
SKEL_D = $(OUT_D)/skeleton
|
|
|
|
TMPDIR ?= $(OUT_D)/tmp
|
|
export TMPDIR
|
|
|
|
DISK_IMG = $(OUT_D)/disk.img
|
|
PART_IMG = $(OUT_D)/part.img
|
|
TAR_IMG = $(OUT_D)/rootfs.tar
|
|
BR_TAR_IMG = $(BR_OUT_D)/images/rootfs.tar
|
|
BR2_CCACHE_DIR = $(TOP_D)/ccache/$(ARCH)
|
|
|
|
BR_MAKE = cd $(BR_D) && mkdir -p "$(TMPDIR)" && \
|
|
make O=$(BR_OUT_D) BR2_DL_DIR=$(DL_D) \
|
|
BR2_CONFIG=$(BR_OUT_D)/.config \
|
|
BUSYBOX_CONFIG_FILE=$(BR_OUT_D)/busybox.config \
|
|
BR2_CCACHE_DIR=$(BR2_CCACHE_DIR)
|
|
|
|
BR_DEPS = $(BR_D) $(BR_OUT_D)/busybox.config $(BR_OUT_D)/.config $(SKEL_D)/.dir
|
|
|
|
BR_CONFIG = $(CONF_D)/buildroot-$(ARCH).config
|
|
|
|
BUSYBOX_VERSION := $(shell sed -n \
|
|
"s,^BUSYBOX_VERSION\s*=\s*\([^\s]*\).*,\1,p" \
|
|
$(BR_D)/package/busybox/busybox.mk)
|
|
BUSYBOX_BUILD_DIR = $(BR_OUT_D)/build/busybox-$(BUSYBOX_VERSION)
|
|
BUSYBOX_BUILD_CONFIG = $(BUSYBOX_BUILD_DIR)/.config
|
|
|
|
unexport SED # causes random issues (LP: #920620)
|
|
|
|
all: $(TAR_IMG)
|
|
|
|
debug:
|
|
@echo "BR_DEPS: $(BR_DEPS)"
|
|
@echo "BR_MAKE: $(BR_MAKE)"
|
|
@echo "BR_OUT_D: $(BR_OUT_D)"
|
|
@echo "BUSYBOX_BUILD_CONFIG: $(BUSYBOX_BUILD_CONFIG)"
|
|
@echo "BUSYBOX_VERSION: $(BUSYBOX_VERSION)"
|
|
|
|
source: br_source minicloud_source
|
|
|
|
br_source: $(BR_DEPS) $(OUT_D)/.source.$(ARCH)
|
|
minicloud_source: $(DL_D)/.dir
|
|
@echo hi world
|
|
# here we would download the Ubuntu kernel
|
|
|
|
$(BR_D):
|
|
@[ -d "$(BR_D)" ] || { echo "You Must download BUILDROOT, extract it, and symlink to $(BR_D)"; exit 1; }
|
|
|
|
$(OUT_D)/.source.$(ARCH):
|
|
$(BR_MAKE) source
|
|
|
|
$(BR_OUT_D)/busybox.config: $(CONF_D)/busybox.config $(BR_OUT_D)/.dir
|
|
cp $(CONF_D)/busybox.config $@
|
|
for s in configured built target_installed; do rm -f $(BR_OUT_D)/build/busybox-*/.stamp_$$s; done
|
|
|
|
$(BR_OUT_D)/.config: $(BR_CONFIG) $(BR_OUT_D)/.dir
|
|
cp $(BR_CONFIG) $@
|
|
|
|
$(TAR_IMG): $(BR_TAR_IMG)
|
|
cp $(BR_TAR_IMG) $(TAR_IMG)
|
|
|
|
$(BR_TAR_IMG): $(BR_DEPS)
|
|
$(BR_MAKE)
|
|
|
|
$(SKEL_D)/.dir:
|
|
# copy BR_D/fs/skeleton, then sync src/ over the
|
|
# top of that.
|
|
# depends on $(BR_D)/fs/skeleton (somehow)
|
|
[ -d $(SKEL_D) ] || mkdir -p $(SKEL_D)
|
|
rsync -a $(BR_D)/system/skeleton/ $(SKEL_D)/ --delete
|
|
rsync -a $(TOP_D)/src/ $(SKEL_D)/
|
|
touch $(SKEL_D)/.dir
|
|
|
|
br-menuconfig: $(BR_OUT_D)/.config
|
|
$(BR_MAKE) $* menuconfig
|
|
cp $(BR_OUT_D)/.config $(CONF_D)/buildroot-$(ARCH).config
|
|
|
|
br-busybox-menuconfig: $(BR_OUT_D)/busybox.config
|
|
$(BR_MAKE) $* busybox-menuconfig
|
|
cp $(BUSYBOX_BUILD_CONFIG) $(CONF_D)/busybox.config
|
|
|
|
br-%: $(BR_OUT_D)/.config $(BR_OUT_D)/busybox.config
|
|
$(BR_MAKE) $*
|
|
|
|
%/.dir:
|
|
mkdir -p $* && touch $@
|