sdk: track files with git and use it to implement proper clean targets
Initialize a Git repository in the SDK and use git reset / git clean to rollback any SDK changes with "make clean" or "make dirclean". This approach is more robust than nuking entire directory trees because some parts of them might have been shipped with the original archive. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 43904
This commit is contained in:
parent
64e7b41b2e
commit
4685e4f273
2 changed files with 17 additions and 4 deletions
|
@ -135,7 +135,7 @@ kernel_menuconfig: prepare_kernel_conf
|
|||
kernel_nconfig: prepare_kernel_conf
|
||||
$(_SINGLE)$(NO_TRACE_MAKE) -C target/linux nconfig
|
||||
|
||||
tmp/.prereq-build: include/prereq-build.mk
|
||||
tmp/.prereq-build: $(if $(SDK),.git/config) include/prereq-build.mk
|
||||
mkdir -p tmp
|
||||
rm -f tmp/.host.mk
|
||||
@$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f $(TOPDIR)/include/prereq-build.mk prereq 2>/dev/null || { \
|
||||
|
|
|
@ -14,6 +14,16 @@ export TOPDIR LC_ALL LANG SDK
|
|||
|
||||
world:
|
||||
|
||||
# Initialize SDK snapshot
|
||||
.git/config:
|
||||
@( \
|
||||
echo -n "Initializing SDK ... "; \
|
||||
git init -q .; \
|
||||
find . -mindepth 1 -maxdepth 1 -not -name feeds | xargs git add; \
|
||||
git commit -q -m "Initial state"; \
|
||||
echo "ok."; \
|
||||
)
|
||||
|
||||
include $(TOPDIR)/include/host.mk
|
||||
|
||||
ifneq ($(OPENWRT_BUILD),1)
|
||||
|
@ -36,14 +46,17 @@ else
|
|||
$(package/stamp-compile): $(BUILD_DIR)/.prepared
|
||||
$(BUILD_DIR)/.prepared: Makefile
|
||||
@mkdir -p $$(dirname $@)
|
||||
@mkdir -p bin/packages
|
||||
@touch $@
|
||||
|
||||
clean: FORCE
|
||||
rm -rf $(BUILD_DIR) $(BIN_DIR)
|
||||
git clean -f -d $(STAGING_DIR); true
|
||||
git clean -f -d $(BUILD_DIR); true
|
||||
git clean -f -d $(BIN_DIR); true
|
||||
|
||||
dirclean: clean
|
||||
rm -rf $(TMP_DIR)
|
||||
git reset --hard HEAD
|
||||
git clean -f -d
|
||||
rm -rf feeds/
|
||||
|
||||
# check prerequisites before starting to build
|
||||
prereq: $(package/stamp-prereq) ;
|
||||
|
|
Loading…
Reference in a new issue