#
#
#

top_srcdir = ../..
top_builddir = ../..
this_srcdir = ${top_srcdir}/lib

include ${top_builddir}/Make.rules

VERSION_SOLIB := 2.3
VERSION_SONAME := 2

vpath %.c ${this_srcdir}

LIBS :=
REENTRANT_CFLAGS := -D_REENTRANT
VERSIONED_LINK := yes

SHARED_NSSLIB := libnss_ncp.so
SHARED_NSSLIB_BIN := $(SHARED_NSSLIB).$(VERSION_SOLIB)
SHARED_NSSLIB_SONAME := $(SHARED_NSSLIB).$(VERSION_SONAME)

O_UTILS1 = test_ncp_nss.o\
           #
O_TMP1 =
UTILS1 = $(O_UTILS1:%.o=%)

CCFLAGS += -I.
PIC_FLAGS := -fPIC
NWCOMPAT := 1

SHARED_VLINK :=
SHARED_VLINK_CFLAGS :=
ifeq ($(VERSIONED_LINK),yes)
SHARED_VLINK := -Wl,-version-script=${this_srcdir}/libncp.vers
SHARED_VLINK_CFLAGS := -DMULTIVERSION
endif

ifeq ($(HAVE_ELF),yes)
NCP_LIB = libncp.so
NCPLIB_DIR = ../../lib
LIBDEP = $(NCPLIB_DIR)/$(NCP_LIB)
else
NCP_LIB = libncp.a
NCPLIB_DIR = ../../lib
LIBDEP = $(NCPLIB_DIR)/$(NCP_LIB)
endif

STATIC_BASE_OBJ := nss_ncp.o  nss_cfgfile.o
SHARED_BASE_OBJ := $(STATIC_BASE_OBJ:.o=.do)

SHARED_O_OBJ := $(SHARED_BASE_OBJ)

BASE_CFLAGS := -DHAVE_CONFIG_H -DMAKE_NCPLIB -D_GNU_SOURCE

SHARED_CFLAGS    := $(CFLAGS) $(CCFLAGS) $(REENTRANT_CFLAGS) $(PIC_FLAGS) $(SHARED_VLINK_CFLAGS)


.PHONY : all dep install install-dev clean mrproper distclean
.PHONY : install_shared install_static install_static_su

all:  $(SHARED_NSSLIB)  $(UTILS1)

install: install_shared

%.d: %.c  %h
	set -e; $(CC) -M $(STATIC_CFLAGS) $(CFLAGS_$(@:.d=.o)) $(BASE_CFLAGS) $< \
		| sed 's,\($*\)\.o[ :]*,\1.o \1.do \1.to $@ : ,g' > $@; \
		[ -s $@ ] || rm -f $@

$(STATIC_BASE_OBJ): %.o: %.c %.h
	$(CC) $(STATIC_CFLAGS) $(CFLAGS_$@) $(BASE_CFLAGS) -o $@ -c $<


$(SHARED_BASE_OBJ): %.do: %.c  %.h
	$(CC) $(SHARED_CFLAGS) $(CFLAGS_$(@:.do=.o)) $(BASE_CFLAGS) -o $@ -c $<


$(O_UTILS1) $(O_TMP1): %.o: %.c 
	$(CC) $(CCFLAGS) $(CFLAGS) $(CFLAGS_$@) -o $@ -c $<

$(UTILS1):: %: %.o $(O_TMP1) $(SHARED_NSSLIB)
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(OBJS_$@) -L. -lnss_ncp -L$(top_builddir)/lib -lncp $(LDFLAGS_$@)


dep:

clean:
	rm -f *.o *.do *.to $(SHARED_NSSLIB) $(SHARED_NSSLIB_BIN) $(UTILS1) *~

mrproper: clean
	rm -f $(UTILS) $(DISTFILE)

distclean: mrproper

install_shared: $(SHARED_NCPLIB_BIN)
	$(INSTALL) -d $(DESTDIR)$(libsodir)
	$(INSTALL) $(SHARED_NCPLIB_BIN) $(DESTDIR)$(libsodir)
	-ldconfig


$(SHARED_NSSLIB): $(SHARED_NSSLIB_SONAME)
	rm -f $@
	ln -sf $< $@

$(SHARED_NSSLIB_SONAME): $(SHARED_NSSLIB_BIN)
	ln -sf $< $@

$(SHARED_NSSLIB_BIN): $(SHARED_O_OBJ) ${this_srcdir}/libncp.vers
	$(CC) -shared -o $@ -Wl,-soname=$(SHARED_NSSLIB_SONAME) $(SHARED_VLINK) $(SHARED_O_OBJ)  -L$(NCPLIB_DIR) -lncp ${LIBS}



