openwrt/target/sdk/files/Makefile
Jo-Philipp Wich 4685e4f273 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
2015-01-10 11:17:02 +00:00

70 lines
1.4 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
SDK:=1
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)
override OPENWRT_BUILD=1
export OPENWRT_BUILD
empty:=
space:= $(empty) $(empty)
_SINGLE=export MAKEFLAGS=$(space);
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 package/Makefile
$(package/stamp-compile): $(BUILD_DIR)/.prepared
$(BUILD_DIR)/.prepared: Makefile
@mkdir -p $$(dirname $@)
@touch $@
clean: FORCE
git clean -f -d $(STAGING_DIR); true
git clean -f -d $(BUILD_DIR); true
git clean -f -d $(BIN_DIR); true
dirclean: clean
git reset --hard HEAD
git clean -f -d
rm -rf feeds/
# check prerequisites before starting to build
prereq: $(package/stamp-prereq) ;
world: prepare $(package/stamp-compile) FORCE
@$(MAKE) package/index
.PHONY: clean dirclean prereq prepare world
endif