Author: jow Date: 2015-01-10 12:17:02 +0100 (Sat, 10 Jan 2015) New Revision: 43904
Modified: trunk/include/toplevel.mk trunk/target/sdk/files/Makefile Log: 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 <[email protected]> Modified: trunk/include/toplevel.mk =================================================================== --- trunk/include/toplevel.mk 2015-01-09 20:15:03 UTC (rev 43903) +++ trunk/include/toplevel.mk 2015-01-10 11:17:02 UTC (rev 43904) @@ -135,7 +135,7 @@ 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 || { \ Modified: trunk/target/sdk/files/Makefile =================================================================== --- trunk/target/sdk/files/Makefile 2015-01-09 20:15:03 UTC (rev 43903) +++ trunk/target/sdk/files/Makefile 2015-01-10 11:17:02 UTC (rev 43904) @@ -14,6 +14,16 @@ 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 @@ $(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) ; _______________________________________________ openwrt-commits mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits
