Revisió 7eff0866
Afegit per Pau Escrich fa més de 14 anys
| Makefile | ||
|---|---|---|
|
BUILD_DIR = build
|
||
|
CONFIG_DIR = configs
|
||
|
MY_CONFIGS = $(BUILD_DIR)/configs
|
||
|
HW_AVAILABLE = alix rs rspro x86 fonera nsm5 nsm2
|
||
|
IMAGES = images
|
||
|
SHELL = bash
|
||
|
J ?= 1
|
||
|
V ?= 99
|
||
|
T =
|
||
|
MAKE_SRC = make -j$(J) V=$(V)
|
||
|
TIMESTAMP = $(shell date +%d%m%y_%H%M)
|
||
|
|
||
|
include targets.mk
|
||
|
|
||
|
.PHONY: checkout update clean config menuconfig kernel_menuconfig list_targets build
|
||
|
|
||
| ... | ... | |
|
|
||
|
define menuconfig_owrt
|
||
|
cd $(BUILD_DIR)/$1 && make menuconfig
|
||
|
[ ! -d $(MY_CONFIGS)/$1 ] && mkdir -p $(MY_CONFIGS)/$1
|
||
|
[ ! -d $(MY_CONFIGS)/$1 ] && mkdir -p $(MY_CONFIGS)/$1 || true
|
||
|
cp -f $(BUILD_DIR)/$1/.config $(MY_CONFIGS)/$1/config
|
||
|
endef
|
||
|
|
||
|
define kmenuconfig_owrt
|
||
|
cd $(BUILD_DIR)/$1 && make kernel_menuconfig
|
||
|
[ ! -d $(MY_CONFIGS)/$1 ] && mkdir -p $(MY_CONFIGS)/$1 || true
|
||
|
cp -f $(BUILD_DIR)/$1/target/linux/$(ARCH)/config-* $(MY_CONFIGS)/$1/kernel_config
|
||
|
endef
|
||
|
|
||
|
define post_build
|
||
|
[ ! -d $(IMAGES) ] && mkdir $(IMAGES) || true
|
||
|
cp -f $(BUILD_DIR)/$1/$(IMAGE) $(IMAGES)/$(NAME)-factory-$(TIMESTAMP).bin
|
||
|
cp -f $(BUILD_DIR)/$1/$(SYSUPGRADE) $(IMAGES)/$(NAME)-upgrade-$(TIMESTAMP).bin
|
||
|
@echo
|
||
|
@echo "qMp firmware compiled, you can find output files in $(IMAGES) directory"
|
||
|
endef
|
||
|
|
||
|
define clean_all
|
||
|
[ -d "$(BUILD_DIR)" ] && rm -rf $(BUILD_DIR)/*
|
||
|
[ -d "$(BUILD_DIR)" ] && rm -rf $(BUILD_DIR)/* || true
|
||
|
rm -f .checkout_* 2>/dev/null || true
|
||
|
[ -d "$(BUILD_DIR)" ] && rm -f $(IMAGES)/* || true
|
||
|
endef
|
||
|
|
||
|
define clean_target
|
||
|
[ -d "$(BUILD_DIR)/$1" ] && rm -rf $(BUILD_DIR)/$1
|
||
|
[ -d "$(BUILD_DIR)/$1" ] && rm -rf $(BUILD_DIR)/$1 || true
|
||
|
rm -f .checkout_$1 2>/dev/null || true
|
||
|
endef
|
||
|
|
||
| ... | ... | |
|
.checkout_qmp:
|
||
|
git clone $(QMP_GIT) $(BUILD_DIR)/qmp
|
||
|
cd $(BUILD_DIR)/qmp; git checkout --track origin/$(QMP_GIT_BRANCH); cd ..
|
||
|
touch $@
|
||
|
@touch $@
|
||
|
|
||
|
.checkout_eig:
|
||
|
git clone $(EIGENNET_GIT) $(BUILD_DIR)/eigennet/packages
|
||
|
touch $@
|
||
|
@touch $@
|
||
|
|
||
|
checkout: .checkout_qmp .checkout_eig
|
||
|
$(if $(T),,$(call target_error))
|
||
|
$(if $(wildcard .checkout_$(T)),,$(call checkout_src))
|
||
|
$(if $(wildcard .checkout_$(T)),,$(call update_feeds,$(T)))
|
||
|
touch .checkout_$(T)
|
||
|
@touch .checkout_$(T)
|
||
|
|
||
|
update: .checkout_eig .checkout_qmp
|
||
|
cd $(BUILD_DIR)/qmp && git pull
|
||
| ... | ... | |
|
$(if $(T),$(call clean_target,$(T)),$(call clean_all))
|
||
|
|
||
|
list_targets:
|
||
|
@echo $(HW_AVAILABLE)
|
||
|
$(info $(HW_AVAILABLE))
|
||
|
@exit 0
|
||
|
|
||
|
config:
|
||
|
select HW in alix rs rspro x86 fonera nsm5 nsm2; do break; done; echo $HW > .config.tmp;
|
||
| ... | ... | |
|
|
||
|
build: checkout
|
||
|
$(if $(T),$(call build_src,$(BUILD_DIR),$(T)))
|
||
|
|
||
|
$(call post_build,$(T))
|
||
|
|
||
| README | ||
|---|---|---|
|
dl: download folder for OpenWRT packages
|
||
|
|
||
|
configs: config files for each kind of hardware. These are the default ones provided by qmpfw
|
||
|
|
||
|
|
||
|
images: output directory for images compiled by qmpfw
|
||
|
|
||
|
** Command options
|
||
|
|
||
| ... | ... | |
|
|
||
|
make T=rspro kernel_menuconfig
|
||
|
|
||
|
TODO: copy kernel config file in build/configs directory
|
||
|
To clean specific target:
|
||
|
|
||
|
make T=rspro clean
|
||
| ... | ... | |
|
To configure some general parameters from qMp you can run:
|
||
|
|
||
|
make config
|
||
|
|
||
|
TODO: This feature is missing
|
||
|
|
||
|
|
||
També disponible a: Unified diff
New file targets.mk used to define target specific options. Implemented kernel_menuconfig copy config. Implemented post_build function