#!/usr/bin/make -f
# Licensed under the terms of the GPLv2
# Guillaume Destuynder <kang@rsbac.org>

#
# Configuration

# See
# http://www.gnu.org/software/libtool/manual.html#Versioning
# For managing version information..
LIBVERSION	:= 2

INSTALL		:= install
LIBTOOL		:= libtool
CC		:= gcc
ECHO		:= $(shell which echo)
ifeq ($(ECHO),)
ECHO		:= echo
endif

DESTDIR		:= 
PREFIX		:= /usr/local
ifeq ($(DIR_NSS),)
LIBDIR		:= $(PREFIX)/lib
else
LIBDIR		:= $(DIR_NSS)
endif

CFLAGS		:= -O2 -fomit-frame-pointer
CFLAGS		+= -I../headers -I/usr/include -I/usr/local/include \
		   -I$(PREFIX)/include
LDFLAGS		:=

LIBS		:= -L../libs -L../libs/.libs -L$(PREFIX)/lib -lrsbac

FILES_NSS	:= $(wildcard *.c)

NSS_LIB		:= libnss_rsbac.la

QUIET		:= > /dev/null

DVERSION	:= 1.0.0

DPACKAGE	:= libnss-rsbac

DEFINES		:= -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"$(DPACKAGE)\" -DVERSION=\"$(DVERSION)\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NSS_H=1 -DHAVE_LIBRSBAC=1 -DHAVE_DLFCN_H=1 -I. -I. -DLIBDIR=\"$(LIBDIR)\" -DSYSCONFDIR=\"$(PREFIX)etc\" -D_GNU_SOURCE

#
# Nice make. Use make VERBOSE=1 to verbose compilation.
#
ifneq ($(VERBOSE), 1)
.SILENT:
E = @$(ECHO) -e " "
else
QUIET = 
E = @:
endif

#
# Targets
#

all: $(NSS_LIB)

$(NSS_LIB): $(FILES_NSS)
	$(E) "CC\t\t$(FILES_NSS)"
	$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(LDFLAGS) $(DEFINES) -c $< $(QUIET)
	$(E) "LD\t\t$(NSS_LIB)"
	$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(DEFINES) $(LIBS) \
	-o $@ $(FILES_NSS:.c=.lo) -rpath $(LIBDIR) -version-info $(LIBVERSION) \
	$(QUIET)

clean:
	$(E) "CLEAN\t\tinterface.o"
	rm -f interface.o $(FILES_NSS:.c=.o)
	$(E) "CLEAN\t\tinterface.lo"
	rm -f interface.lo

distclean: clean
	$(E) "CLEAN\t\t$(NSS_LIB)"
	rm -f $(NSS_LIB)
	rm -f $(SNSS_LIB) libnss_rsbac.so libnss_rsbac.so.2
	$(E) "CLEAN\t\tlibtool files"
	rm -rf .libs .deps

install: $(NSS_LIB)
	$(E) "INTO\t\t$(DESTDIR) ($(PREFIX))"
	$(E) "DIR\t\t$(LIBDIR)"
	$(INSTALL) -d $(DESTDIR)/$(LIBDIR) $(QUIET)
	$(E) "INSTALL\t$(NSS_LIB)"
	$(LIBTOOL) --mode=install install -c $(NSS_LIB) \
	$(DESTDIR)/$(LIBDIR) $(QUIET)
	$(E) "INSTALL\t$(NSS_LIB)"
	$(LIBTOOL) -n --mode=finish $(DESTDIR)/$(LIBDIR) $(QUIET)

uninstall:
	$(E) "UNINSTALL\t $(LIBDIR)/$(NSS_LIB)"
	$(LIBTOOL) --mode=uninstall rm \
	$(DESTDIR)/$(LIBDIR)/$(NSS_LIB) $(QUIET)


.PHONY: all clean distclean
