Revisió 6b5e8a5c
Afegit per Pau Escrich fa més de 14 anys
| Makefile | ||
|---|---|---|
|
V ?= 99
|
||
|
T =
|
||
|
MAKE_SRC = make -j$(J) V=$(V)
|
||
|
TIMESTAMP = $(shell date +%d%m%y_%H%M)
|
||
|
|
||
|
include targets.mk
|
||
|
|
||
|
TIMESTAMP = $(shell date +%d%m%y_%H%M)
|
||
|
CONFIG = $(BUILD_DIR)/$(T)/.config
|
||
|
KCONFIG = $(BUILD_DIR)/$(T)/target/linux/$(ARCH)/config-*
|
||
|
|
||
|
.PHONY: checkout update clean config menuconfig kernel_menuconfig list_targets build
|
||
|
|
||
|
define build_src
|
||
|
cd $1/$2 && $(MAKE_SRC)
|
||
|
cd $(BUILD_DIR)/$(T) && $(MAKE_SRC)
|
||
|
endef
|
||
|
|
||
|
define checkout_src
|
||
| ... | ... | |
|
rm -rf $(BUILD_DIR)/$(T)/feeds/
|
||
|
cp -f $(BUILD_DIR)/qmp/feeds.conf $(BUILD_DIR)/$(T)/
|
||
|
sed -i -e "s|PATH|`pwd`/$(BUILD_DIR)|" $(BUILD_DIR)/$(T)/feeds.conf
|
||
|
cp -f $(CONFIG_DIR)/$(T)/config $(BUILD_DIR)/$(T)/.config
|
||
|
cp -f $(CONFIG_DIR)/$(T)/config $(CONFIG)
|
||
|
[ -f $(CONFIG_DIR)/$(T)/kernel_config ] && cp -f $(CONFIG_DIR)/$(T)/kernel_config $(KCONFIG) || true
|
||
|
endef
|
||
|
|
||
|
define update_feeds
|
||
|
@echo "Updateing feed $(1)"
|
||
|
./$(BUILD_DIR)/$1/scripts/feeds update -a
|
||
|
./$(BUILD_DIR)/$1/scripts/feeds install -a
|
||
|
@echo "Updateing feed $(T)"
|
||
|
#./$(BUILD_DIR)/$(T)/scripts/feeds update -a
|
||
|
#./$(BUILD_DIR)/$(T)/scripts/feeds install -a
|
||
|
endef
|
||
|
|
||
|
define menuconfig_owrt
|
||
|
cd $(BUILD_DIR)/$1 && make menuconfig
|
||
|
[ ! -d $(MY_CONFIGS)/$1 ] && mkdir -p $(MY_CONFIGS)/$1 || true
|
||
|
cp -f $(BUILD_DIR)/$1/.config $(MY_CONFIGS)/$1/config
|
||
|
cd $(BUILD_DIR)/$(T) && make menuconfig
|
||
|
[ ! -d $(MY_CONFIGS)/$(T) ] && mkdir -p $(MY_CONFIGS)/$(T) || true
|
||
|
cp -f $(CONFIG) $(MY_CONFIGS)/$(T)/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
|
||
|
cd $(BUILD_DIR)/$(T) && make kernel_menuconfig
|
||
|
[ ! -d $(MY_CONFIGS)/$(T) ] && mkdir -p $(MY_CONFIGS)/$(T) || true
|
||
|
cp -f $(KCONFIG) $(MY_CONFIGS)/$(T)/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
|
||
|
cp -f $(BUILD_DIR)/$(T)/$(IMAGE) $(IMAGES)/$(NAME)-factory-$(TIMESTAMP).bin
|
||
|
cp -f $(BUILD_DIR)/$(T)/$(SYSUPGRADE) $(IMAGES)/$(NAME)-upgrade-$(TIMESTAMP).bin
|
||
|
@echo
|
||
|
@echo "qMp firmware compiled, you can find output files in $(IMAGES) directory"
|
||
|
endef
|
||
| ... | ... | |
|
endef
|
||
|
|
||
|
define clean_target
|
||
|
[ -d "$(BUILD_DIR)/$1" ] && rm -rf $(BUILD_DIR)/$1 || true
|
||
|
rm -f .checkout_$1 2>/dev/null || true
|
||
|
[ -d "$(BUILD_DIR)/$(T)" ] && rm -rf $(BUILD_DIR)/$(T) || true
|
||
|
rm -f .checkout_$(T) 2>/dev/null || true
|
||
|
endef
|
||
|
|
||
|
define target_error
|
||
| ... | ... | |
|
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)))
|
||
|
$(if $(wildcard .checkout_$(T)),,$(call update_feeds))
|
||
|
@touch .checkout_$(T)
|
||
|
|
||
|
update: .checkout_eig .checkout_qmp
|
||
| ... | ... | |
|
$(foreach dir,$(HW_AVAILABLE),$(if $(wildcard $(BUILD_DIR)/$(dir)),$(call update_feeds,$(dir))))
|
||
|
|
||
|
menuconfig: checkout
|
||
|
$(call menuconfig_owrt,$(T))
|
||
|
$(call menuconfig_owrt)
|
||
|
|
||
|
kernel_menuconfig: checkout
|
||
|
$(call kmenuconfig_owrt,$(T))
|
||
|
$(call kmenuconfig_owrt)
|
||
|
|
||
|
clean:
|
||
|
$(if $(T),$(call clean_target,$(T)),$(call clean_all))
|
||
|
$(if $(T),$(call clean_target),$(call clean_all))
|
||
|
|
||
|
list_targets:
|
||
|
$(info $(HW_AVAILABLE))
|
||
| ... | ... | |
|
mv .config.tmp .config
|
||
|
|
||
|
build: checkout
|
||
|
$(if $(T),$(call build_src,$(BUILD_DIR),$(T)))
|
||
|
$(call post_build,$(T))
|
||
|
$(if $(T),$(call build_src))
|
||
|
$(call post_build)
|
||
|
|
||
També disponible a: Unified diff
Added targets.mk file to define targets (rspro, alix, etc...) and solved some issues with kerne_config feature