From 136eedda8f5c1a77d80f3873cc169c3cab3bf06b Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Thu, 1 Apr 2021 18:25:39 +0000 Subject: [PATCH] ITS#7832 - Fix Makefile so that it installs into DESTDIR Tweak CRACKLIB linking so that it doesn't depend on gmake --- contrib/slapd-modules/ppm/Makefile | 84 ++++++++++++++++++------------ 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/contrib/slapd-modules/ppm/Makefile b/contrib/slapd-modules/ppm/Makefile index a5dfab4fee..0a90b530e3 100644 --- a/contrib/slapd-modules/ppm/Makefile +++ b/contrib/slapd-modules/ppm/Makefile @@ -1,15 +1,47 @@ -# contrib/slapd-modules/ppm/Makefile -# Copyright 2014 David Coutadeur, Paris. All Rights Reserved. +# $OpenLDAP$ +# Copyright 2014 David Coutadeur, Paris. +# All rights reserved. # +# Redistribution and use in source and binary forms, with or without +# modification, are permitted only as authorized by the OpenLDAP +# Public License. +# +# A copy of this license is available in the file LICENSE in the +# top-level directory of the distribution or, alternatively, at +# . -LDAP_SRC=../../.. -LDAP_BUILD=$(LDAP_SRC) -LDAP_INC=-I$(LDAP_SRC)/include \ - -I$(LDAP_SRC)/servers/slapd -LDAP_LIBS=-L$(LDAP_BUILD)/libraries/liblber/.libs \ - -L$(LDAP_BUILD)/libraries/libldap/.libs -LDAP_LIB=-lldap -llber -CRACK_LIB=-lcrack +LDAP_SRC = ../../.. +LDAP_BUILD = $(LDAP_SRC) +LDAP_INC = -I$(LDAP_BUILD)/include -I$(LDAP_SRC)/include -I$(LDAP_SRC)/servers/slapd +LDAP_LIB = $(LDAP_BUILD)/libraries/liblber/liblber.la $(LDAP_BUILD)/libraries/libldap/libldap.la + +LIBTOOL = $(LDAP_BUILD)/libtool +INSTALL = /usr/bin/install +CC = gcc +OPT = -g -O2 -Wall -fpic + +# To skip linking against CRACKLIB make CRACK=no +CRACK=yes +CRACKDEF_yes= -DCRACKLIB +CRACKDEF_no= + +CRACKLIB_yes= -lcrack +CRACKLIB_no= + +CRACKDEF=$(CRACKDEF_$(CRACK)) +CRACKLIB=$(CRACKLIB_$(CRACK)) + +DEFS = -DDEBUG $(CRACKDEF) +# Define if using a config file: +# -DCONFIG_FILE="\"$(etcdir)/$(EXAMPLE)\"" + +INCS = $(LDAP_INC) +LIBS = $(LDAP_LIB) + +PROGRAMS=ppm.so +LTVER = 0:0:0 + +LDAP_LIBS = -L$(LDAP_BUILD)/libraries/liblber/.libs -L$(LDAP_BUILD)/libraries/libldap/.libs -lldap -llber prefix=/usr/local exec_prefix=$(prefix) @@ -22,40 +54,28 @@ mandir = $(exec_prefix)/share/man man5dir = $(mandir)/man5 etcdir = $(exec_prefix)/etc$(ldap_subdir) -CC=gcc -INSTALL = /usr/bin/install -PROGRAMS=ppm.so TEST=ppm_test EXAMPLE=ppm.example TESTS=./unit_tests.sh -OPT=-g -O2 -Wall -fpic \ - -DCONFIG_FILE="\"$(etcdir)/$(EXAMPLE)\"" \ - -DCRACKLIB \ - -DDEBUG - -# don't link against cracklib if option -DCRACKLIB is not defined in OPT -ifeq (,$(findstring CRACKLIB,$(OPT))) - CRACK_LIB= -endif - - - all: ppm $(TEST) -$(TEST): - $(CC) -g $(LDAP_INC) $(LDAP_LIBS) -Wl,-rpath=. -o $(TEST) ppm_test.c $(PROGRAMS) $(LDAP_LIB) $(CRACK_LIB) +$(TEST): ppm + $(CC) -g $(INCS) $(LDAP_LIBS) -Wl,-rpath=. -o $(TEST) ppm_test.c $(PROGRAMS) $(LDAP_LIBS) $(CRACKLIB) ppm.o: - $(CC) $(OPT) -c $(LDAP_INC) ppm.c + $(CC) $(OPT) $(DEFS) -c $(INCS) ppm.c ppm: ppm.o - $(CC) $(LDAP_INC) -shared -o $(PROGRAMS) ppm.o $(CRACK_LIB) + $(CC) $(INCS) -shared -o $(PROGRAMS) ppm.o $(CRACKLIB) install: ppm - $(INSTALL) -m 644 $(PROGRAMS) $(libdir) - $(INSTALL) -m 755 $(TEST) $(libdir) - $(INSTALL) -m 644 $(EXAMPLE) $(etcdir)/ + mkdir -p $(DESTDIR)$(moduledir) + for p in $(PROGRAMS); do \ + $(LIBTOOL) --mode=install cp $$p $(DESTDIR)/$(moduledir) ; \ + done + $(INSTALL) -m 644 $(EXAMPLE) $(DESTDIR)$(etcdir)/ +# $(INSTALL) -m 755 $(TEST) $(libdir) .PHONY: clean