# 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

hostprogs-y:=
hostprogs-y += usage

always:= $(hostprogs-y)

# Generated files need additional love

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

HOSTCFLAGS_usage.o = -I$(srctree)/include

applets/applets.o:          include/usage_compressed.h
applets/usage:              .config $(srctree)/applets/usage_compressed
include/usage_compressed.h: applets/usage $(srctree)/applets/usage_compressed
	$(call cmd,gen_usage_compressed)
