# 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.

MISCUTILS_AR:=miscutils.a
ifndef $(MISCUTILS_DIR)
MISCUTILS_DIR:=$(top_builddir)/miscutils/
endif
srcdir=$(top_srcdir)/miscutils

MISCUTILS-y:=
MISCUTILS-$(CONFIG_ADJTIMEX)    += adjtimex.o
MISCUTILS-$(CONFIG_CROND)       += crond.o
MISCUTILS-$(CONFIG_CRONTAB)     += crontab.o
MISCUTILS-$(CONFIG_BBCONFIG)    += bbconfig.o
MISCUTILS-$(CONFIG_DC)          += dc.o
MISCUTILS-$(CONFIG_DEVFSD)      += devfsd.o
MISCUTILS-$(CONFIG_EJECT)       += eject.o
MISCUTILS-$(CONFIG_HDPARM)      += hdparm.o
MISCUTILS-$(CONFIG_LAST)        += last.o
MISCUTILS-${CONFIG_LESS}        += less.o
MISCUTILS-$(CONFIG_MAKEDEVS)    += makedevs.o
MISCUTILS-$(CONFIG_MOUNTPOINT)  += mountpoint.o
MISCUTILS-$(CONFIG_MT)          += mt.o
MISCUTILS-$(BB_APPLET_RUNLEVEL) += runlevel.o
MISCUTILS-$(CONFIG_RX)          += rx.o
MISCUTILS-$(CONFIG_SETSID)      += setsid.o
MISCUTILS-$(CONFIG_STRINGS)     += strings.o
MISCUTILS-$(CONFIG_TIME)        += time.o
MISCUTILS-$(CONFIG_WATCHDOG)    += watchdog.o

libraries-y+=$(MISCUTILS_DIR)$(MISCUTILS_AR)

needlibm-y:=
needlibm-$(CONFIG_DC) := y

ifeq ($(needlibm-y),y)
  LIBRARIES += -lm
endif

$(MISCUTILS_DIR)$(MISCUTILS_AR): $(patsubst %,$(MISCUTILS_DIR)%, $(MISCUTILS-y))
	$(AR) $(ARFLAGS) $@ $(patsubst %,$(MISCUTILS_DIR)%, $(MISCUTILS-y))

$(MISCUTILS_DIR)%.o: $(srcdir)/%.c
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<

