sdk: track files with git and use it to implement proper clean targets
[openwrt/openwrt.git] / target / sdk / files / Makefile
1 # Makefile for OpenWrt
2 #
3 # Copyright (C) 2007 OpenWrt.org
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 TOPDIR:=${CURDIR}
10 LC_ALL:=C
11 LANG:=C
12 SDK:=1
13 export TOPDIR LC_ALL LANG SDK
14
15 world:
16
17 # Initialize SDK snapshot
18 .git/config:
19 @( \
20 echo -n "Initializing SDK ... "; \
21 git init -q .; \
22 find . -mindepth 1 -maxdepth 1 -not -name feeds | xargs git add; \
23 git commit -q -m "Initial state"; \
24 echo "ok."; \
25 )
26
27 include $(TOPDIR)/include/host.mk
28
29 ifneq ($(OPENWRT_BUILD),1)
30 override OPENWRT_BUILD=1
31 export OPENWRT_BUILD
32
33 empty:=
34 space:= $(empty) $(empty)
35 _SINGLE=export MAKEFLAGS=$(space);
36
37 include $(TOPDIR)/include/debug.mk
38 include $(TOPDIR)/include/depends.mk
39 include $(TOPDIR)/include/toplevel.mk
40 else
41 include rules.mk
42 include $(INCLUDE_DIR)/depends.mk
43 include $(INCLUDE_DIR)/subdir.mk
44 include package/Makefile
45
46 $(package/stamp-compile): $(BUILD_DIR)/.prepared
47 $(BUILD_DIR)/.prepared: Makefile
48 @mkdir -p $$(dirname $@)
49 @touch $@
50
51 clean: FORCE
52 git clean -f -d $(STAGING_DIR); true
53 git clean -f -d $(BUILD_DIR); true
54 git clean -f -d $(BIN_DIR); true
55
56 dirclean: clean
57 git reset --hard HEAD
58 git clean -f -d
59 rm -rf feeds/
60
61 # check prerequisites before starting to build
62 prereq: $(package/stamp-prereq) ;
63
64 world: prepare $(package/stamp-compile) FORCE
65 @$(MAKE) package/index
66
67 .PHONY: clean dirclean prereq prepare world
68
69 endif