pkgsrc/security/PAM/patches/patch-af
jlam c28d2d2a48 Fix brokenness I introduced in the conversion of security/PAM to use
libtool: the PAM libraries weren't being built with -DPAM_DYNAMIC, which
made it impossible to dlopen PAM modules.

Bump PKGREVISION.
2004-11-19 14:54:55 +00:00

125 lines
3.2 KiB
Text

$NetBSD: patch-af,v 1.5 2004/11/19 14:54:55 jlam Exp $
--- libpamc/Makefile.orig 2001-02-10 02:17:53.000000000 -0500
+++ 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) --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) --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