# Makefile for busybox
#
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
#
# Licensed under GPLv2, see file LICENSE in this source tree.

obj-y :=
obj-y += applets.o

hostprogs-y:=
hostprogs-y += usage usage_pod applet_tables

always:= $(hostprogs-y)

# Generated files need additional love

# This trick decreases amount of rebuilds
# if tree is merely renamed/copied
ifeq ($(srctree),$(objtree))
srctree_slash =
else
srctree_slash = $(srctree)/
endif

HOSTCFLAGS_usage.o = -I$(srctree_slash)include -Iinclude
HOSTCFLAGS_usage_pod.o = -I$(srctree_slash)include -Iinclude

applets/applets.o: include/usage_compressed.h include/applet_tables.h

applets/applet_tables: .config include/applets.h
applets/usage:         .config include/applets.h
applets/usage_pod:     .config include/applet_tables.h include/applets.h

quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
      cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets

include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
	$(call cmd,gen_usage_compressed)

quiet_cmd_gen_applet_tables = GEN     include/applet_tables.h
      cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h

include/applet_tables.h: applets/applet_tables
	$(call cmd,gen_applet_tables)

include/NUM_APPLETS.h: applets/applet_tables
	$(call cmd,gen_applet_tables)
