1# Makefile for busybox
2#
3# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
4#
5# Licensed under GPLv2, see file LICENSE in this source tree.
6
7obj-y :=
8obj-y += applets.o
9
10hostprogs-y:=
11hostprogs-y += usage usage_pod applet_tables
12
13always:= $(hostprogs-y)
14
15# Generated files need additional love
16
17# This trick decreases amount of rebuilds
18# if tree is merely renamed/copied
19ifeq ($(srctree),$(objtree))
20srctree_slash =
21else
22srctree_slash = $(srctree)/
23endif
24
25HOSTCFLAGS_usage.o = -I$(srctree_slash)include -Iinclude
26HOSTCFLAGS_usage_pod.o = -I$(srctree_slash)include -Iinclude
27
28applets/applets.o: include/usage_compressed.h include/applet_tables.h
29
30applets/applet_tables: .config include/applets.h
31applets/usage:         .config include/applets.h
32applets/usage_pod:     .config include/applets.h include/applet_tables.h
33
34quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
35      cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
36
37include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
38	$(call cmd,gen_usage_compressed)
39
40quiet_cmd_gen_applet_tables = GEN     include/applet_tables.h include/NUM_APPLETS.h
41      cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h
42
43include/NUM_APPLETS.h: applets/applet_tables
44	$(call cmd,gen_applet_tables)
45
46# In fact, include/applet_tables.h depends only on applets/applet_tables,
47# and is generated by it. But specifying only it can run
48# applets/applet_tables twice, possibly in parallel.
49# We say that it also needs NUM_APPLETS.h
50#
51# Unfortunately, we need to list the same command,
52# and it can be executed twice (sequentially).
53# The alternative is to not list any command,
54# and then if include/applet_tables.h is deleted, it won't be rebuilt.
55#
56include/applet_tables.h: include/NUM_APPLETS.h applets/applet_tables
57	$(call cmd,gen_applet_tables)
58