sdk: track files with git and use it to implement proper clean targets
[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