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

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

# Generated file needs additional love

applets/applets.o: include/usage_compressed.h

hostprogs-y += usage
always := $(hostprogs-y)
HOSTCFLAGS_usage.o = -I$(srctree)/include

quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
      cmd_gen_usage_compressed = $(srctree)/applets/usage_compressed include/usage_compressed.h applets
include/usage_compressed.h: $(srctree)/include/usage.h applets/usage
	$(call cmd,gen_usage_compressed)
