some bugfixes and additions for the default compile target
[openwrt.git] / Makefile
1 # Makefile for OpenWrt
2 #
3 # Copyright (C) 2006 by Felix Fietkau <openwrt@nbd.name>
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #
19
20 RELEASE:=Kamikaze
21 #VERSION:=2.0 # uncomment for final release
22
23 #--------------------------------------------------------------
24 # Just run 'make menuconfig', configure stuff, then run 'make'.
25 # You shouldn't need to mess with anything beyond this point...
26 #--------------------------------------------------------------
27 TOPDIR=${shell pwd}
28 export TOPDIR
29
30 OPENWRTVERSION:=$(RELEASE)
31 ifneq ($(VERSION),)
32 OPENWRTVERSION:=$(VERSION) ($(OPENWRTVERSION))
33 else
34 REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
35 ifneq ($(REV),)
36 OPENWRTVERSION:=$(OPENWRTVERSION)/r$(REV)
37 endif
38 endif
39 export OPENWRTVERSION
40
41 all: world
42
43 .pkginfo: FORCE
44 ifneq ($(shell ./scripts/timestamp.pl -p .pkginfo package Makefile),.pkginfo)
45 @echo Collecting package info...
46 @-for dir in package/*/; do \
47 echo Source-Makefile: $${dir}Makefile; \
48 $(MAKE) --no-print-dir DUMP=1 -C $$dir 2>&- || true; \
49 done > $@
50 endif
51
52 .config.in: .pkginfo
53 ./scripts/gen_menuconfig.pl < $< > $@ || rm -f $@
54
55 pkginfo-clean: FORCE
56 -rm -f .pkginfo .config.in
57
58 scripts/config/mconf: .config.in
59 $(MAKE) -C scripts/config all
60
61 scripts/config/conf: .config.in
62 $(MAKE) -C scripts/config conf
63
64 config: scripts/config/conf FORCE
65 $< Config.in
66
67 defdconfig: scripts/config/conf FORCE
68 $< -d Config.in
69
70 oldconfig: scripts/config/conf FORCE
71 $< -o Config.in
72
73 menuconfig: scripts/config/mconf FORCE
74 $< Config.in
75
76 config-clean: FORCE
77 $(MAKE) -C scripts/config clean
78
79 package/%: .pkginfo FORCE
80 $(MAKE) -C package $(patsubst package/%,%,$@)
81
82 target/%: .pkginfo FORCE
83 $(MAKE) -C target $(patsubst target/%,%,$@)
84
85 toolchain/%: FORCE
86 $(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
87
88 world: FORCE
89 $(MAKE) toolchain/install
90 $(MAKE) target/compile
91 $(MAKE) package/compile
92 $(MAKE) package/install
93 $(MAKE) target/install
94
95 clean: FORCE
96 rm -rf build_* bin
97
98 dirclean: clean FORCE
99 rm -rf staging_dir_* toolchain_build_*
100
101 distclean: dirclean FORCE
102 rm -rf .* dl
103
104 .PHONY: FORCE
105 FORCE:
This page took 0.054728 seconds and 5 git commands to generate.