#
# $Id: Makefile,v 1.12 1996/07/07 23:54:28 morgan Exp $
#
# $Log: Makefile,v $
# Revision 1.12  1996/07/07 23:54:28  morgan
# edited to allow the additional pam_delay functions
#
# Revision 1.11  1996/06/02 08:51:00  morgan
# clean up properly
#
# Revision 1.10  1996/05/26 03:48:51  morgan
# many changes for static libpam/module support
#
#


LIBNAME=libpam
DEBUG = -DDEBUG
VERSION=.0
MODIFICATION=.50

# ---------------------------------------------

dummy:

	@echo "*** This is not a top-level Makefile!"

# ---------------------------------------------

CFLAGS += $(DYNAMIC) $(STATIC)

ifdef DYNAMIC_LIBPAM
LIBPAM = $(LIBNAME).so
LIBPAMNAME = $(LIBPAM)$(VERSION)
LIBPAMFULL = $(LIBPAMNAME)$(MODIFICATION)
endif

LIBPAMSTATIC = $(LIBNAME).a

ifdef STATIC
MODULES = $(shell cat ../modules/_static_module_objects)
STATICOBJ = pam_static.o
endif

EXTRAS = pam_delay.o

LIBOBJECTS = pam_item.o pam_strerror.o pam_end.o pam_start.o pam_data.o \
		pam_dispatch.o pam_handlers.o pam_misc.o pam_account.o \
		pam_auth.o pam_session.o pam_password.o \
		$(EXTRAS)

# ---------------------------------------------

all: $(LIBPAM) $(LIBPAMSTATIC)

ifdef DYNAMIC_LIBPAM
$(LIBPAM): $(LIBOBJECTS)  $(STATICOBJ)
	$(LD) -soname $(LIBPAMNAME) -x --shared -o $@ $(LIBOBJECTS)  \
		$(STATICOBJ) $(MODULES)
endif

$(LIBPAMSTATIC): $(LIBOBJECTS) $(STATICOBJ)
ifdef STATIC_LIBPAM
	$(AR) $@ $(LIBOBJECTS) $(STATICOBJ) $(MODULES)
	$(RANLIB) $@
endif

install: all
	mkdir -p $(INCLUDEDIR)
	install -m644 include/security/pam_appl.h $(INCLUDEDIR)
	install -m644 include/security/pam_modules.h $(INCLUDEDIR)
	install -m644 include/security/_pam_types.h $(INCLUDEDIR)
ifdef DYNAMIC_LIBPAM
	install -m644 $(LIBPAM) $(LIBDIR)/$(LIBPAMFULL)
	# $(LDCONFIG) $(LIBDIR)
	( cd $(LIBDIR) ; ln -sf $(LIBPAMNAME) $(LIBPAM) )
endif
ifdef STATIC_LIBPAM
	install -m644 $(LIBPAMSTATIC) $(LIBDIR)
endif

remove:
	rm -f $(INCLUDEDIR)/_pam_types.h
	rm -f $(INCLUDEDIR)/pam_appl.h
	rm -f $(INCLUDEDIR)/pam_modules.h
ifdef DYNAMIC_LIBPAM
	rm -f $(LIBDIR)/$(LIBPAM).*
	# $(LDCONFIG)
endif
	rm -f $(LIBDIR)/$(LIBPAMSTATIC)

clean:
	rm -f $(LIBOBJECTS) pam_static.o a.out core *~

extraclean:	

	@make clean
	rm -f *.a *.out *.o *.so ./include/security/*~

ifdef STATIC_LIBPAM
$(STATICOBJ): pam_static.c ../modules/_static_module_objects
	$(CC) $(CFLAGS) -c pam_static.c
endif
