# Makefile for uClibc
#
# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
#
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#

subdirs += libutil

CFLAGS-libutil := -DNOT_IN_libc -DIS_IN_libutil $(SSP_ALL_CFLAGS)

LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libutil.so := -Wl,--dsbt-index=8
LDFLAGS-libutil.so := $(LDFLAGS)

LIBS-libutil.so := $(LIBS)

libutil_FULL_NAME := libutil-$(VERSION).so

libutil_DIR := $(top_srcdir)libutil
libutil_OUT := $(top_builddir)libutil

libutil_SRC := $(wildcard $(libutil_DIR)/*.c)
ifneq ($(ARCH_USE_MMU),y)
libutil_SRC := $(filter-out $(libutil_DIR)/forkpty.c,$(libutil_SRC))
endif
ifneq ($(UCLIBC_HAS_PTY),y)
libutil_SRC := $(filter-out $(libutil_DIR)/openpty.c $(libutil_DIR)/forkpty.c \
		,$(libutil_SRC))
endif
ifeq ($(UCLIBC_HAS_UTMP)$(UCLIBC_HAS_UTMPX),)
libutil_SRC := $(filter-out \
	$(libutil_DIR)/logwtmp.c \
	$(libutil_DIR)/login.c \
	$(libutil_DIR)/logout.c \
		,$(libutil_SRC))
endif

libutil_OBJ := $(patsubst $(libutil_DIR)/%.c,$(libutil_OUT)/%.o,$(libutil_SRC))

ifeq ($(DOPIC),y)
libutil-a-y := $(libutil_OBJ:.o=.os)
else
libutil-a-y := $(libutil_OBJ)
endif
libutil-so-y := $(libutil_OBJ:.o=.os)

lib-a-$(UCLIBC_HAS_LIBUTIL) += $(top_builddir)lib/libutil.a
lib-so-$(UCLIBC_HAS_LIBUTIL) += $(top_builddir)lib/libutil.so
objclean-y += CLEAN_libutil

ifeq ($(DOMULTI),n)
ifeq ($(DOPIC),y)
$(top_builddir)lib/libutil.so: $(top_builddir)lib/libutil.a $(libc.depend)
else
$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil_so.a $(libc.depend)
endif
	$(call link.so,$(libutil_FULL_NAME),$(ABI_VERSION))
else
$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil.oS | $(libc.depend)
	$(call linkm.so,$(libutil_FULL_NAME),$(ABI_VERSION))
endif

$(libutil_OUT)/libutil_so.a: $(libutil-so-y)
	$(Q)$(RM) $@
	$(do_ar)

$(libutil_OUT)/libutil.oS: $(libutil_SRC)
	$(Q)$(RM) $@
	$(compile-m)

$(top_builddir)lib/libutil.a: $(libutil-a-y)
	$(Q)$(INSTALL) -d $(dir $@)
	$(Q)$(RM) $@
	$(do_ar)

CLEAN_libutil:
	$(do_rm) $(addprefix $(libutil_OUT)/*., o os oS a)
