# $FreeWRT$ #- # This file is part of the FreeWRT project. FreeWRT is copyrighted # material, please see the LICENCE file in the top-level directory # or at http://www.freewrt.org/license for details. TOPDIR=${shell pwd} export TOPDIR CONFIG_CONFIG_IN = Config.in CONFIG = package/config noconfig_targets := menuconfig config tags autobuild # Pull in the user's configuration file ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include $(TOPDIR)/.config endif ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y) else V:=99 endif include $(TOPDIR)/rules.mk ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y) all: world .NOTPARALLEL: .PHONY: all world clean cleandir distclean image_clean target_clean world: $(DL_DIR) $(BUILD_DIR) $(STAMP_DIR) ${BASH} ${TOPDIR}/scripts/scan-pkgs.sh $(MAKE) -f build.mk tools/install toolchain/install target/compile package/compile root_clean package/install target/install package_index @$(TRACE) Build complete. See bin/ for the firmware and packages. package_index: (cd $(PACKAGE_DIR); $(STAGING_DIR)/usr/bin/ipkg-make-index . > Packages) $(DL_DIR): @mkdir -p $(DL_DIR) $(BUILD_DIR): @mkdir -p $(BUILD_DIR) $(STAMP_DIR): @mkdir -p $(STAMP_DIR) package/%: @$(TRACE) $@ $(MAKE) -C package $(patsubst package/%,%,$@) target/%: @$(TRACE) $@ $(MAKE) -C target $(patsubst target/%,%,$@) toolchain/%: @$(TRACE) $@ $(MAKE) -C toolchain $(patsubst toolchain/%,%,$@) tools/%: @$(TRACE) $@ $(MAKE) -C tools $(patsubst tools/%,%,$@) ############################################################# # # Cleanup and misc junk # ############################################################# root_clean: @$(TRACE) root_clean rm -rf $(BUILD_DIR)/linux-*/root $(BUILD_DIR)/root target_clean: root_clean rm -f $(STAMP_DIR)/.*-compile rm -f $(STAMP_DIR)/.*-install rm -rf $(BIN_DIR) cleandir: @$(TRACE) cleandir @$(MAKE) -C $(CONFIG) clean rm -rf $(BUILD_DIR) $(BIN_DIR) rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_DIR) rm -rf $(STAMP_DIR) $(TOOLS_STAMP_DIR) $(TOOLCHAIN_STAMP_DIR) rm -f .tmpconfig.h distclean: @$(TRACE) distclean @$(MAKE) -C $(CONFIG) clean rm -rf $(BUILD_DIR) $(BIN_DIR) $(DL_DIR) rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_DIR) rm -rf $(STAMP_DIR) $(TOOLS_STAMP_DIR) $(TOOLCHAIN_STAMP_DIR) rm -f .config* .tmpconfig.h else # ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y) all: menuconfig @echo "Start the build with \"make\" or with \"make v\" to be verbose" tools/install-lbin: $(MAKE) -C tools install-lbin endif # ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y) # configuration # --------------------------------------------------------------------------- $(CONFIG)/conf: @$(MAKE) -C $(CONFIG) conf >/dev/null 2>&1 $(CONFIG)/mconf: @$(MAKE) -C $(CONFIG) >/dev/null 2>&1 menuconfig: $(CONFIG)/mconf @-touch .config @$(CONFIG)/mconf $(CONFIG_CONFIG_IN) config: $(CONFIG)/conf @-touch .config @$(CONFIG)/conf $(CONFIG_CONFIG_IN) oldconfig: $(CONFIG)/conf @-touch .config @$(CONFIG)/conf -o $(CONFIG_CONFIG_IN) autobuild: $(CONFIG)/conf @-touch .config @$(CONFIG)/conf -m $(CONFIG_CONFIG_IN) @grep -v ^BUSYBOX .config > .config.autobuild @cat .busybox-config .config.autobuild > .config clean: @$(TRACE) clean @$(MAKE) -C $(CONFIG) clean rm -rf $(BUILD_DIR) $(BIN_DIR)