1 ###################################################################
2 # toplevel makefile for contiki 2.x
4 # 2006/06/24 gpz - initial creation
7 # - add rules for other/more ports
8 # - add "dist-<target>" rules (for creating tarballs)
9 # - create checks for required tools and give hints on where
10 # to get certain missing stuff
11 # - incase certain targets fail, print a error summary when
12 # all targets are done
13 ###################################################################
15 # uncomment this for less verbose output
22 ###################################################################
23 # this first rule prints usage info when the make is invoked
24 # without any arguments
25 ###################################################################
30 -@
$(ECHO
) "usage: make <target(s)>\n\n"
31 -@
$(ECHO
) "available targets are:\n\n"
32 -@
$(ECHO
) "docs build the documentation\n"
33 -@
$(ECHO
) "gtk build full featured GTK port\n"
34 -@
$(ECHO
) "gtk-examples build examples with GTK port\n"
35 -@
$(ECHO
) "esb build full featured ESB port\n"
36 -@
$(ECHO
) "esb-examples build examples with ESB port\n"
37 -@
$(ECHO
) "minimal-net-examples build examples with minimal-net port\n"
38 -@
$(ECHO
) "native-examples build examples with native port\n"
39 -@
$(ECHO
) "all build everything\n"
40 -@
$(ECHO
) "clean cleanup the sourcetree\n"
41 -@
$(ECHO
) "\nfor more targets and other details look at this makefile.\n"
43 ###################################################################
44 # the "all" rule can be used to make a clean build from all and
45 # everything. you will need to have all kinds of support tools
46 # installed for this to work!
47 ###################################################################
49 .PHONY
: all dist examples
51 all: source-dist docs docs-dist examples c64 esb ethernut1 ethernut2 gtk minimal-net minimal-ppp native netsim
53 dist: source-dist docs-dist
55 examples
: c64-examples esb-examples ethernut1-examples ethernut2-examples gtk-examples minimal-net-examples minimal-ppp-examples native-examples netsim-examples
56 examples-clean
: c64-examples-clean esb-examples-clean ethernut1-examples-clean ethernut2-examples-clean gtk-examples-clean minimal-net-examples-clean minimal-ppp-examples-clean native-examples-clean netsim-examples-clean
58 ###################################################################
59 # general cleanup rule
60 ###################################################################
64 clean: docs-clean examples-clean c64-clean esb-clean ethernut1-clean ethernut2-clean gtk-clean minimal-net-clean minimal-ppp-clean native-clean netsim-clean
65 -@
$(ECHO
) "sourcetree cleaned up.\n"
67 ###################################################################
68 # rules for building the documentation
69 ###################################################################
71 .PHONY
: docs docs-clean docs-html docs-pdf docs-dist
73 docs
: docs-html docs-pdf
76 -@
$(CD
) doc
; $(MAKE
) dox
78 docs-html
: docs-doxygen
80 docs-pdf
: docs-doxygen
81 -@
$(CD
) doc
; $(MAKE
) pdf
84 -@
$(CD
) doc
; $(MAKE
) clean
88 ###################################################################
89 # rules for building the source distribution
90 ###################################################################
94 ###################################################################
95 # rules for the C64 port
96 ###################################################################
101 -@
$(CD
) platform
/c64
; $(MAKE
) all
104 -@
$(CD
) platform
/c64
; $(MAKE
) clean
108 c64-examples
: c64-example-webserver c64-example-telnet-server c64-example-test-ipv6
110 c64-example-telnet-server
:
111 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=c64
112 c64-example-webserver
:
113 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=c64
114 c64-example-test-ipv6
:
115 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=c64
118 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=c64
clean
119 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=c64
clean
120 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=c64
clean
122 ###################################################################
123 # rules for the ESB port
124 ###################################################################
126 .PHONY
: esb esb-clean
129 -@
$(CD
) platform
/esb
; $(MAKE
) all
132 -@
$(CD
) platform
/esb
; $(MAKE
) clean
139 ###################################################################
140 # rules for the ethernut1 port
141 ###################################################################
143 .PHONY
: ethernut1 ethernut1-clean
146 # -@$(CD) platform/ethernut1; $(MAKE) all
149 # -@$(CD) platform/ethernut1; $(MAKE) clean
154 ethernut1-examples-clean
:
156 ###################################################################
157 # rules for the ethernut2 port
158 ###################################################################
160 .PHONY
: ethernut2 ethernut2-clean
163 # -@$(CD) platform/ethernut2; $(MAKE) all
166 # -@$(CD) platform/ethernut2; $(MAKE) clean
171 ethernut2-examples-clean
:
173 ###################################################################
174 # rules for the GTK port
175 ###################################################################
177 .PHONY
: gtk gtk-clean
180 -@
$(CD
) platform
/gtk
; $(MAKE
) all
182 -@
$(CD
) platform
/gtk
; $(MAKE
) clean
184 gtk-examples
: gtk-example-webserver gtk-example-telnet-server gtk-example-test-ipv6
186 gtk-example-telnet-server
:
187 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=gtk
188 gtk-example-webserver
:
189 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=gtk
190 gtk-example-test-ipv6
:
191 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=gtk
194 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=gtk
clean
195 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=gtk
clean
196 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=gtk
clean
200 ###################################################################
201 # rules for the minimal-net port
202 ###################################################################
204 .PHONY
: minimal-net minimal-net-clean
207 # -@$(CD) platform/minimal-net; $(MAKE) all
210 # -@$(CD) platform/minimal-net; $(MAKE) clean
214 minimal-net-examples
: minimal-net-example-telnet-server minimal-net-example-webserver minimal-net-example-test-ipv6
216 minimal-net-example-telnet-server
:
217 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=minimal-net
218 minimal-net-example-webserver
:
219 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=minimal-net
220 minimal-net-example-test-ipv6
:
221 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=minimal-net
223 minimal-net-examples-clean
:
224 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=minimal-net
clean
225 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=minimal-net
clean
226 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=minimal-net
clean
228 ###################################################################
229 # rules for the minimal-ppp port
230 ###################################################################
232 .PHONY
: minimal-ppp minimal-ppp-clean
235 -@
$(CD
) platform
/minimal-ppp
; $(MAKE
) all
238 -@
$(CD
) platform
/minimal-ppp
; $(MAKE
) clean
242 minimal-ppp-examples
:
243 minimal-ppp-examples-clean
:
245 ###################################################################
246 # rules for the native port
247 ###################################################################
249 .PHONY
: native native-clean
252 # -@$(CD) platform/native; $(MAKE) all
255 # -@$(CD) platform/native; $(MAKE) clean
259 native-examples
: native-example-telnet-server native-example-webserver native-example-test-ipv6
261 native-example-telnet-server
:
262 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=native
263 native-example-webserver
:
264 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=native
265 native-example-test-ipv6
:
266 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=native
268 native-examples-clean
:
269 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=native
clean
270 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=native
clean
271 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=native
clean
273 ###################################################################
274 # rules for the netsim port
275 ###################################################################
277 .PHONY
: netsim netsim-clean
280 # -@$(CD) platform/netsim; $(MAKE) all
283 # -@$(CD) platform/netsim; $(MAKE) clean
289 netsim-examples-clean
:
290 -@
$(CD
) examples
/telnet-server
; $(MAKE
) TARGET
=netsim
clean
291 -@
$(CD
) examples
/webserver
; $(MAKE
) TARGET
=netsim
clean
292 -@
$(CD
) examples
/test-ipv6
; $(MAKE
) TARGET
=netsim
clean