Backport build fixes from corosync.
 - Consistent use of PREFIX and DESTDIR
 - Allow the LCRSO directory to be specified manually
 - Fix installation on Darwin (cp does not support -a)
 - Fix generation of shared libraries on Darwin
 - Expose IPC functions to users of the shared libraries

diff -r b907692f6e1f -r 09edbef89566 Makefile
--- a/Makefile	Mon Jan 26 20:46:12 2009 +0000
+++ b/Makefile	Fri Feb 06 11:34:06 2009 +0100
@@ -29,30 +29,30 @@
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 # THE POSSIBILITY OF SUCH DAMAGE.
 
-DESTDIR=/usr/local
-SBINDIR=/usr/sbin
-INCLUDEDIR=/usr/include/openais
-INCLUDEDIR_TOTEM=/usr/include/openais/totem
-INCLUDEDIR_LCR=/usr/include/openais/lcr
-INCLUDEDIR_SERVICE=/usr/include/openais/service
-MANDIR=/usr/share/man
+include Makefile.inc
+
+SBINDIR=$(PREFIX)/sbin
+INCLUDEDIR=$(PREFIX)/include/openais
+INCLUDEDIR_TOTEM=$(PREFIX)/include/openais/totem
+INCLUDEDIR_LCR=$(PREFIX)/include/openais/lcr
+INCLUDEDIR_SERVICE=$(PREFIX)/include/openais/service
+MANDIR=$(PREFIX)/share/man
 ETCDIR=/etc/ais
-LCRSODIR=/usr/libexec/lcrso
 ARCH=$(shell uname -p)
 
 ifeq (,$(findstring 64,$(ARCH)))
-LIBDIR=/usr/lib/openais
+LIBDIR=$(PREFIX)/lib/openais
 else
-LIBDIR=/usr/lib64/openais
+LIBDIR=$(PREFIX)/lib64/openais
 endif
 ifeq (s390,$(ARCH))
-LIBDIR=/usr/lib/openais
+LIBDIR=$(PREFIX)/lib/openais
 endif
 ifeq (s390x,$(ARCH))
-LIBDIR=/usr/lib64/openais
+LIBDIR=$(PREFIX)/lib64/openais
 endif
 ifeq (ia64,$(ARCH))
-LIBDIR=/usr/lib/openais
+LIBDIR=$(PREFIX)/lib/openais
 endif
 
 all:
@@ -106,29 +106,29 @@ install:
 	ln -sf libcfg.so.2.0.0 lib/libcfg.so.2
 	ln -sf libtotem_pg.so.2.0.0 exec/libtotem_pg.so.2
 
-	cp -a lib/libais.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaAmf.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaClm.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaCkpt.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaEvt.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaLck.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaMsg.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libevs.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libcpg.so $(DESTDIR)$(LIBDIR)
-	cp -a lib/libcfg.so $(DESTDIR)$(LIBDIR)
-	cp -a exec/libtotem_pg.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libais.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaAmf.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaClm.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaCkpt.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaEvt.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaLck.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaMsg.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libevs.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libcpg.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libcfg.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a exec/libtotem_pg.so $(DESTDIR)$(LIBDIR)
 
-	cp -a lib/libais.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaAmf.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaClm.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaCkpt.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaEvt.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaLck.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libSaMsg.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libevs.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libcpg.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a lib/libcfg.so.2 $(DESTDIR)$(LIBDIR)
-	cp -a exec/libtotem_pg.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libais.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaAmf.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaClm.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaCkpt.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaEvt.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaLck.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libSaMsg.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libevs.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libcpg.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a lib/libcfg.so.2 $(DESTDIR)$(LIBDIR)
+	$(CP) -a exec/libtotem_pg.so.2 $(DESTDIR)$(LIBDIR)
 
 	install -m 755 lib/libais.so.2.* $(DESTDIR)$(LIBDIR)
 	install -m 755 lib/libSaAmf.so.2.* $(DESTDIR)$(LIBDIR)
@@ -158,7 +158,7 @@ ifneq "NO" "$(STATICLIBS)"
 	install -m 755 exec/libtotem_pg.a $(DESTDIR)$(LIBDIR)
 endif
 
-	echo $(LIBDIR) > $(DESTDIR)/etc/ld.so.conf.d/openais-$(ARCH).conf
+	echo $(LIBDIR) > "$(DESTDIR)/etc/ld.so.conf.d/openais-$(ARCH).conf"
 
 	install -m 755 exec/*lcrso $(DESTDIR)$(LCRSODIR)
 
diff -r b907692f6e1f -r 09edbef89566 Makefile.inc
--- a/Makefile.inc	Mon Jan 26 20:46:12 2009 +0000
+++ b/Makefile.inc	Fri Feb 06 11:34:06 2009 +0100
@@ -29,12 +29,17 @@
 # THE POSSIBILITY OF SUCH DAMAGE.
 # Basic OS detection
 #
+CP=cp
+DESTDIR=
+PREFIX=/usr/local
 UNAME=$(shell uname)
+LCRSODIR=$(PREFIX)/libexec/lcrso
 
 ifeq "$(UNAME)" "Linux"
 	OPENAIS_COMPAT=LINUX
 endif
 ifeq "$(UNAME)" "Darwin"
+	CP=rsync
 	OPENAIS_COMPAT=DARWIN
 endif
 ifneq "" "$(findstring BSD,$(UNAME))"
diff -r b907692f6e1f -r 09edbef89566 lcr/Makefile
--- a/lcr/Makefile	Mon Jan 26 20:46:12 2009 +0000
+++ b/lcr/Makefile	Fri Feb 06 11:34:06 2009 +0100
@@ -26,8 +26,8 @@
 #
 include ../Makefile.inc
 
-CFLAGS += -I../include
 override LDFLAGS += ${DYFLAGS}
+override CFLAGS  += -I../include -DLCRSODIR='"$(LCRSODIR)"'
 
 ifeq (${OPENAIS_COMPAT}, LINUX) 
 	LDFLAGS += -ldl
diff -r b907692f6e1f -r 09edbef89566 lcr/lcr_ifact.c
--- a/lcr/lcr_ifact.c	Mon Jan 26 20:46:12 2009 +0000
+++ b/lcr/lcr_ifact.c	Fri Feb 06 11:34:06 2009 +0100
@@ -174,7 +174,7 @@ static void defaults_path_build (void)
 		path_list[0] = strdup (cwd);
 		path_list_entries++;
 	}
-	path_list[path_list_entries++] = "/usr/libexec/lcrso";
+	path_list[path_list_entries++] = LCRSODIR;
 }
 
 static void ld_library_path_build (void)
diff -r b907692f6e1f -r 09edbef89566 lib/Makefile
--- a/lib/Makefile	Mon Jan 26 20:46:12 2009 +0000
+++ b/lib/Makefile	Fri Feb 06 11:34:06 2009 +0100
@@ -55,35 +55,37 @@ libSaClm.a: util.o clm.o
 
 ifeq (${OPENAIS_COMPAT}, DARWIN)
 
+DARWIN_OPTS=-dynamiclib -bind_at_load -current_version 2.0.0 -compatibility_version 2.0.0
+
 libSaClm.so.2.0.0: util.o clm.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o clm.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o clm.o -o $@
 
 libSaAmf.so.2.0.0: util.o amf.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o amf.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o amf.o -o $@
 
 libSaCkpt.so.2.0.0: util.o ckpt.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o ckpt.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o ckpt.o -o $@
 
 libSaEvt.so.2.0.0: util.o evt.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o evt.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o evt.o -o $@
 
 libSaLck.so.2.0.0: util.o lck.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o lck.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o lck.o -o $@
 
 libSaMsg.so.2.0.0: util.o msg.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o msg.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o msg.o -o $@
 
 libais.so.2.0.0: util.o amf.o clm.o ckpt.o evt.o lck.o msg.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o amf.o clm.o ckpt.o evt.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o amf.o clm.o ckpt.o evt.o -o $@
 
 libevs.so.2.0.0: util.o evs.o
-	$(CC) $(LDFLAGS) -bundle -bind_at_load util.o evs.o -o $@
+	$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o evs.o -o $@
 
 libcpg.so.2.0.0: util.o cpg.o
-	$(CC) -bundle -bind_at_load util.o cpg.o -o $@
+	$(CC) $(DARWIN_OPTS) util.o cpg.o -o $@
 
 libcfg.so.2.0.0: util.o cfg.o
-	$(CC) -bundle -bind_at_load util.o cfg.o -o $@
+	$(CC) $(DARWIN_OPTS) util.o cfg.o -o $@
 
 else
 
diff -r b907692f6e1f -r 09edbef89566 lib/libSaMsg.versions
--- a/lib/libSaMsg.versions	Mon Jan 26 20:46:12 2009 +0000
+++ b/lib/libSaMsg.versions	Fri Feb 06 11:34:06 2009 +0100
@@ -24,18 +24,18 @@ OPENAIS_MSG_B.01.01 {
 		saMsgMessageCancel;
 		saMsgMessageReply;
 		saMsgMessageReplyAsync;
+		saSendReceiveReply;
+		saServiceConnect;
+		saRecvRetry;
+		saSendMsgReceiveReply;
+		saSendMsgRetry;
+		saSendRetry;
 	local:
 		saHandleCreate;
 		saHandleDestroy;
 		saHandleInstanceGet;
 		saHandleInstancePut;
 		saPollRetry;
-		saRecvRetry;
-		saSendMsgReceiveReply;
-		saSendMsgRetry;
-		saSendReceiveReply;
-		saSendRetry;
-		saServiceConnect;
 		saVersionVerify;
 		clustTimeNow;
 };
