mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-15 03:14:50 +00:00
41faf52b0f
In some places the output of commands, which include "cd" are used. In case of CDPATH the new path is printed, which might not be expected. Disable the variable to avoid these problem. When CDPATH was set by the user to some value like "export CDPATH=." the git checkout done by the build system did not work anymore, the git cloning aborted with such an error message for example: .... Packing checkout... tar: /disk/fs1/tmp2/mehrtens/pon-ugw/ugw-haps/openwrt/tmp/dl/ppa-drv-1.0\n@1534240258: Cannot stat: No such file or directory tar: Date sample file not found Try 'tar --help' or 'tar --usage' for more information. ..... To avoid this, this patch makes the build system unset CDPATH inside the build system, so the build system will still work even when the user set this variable in his local environment. Signed-off-by: Thomas Langer <thomas.langer@intel.com> Signed-off-by: Hauke Mehrtens <hauke.mehrtens@intel.com> Acked-by: Hans Dedecker <dedeckeh@gmail.com>
106 lines
3.1 KiB
Makefile
106 lines
3.1 KiB
Makefile
# Makefile for OpenWrt
|
|
#
|
|
# Copyright (C) 2007 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
TOPDIR:=${CURDIR}
|
|
LC_ALL:=C
|
|
LANG:=C
|
|
TZ:=UTC
|
|
export TOPDIR LC_ALL LANG TZ
|
|
|
|
empty:=
|
|
space:= $(empty) $(empty)
|
|
$(if $(findstring $(space),$(TOPDIR)),$(error ERROR: The path to the OpenWrt directory must not include any spaces))
|
|
|
|
world:
|
|
|
|
export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH)
|
|
|
|
ifneq ($(OPENWRT_BUILD),1)
|
|
_SINGLE=export MAKEFLAGS=$(space);
|
|
|
|
override OPENWRT_BUILD=1
|
|
export OPENWRT_BUILD
|
|
GREP_OPTIONS=
|
|
export GREP_OPTIONS
|
|
CDPATH=
|
|
export CDPATH
|
|
include $(TOPDIR)/include/debug.mk
|
|
include $(TOPDIR)/include/depends.mk
|
|
include $(TOPDIR)/include/toplevel.mk
|
|
else
|
|
include rules.mk
|
|
include $(INCLUDE_DIR)/depends.mk
|
|
include $(INCLUDE_DIR)/subdir.mk
|
|
include target/Makefile
|
|
include package/Makefile
|
|
include tools/Makefile
|
|
include toolchain/Makefile
|
|
|
|
$(toolchain/stamp-compile): $(tools/stamp-compile)
|
|
$(target/stamp-compile): $(toolchain/stamp-compile) $(tools/stamp-compile) $(BUILD_DIR)/.prepared
|
|
$(package/stamp-compile): $(target/stamp-compile) $(package/stamp-cleanup)
|
|
$(package/stamp-install): $(package/stamp-compile)
|
|
$(target/stamp-install): $(package/stamp-compile) $(package/stamp-install)
|
|
check: $(tools/stamp-check) $(toolchain/stamp-check) $(package/stamp-check)
|
|
|
|
printdb:
|
|
@true
|
|
|
|
prepare: $(target/stamp-compile)
|
|
|
|
clean: FORCE
|
|
rm -rf $(BUILD_DIR) $(STAGING_DIR) $(BIN_DIR) $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES) $(BUILD_LOG_DIR) $(TOPDIR)/staging_dir/packages
|
|
|
|
dirclean: clean
|
|
rm -rf $(STAGING_DIR_HOST) $(STAGING_DIR_HOSTPKG) $(TOOLCHAIN_DIR) $(BUILD_DIR_BASE)/host $(BUILD_DIR_BASE)/hostpkg $(BUILD_DIR_TOOLCHAIN)
|
|
rm -rf $(TMP_DIR)
|
|
|
|
ifndef DUMP_TARGET_DB
|
|
$(BUILD_DIR)/.prepared: Makefile
|
|
@mkdir -p $$(dirname $@)
|
|
@touch $@
|
|
|
|
tmp/.prereq_packages: .config
|
|
unset ERROR; \
|
|
for package in $(sort $(prereq-y) $(prereq-m)); do \
|
|
$(_SINGLE)$(NO_TRACE_MAKE) -s -r -C package/$$package prereq || ERROR=1; \
|
|
done; \
|
|
if [ -n "$$ERROR" ]; then \
|
|
echo "Package prerequisite check failed."; \
|
|
false; \
|
|
fi
|
|
touch $@
|
|
endif
|
|
|
|
# check prerequisites before starting to build
|
|
prereq: $(target/stamp-prereq) tmp/.prereq_packages
|
|
@if [ ! -f "$(INCLUDE_DIR)/site/$(ARCH)" ]; then \
|
|
echo 'ERROR: Missing site config for architecture "$(ARCH)" !'; \
|
|
echo ' The missing file will cause configure scripts to fail during compilation.'; \
|
|
echo ' Please provide a "$(INCLUDE_DIR)/site/$(ARCH)" file and restart the build.'; \
|
|
exit 1; \
|
|
fi
|
|
|
|
checksum: FORCE
|
|
$(call sha256sums,$(BIN_DIR),$(CONFIG_BUILDBOT))
|
|
|
|
diffconfig: FORCE
|
|
mkdir -p $(BIN_DIR)
|
|
$(SCRIPT_DIR)/diffconfig.sh > $(BIN_DIR)/config.seed
|
|
|
|
prepare: .config $(tools/stamp-compile) $(toolchain/stamp-compile)
|
|
$(_SINGLE)$(SUBMAKE) -r diffconfig
|
|
|
|
world: prepare $(target/stamp-compile) $(package/stamp-compile) $(package/stamp-install) $(target/stamp-install) FORCE
|
|
$(_SINGLE)$(SUBMAKE) -r package/index
|
|
$(_SINGLE)$(SUBMAKE) -r checksum
|
|
|
|
.PHONY: clean dirclean prereq prepare world package/symlinks package/symlinks-install package/symlinks-clean
|
|
|
|
endif
|