# 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-$(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 $@ $<

