$NetBSD$

--- libpamc/Makefile.orig	2001-02-10 07:17:53.000000000 +0000
+++ libpamc/Makefile
@@ -15,7 +15,7 @@ endif
 VERSION=.$(MAJOR_REL)
 MODIFICATION=.$(MINOR_REL)
 
-CFLAGS += $(MOREFLAGS) $(DYNAMIC) $(STATIC)
+CFLAGS += $(MOREFLAGS) $(DYNAMIC) $(STATIC) $(LTCFLAGS)
 
 # dynamic library names
 
@@ -27,6 +27,10 @@ LIBNAMEDFULL = $(LIBNAMEDNAME)$(MODIFICA
 
 LIBNAMEDSTATIC = $(LIBNAME).a
 
+# libtool library name
+
+LIBNAMEDLIBTOOL = $(LIBNAME).la
+
 LIBOBJECTS = pamc_client.o pamc_converse.o pamc_load.o
 
 ifeq ($(DYNAMIC_LIBPAM),yes)
@@ -37,10 +41,24 @@ ifeq ($(STATIC_LIBPAM),yes)
 SLIBOBJECTS = $(addprefix static/,$(LIBOBJECTS))
 endif
 
+ifeq ($(LIBTOOL_LIBPAM),yes)
+LALIBOBJECTS = $(LIBOBJECTS:.o=.lo)
+endif
+
 # ---------------------------------------------
 ## rules
 
-all: dirs $(LIBNAMED) $(LIBNAMEDSTATIC)
+ifeq ($(DYNAMIC_LIBPAM),yes)
+LIBS_TO_BUILD+=	$(LIBNAMED)
+endif
+ifeq ($(STATIC_LIBPAM),yes)
+LIBS_TO_BUILD+=	$(LIBNAMEDSTATIC)
+endif
+ifeq ($(LIBTOOL_LIBPAM),yes)
+LIBS_TO_BUILD+=	$(LIBNAMEDLIBTOOL)
+endif
+
+all: dirs $(LIBS_TO_BUILD)
 
 dirs:
 ifeq ($(DYNAMIC_LIBPAM),yes)
@@ -56,6 +74,9 @@ dynamic/%.o : %.c
 static/%.o : %.c
 	$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
 
+%.lo : %.c
+	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $<
+
 $(LIBNAMED): $(DLIBOBJECTS)
 ifeq ($(DYNAMIC_LIBPAM),yes)
     ifeq ($(USESONAME),yes)
@@ -77,9 +98,30 @@ ifeq ($(STATIC_LIBPAM),yes)
 	$(RANLIB) $@
 endif
 
-install: all
+$(LIBNAMEDLIBTOOL): $(LALIBOBJECTS)
+ifeq ($(LIBTOOL_LIBPAM),yes)
+	$(LIBTOOL) --tag=CC --mode=link $(CC) $(LDFLAGS) $(LALIBOBJECTS) -o $@ \
+		$(MODULES) $(LINKLIBS) \
+		-rpath $(libdir) -version-info $(MAJOR_REL):$(MINOR_REL)
+endif
+
+install: all install-headers
+
+ifeq ($(DYNAMIC_LIBPAM),yes)
+install: install-dynamic
+endif
+ifeq ($(STATIC_LIBPAM),yes)
+install: install-static
+endif
+ifeq ($(LIBTOOL_LIBPAM),yes)
+install: install-libtool
+endif
+
+install-headers:
 	$(MKDIR) $(FAKEROOT)$(INCLUDED)
 	$(INSTALL) -m 644 include/security/pam_client.h $(FAKEROOT)$(INCLUDED)
+
+install-dynamic:
 ifeq ($(DYNAMIC_LIBPAM),yes)
 	$(MKDIR) $(FAKEROOT)$(libdir)
 	$(INSTALL) -m $(SHLIBMODE) $(LIBNAMED) $(FAKEROOT)$(libdir)/$(LIBNAMEDFULL)
@@ -88,20 +130,30 @@ ifeq ($(DYNAMIC_LIBPAM),yes)
 	( cd $(FAKEROOT)$(libdir) ; rm -f $(LIBNAMED) ; ln -s $(LIBNAMEDNAME) $(LIBNAMED) )
   endif
 endif
+
+install-static:
 ifeq ($(STATIC_LIBPAM),yes)
 	$(INSTALL) -m 644 $(LIBNAMEDSTATIC) $(FAKEROOT)$(libdir)
 endif
 
+install-libtool:
+ifeq ($(LIBTOOL_LIBPAM),yes)
+	$(LIBTOOL) --mode=install $(INSTALL) -c $(LIBNAMEDLIBTOOL) $(FAKEROOT)$(libdir)
+endif
+
 remove:
 	rm -f $(FAKEROOT)$(INCLUDED)/pam_client.h
 	rm -f $(FAKEROOT)$(libdir)/$(LIBNAMEDFULL)
 	rm -f $(FAKEROOT)$(libdir)/$(LIBNAMED)
 	$(LDCONFIG)
 	rm -f $(FAKEROOT)$(libdir)/$(LIBNAMEDSTATIC)
+ifeq ($(LIBTOOL_LIBPAM),yes)
+	$(LIBTOOL) --mode=uninstall rm $(FAKEROOT)$(libdir)/$(LIBNAMEDLIBTOOL)
+endif
 
 clean:
 	rm -f a.out core *~ static/*.o dynamic/*.o
-	rm -f *.a *.out *.o *.so ./include/security/*~
+	rm -f *.a *.la *.lo *.out *.o *.so .libs/* ./include/security/*~
 	if [ -d dynamic ]; then rmdir dynamic ; fi
 	if [ -d static ]; then rmdir static ; fi
-
+	if [ -d .libs ]; then rmdir .libs ; fi
