Explorar el Código

Makefile system improvements from Angus Salkeld

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1456 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake hace 18 años
padre
commit
b6071cc4c0
Se han modificado 6 ficheros con 130 adiciones y 84 borrados
  1. 85 43
      Makefile
  2. 3 0
      Makefile.inc
  3. 25 24
      exec/Makefile
  4. 2 2
      lcr/Makefile
  5. 14 14
      lib/Makefile
  6. 1 1
      test/Makefile

+ 85 - 43
Makefile

@@ -29,7 +29,14 @@
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 # THE POSSIBILITY OF SUCH DAMAGE.
 # THE POSSIBILITY OF SUCH DAMAGE.
 
 
-include Makefile.inc
+builddir:=$(shell pwd)/
+ifneq ($(O),)
+# cleanup the path (make it absolute)
+builddir:=$(abspath $(O))/
+endif
+srcdir:=$(dir $(realpath $(MAKEFILE_LIST)))
+
+include $(srcdir)/Makefile.inc
 
 
 SBINDIR=$(PREFIX)/sbin
 SBINDIR=$(PREFIX)/sbin
 INCLUDEDIR=$(PREFIX)/include/openais
 INCLUDEDIR=$(PREFIX)/include/openais
@@ -56,18 +63,53 @@ ifeq (ia64,$(ARCH))
 LIBDIR=$(PREFIX)/lib/openais
 LIBDIR=$(PREFIX)/lib/openais
 endif
 endif
 
 
-all:
-	(cd lcr; echo ==== `pwd` ===; $(MAKE) all);
-	(cd lib; echo ==== `pwd` ===; $(MAKE) all);
-	(cd exec; echo ==== `pwd` ===; $(MAKE) all);
-	(cd test; echo ==== `pwd` ===; $(MAKE) all);
+SUBDIRS:=$(builddir)lcr $(builddir)lib $(builddir)exec $(builddir)test
+sub_make = srcdir=$(srcdir) builddir=$(builddir) subdir=$(1)/ $(MAKE) -I$(srcdir)$(1) -f $(srcdir)$(1)/Makefile $(2)
+
+all: $(SUBDIRS)
+	@(cd $(builddir)lcr; echo ==== `pwd` ===;  $(call sub_make,lcr,all));
+	@(cd $(builddir)lib; echo ==== `pwd` ===;  $(call sub_make,lib,all));
+	@(cd $(builddir)exec; echo ==== `pwd` ===; $(call sub_make,exec,all));
+	@(cd $(builddir)test; echo ==== `pwd` ===; $(call sub_make,test,all));
+
+# subdirs are not phony
+.PHONY: all clean install doxygen
+
+$(builddir):
+	mkdir -p $@
+
+$(SUBDIRS):
+	mkdir -p $@
+
+help:
+	@echo 
+	@echo "Requirements: GCC, LD, and a Linux 2.4/2.6 kernel."
+	@echo "Tested on:"
+	@echo " Debian Sarge(i386), Redhat 9(i386), Fedora Core 2(i386), Fedora Core"
+	@echo " 4(i386,x86_64), SOLARIS, MontaVista Carrier Grade Edition 3.1(i386, x86_64,"
+	@echo " classic ppc, ppc970, xscale) and buildroot/uclibc(ppc e500/603e)"
+	@echo 
+	@echo Targets:
+	@echo "  all     - build all targets"
+	@echo "  install - install openais onto your system"
+	@echo "  clean   - remove generated files"
+	@echo "  doxygen - doxygen html docs"
+	@echo 
+	@echo "Options: (* - default)"
+	@echo "  OPENAIS         [DEBUG/RELEASE*] - Enable/Disable debug symbols"
+	@echo "  DESTDIR         [directory]      - Install prefix."
+	@echo "  O               [directory]      - Locate all output files in \"dir\"."
+	@echo "  BUILD_DYNAMIC   [1*/0]           - Enable/disable dynamic loading of service handler modules"
+	@echo "  OPENAIS_PROFILE [1/0*]           - Enable profiling"
+	@echo 
+ 
 
 
 clean:
 clean:
-	(cd lcr; echo ==== `pwd` ===; $(MAKE) clean);
-	(cd lib; echo ==== `pwd` ===; $(MAKE) clean);
-	(cd exec; echo ==== `pwd` ===; $(MAKE) clean);
-	(cd test; echo ==== `pwd` ===; $(MAKE) clean);
-	rm -rf doc/api
+	(cd $(builddir)lcr; echo ==== `pwd` ===; $(call sub_make,lcr,clean));
+	(cd $(builddir)lib; echo ==== `pwd` ===; $(call sub_make,lib,clean));
+	(cd $(builddir)exec; echo ==== `pwd` ===; $(call sub_make,exec,clean));
+	(cd $(builddir)test; echo ==== `pwd` ===; $(call sub_make,test,clean));
+	rm -rf $(builddir)doc/api
 
 
 AIS_LIBS	= ais SaAmf SaClm SaCkpt SaEvt SaLck SaMsg evs cpg \
 AIS_LIBS	= ais SaAmf SaClm SaCkpt SaEvt SaLck SaMsg evs cpg \
 		  cfg aisutil
 		  cfg aisutil
@@ -91,20 +133,20 @@ install: all
 	mkdir -p $(DESTDIR)$(ETCDIR)/ld.so.conf.d
 	mkdir -p $(DESTDIR)$(ETCDIR)/ld.so.conf.d
 
 
 
 
-	ln -sf libtotem_pg.so.2.0.0 exec/libtotem_pg.so
-	ln -sf libtotem_pg.so.2.0.0 exec/libtotem_pg.so.2
-	$(CP) -a exec/libtotem_pg.so $(DESTDIR)$(LIBDIR)
-	$(CP) -a exec/libtotem_pg.so.2 $(DESTDIR)$(LIBDIR)
-	install -m 755 exec/libtotem_pg.so.2.* $(DESTDIR)$(LIBDIR)
+	ln -sf $(builddir)libtotem_pg.so.2.0.0 $(builddir)exec/libtotem_pg.so
+	ln -sf $(builddir)libtotem_pg.so.2.0.0 $(builddir)exec/libtotem_pg.so.2
+	$(CP) -a $(builddir)exec/libtotem_pg.so $(DESTDIR)$(LIBDIR)
+	$(CP) -a $(builddir)exec/libtotem_pg.so.2 $(DESTDIR)$(LIBDIR)
+	install -m 755 $(builddir)exec/libtotem_pg.so.2.* $(DESTDIR)$(LIBDIR)
 
 
 	for aLib in $(AIS_LIBS); do					\
 	for aLib in $(AIS_LIBS); do					\
-	    ln -sf lib$$aLib.so.2.0.0 lib/lib$$aLib.so;			\
-	    ln -sf lib$$aLib.so.2.0.0 lib/lib$$aLib.so.2;		\
-	    $(CP) -a lib/lib$$aLib.so $(DESTDIR)$(LIBDIR);		\
-	    $(CP) -a lib/lib$$aLib.so.2 $(DESTDIR)$(LIBDIR);		\
+	    ln -sf $(builddir)lib$$aLib.so.2.0.0 lib/lib$$aLib.so;			\
+	    ln -sf $(builddir)lib$$aLib.so.2.0.0 lib/lib$$aLib.so.2;		\
+	    $(CP) -a $(builddir)lib/lib$$aLib.so $(DESTDIR)$(LIBDIR);		\
+	    $(CP) -a $(builddir)lib/lib$$aLib.so.2 $(DESTDIR)$(LIBDIR);		\
 	    install -m 755 lib/lib$$aLib.so.2.* $(DESTDIR)$(LIBDIR);	\
 	    install -m 755 lib/lib$$aLib.so.2.* $(DESTDIR)$(LIBDIR);	\
 	    if [ "xNO" = "x$(STATICLIBS)" ]; then			\
 	    if [ "xNO" = "x$(STATICLIBS)" ]; then			\
-	        install -m 755 lib/lib$$aLib.a $(DESTDIR)$(LIBDIR);	\
+	        install -m 755 $(builddir)lib/lib$$aLib.a $(DESTDIR)$(LIBDIR);	\
 		if [ ${OPENAIS_COMPAT} = "DARWIN" ]; then		\
 		if [ ${OPENAIS_COMPAT} = "DARWIN" ]; then		\
 		    ranlib $(DESTDIR)$(LIBDIR)/lib$$aLib.a;		\
 		    ranlib $(DESTDIR)$(LIBDIR)/lib$$aLib.a;		\
 	        fi							\
 	        fi							\
@@ -113,37 +155,37 @@ install: all
 
 
 	echo $(LIBDIR) > $(DESTDIR)$(ETCDIR)/ld.so.conf.d/openais-$(ARCH).conf
 	echo $(LIBDIR) > $(DESTDIR)$(ETCDIR)/ld.so.conf.d/openais-$(ARCH).conf
 
 
-	install -m 755 exec/*lcrso $(DESTDIR)$(LCRSODIR)
-	install -m 755 exec/aisexec $(DESTDIR)$(SBINDIR)
-	install -m 700 exec/keygen $(DESTDIR)$(SBINDIR)/ais-keygen
+	install -m 755 $(builddir)exec/*lcrso $(DESTDIR)$(LCRSODIR)
+	install -m 755 $(builddir)exec/aisexec $(DESTDIR)$(SBINDIR)
+	install -m 700 $(builddir)exec/keygen $(DESTDIR)$(SBINDIR)/ais-keygen
 
 
 	if [ ! -f $(DESTDIR)$(ETCDIR)/ais/openais.conf ] ; then 	   \
 	if [ ! -f $(DESTDIR)$(ETCDIR)/ais/openais.conf ] ; then 	   \
-		install -m 644 conf/openais.conf $(DESTDIR)$(ETCDIR)/ais ; \
+		install -m 644 $(srcdir)conf/openais.conf $(DESTDIR)$(ETCDIR)/ais ; \
 	fi
 	fi
 	if [ ! -f $(DESTDIR)$(ETCDIR)/ais/amf.conf ] ; then 		\
 	if [ ! -f $(DESTDIR)$(ETCDIR)/ais/amf.conf ] ; then 		\
-		install -m 644 conf/amf.conf $(DESTDIR)$(ETCDIR)/ais ;	\
+		install -m 644 $(srcdir)conf/amf.conf $(DESTDIR)$(ETCDIR)/ais ;	\
 	fi
 	fi
 
 
 	for aHeader in $(AIS_HEADERS); do				\
 	for aHeader in $(AIS_HEADERS); do				\
-	    install -m 644 include/$$aHeader $(DESTDIR)$(INCLUDEDIR);	\
+	    install -m 644 $(srcdir)include/$$aHeader $(DESTDIR)$(INCLUDEDIR);	\
 	done
 	done
 
 
-	install -m 644 exec/aispoll.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
-	install -m 644 exec/totempg.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
-	install -m 644 exec/totem.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
-	install -m 644 exec/totemip.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
-	install -m 644 lcr/lcr_ckpt.h $(DESTDIR)$(INCLUDEDIR_LCR)
-	install -m 644 lcr/lcr_comp.h $(DESTDIR)$(INCLUDEDIR_LCR)
-	install -m 644 lcr/lcr_ifact.h $(DESTDIR)$(INCLUDEDIR_LCR)
-	install -m 644 exec/service.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 exec/timer.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 exec/objdb.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 exec/logsys.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 exec/config.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 include/swab.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 man/*.3 $(DESTDIR)$(MANDIR)/man3
-	install -m 644 man/*.5 $(DESTDIR)$(MANDIR)/man5
-	install -m 644 man/*.8 $(DESTDIR)$(MANDIR)/man8
+	install -m 644 $(srcdir)exec/aispoll.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
+	install -m 644 $(srcdir)exec/totempg.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
+	install -m 644 $(srcdir)exec/totem.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
+	install -m 644 $(srcdir)exec/totemip.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
+	install -m 644 $(srcdir)lcr/lcr_ckpt.h $(DESTDIR)$(INCLUDEDIR_LCR)
+	install -m 644 $(srcdir)lcr/lcr_comp.h $(DESTDIR)$(INCLUDEDIR_LCR)
+	install -m 644 $(srcdir)lcr/lcr_ifact.h $(DESTDIR)$(INCLUDEDIR_LCR)
+	install -m 644 $(srcdir)exec/service.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)exec/timer.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)exec/objdb.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)exec/logsys.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)exec/config.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)include/swab.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)man/*.3 $(DESTDIR)$(MANDIR)/man3
+	install -m 644 $(srcdir)man/*.5 $(DESTDIR)$(MANDIR)/man5
+	install -m 644 $(srcdir)man/*.8 $(DESTDIR)$(MANDIR)/man8
 
 
 doxygen:
 doxygen:
 	mkdir -p doc/api && doxygen
 	mkdir -p doc/api && doxygen

+ 3 - 0
Makefile.inc

@@ -107,3 +107,6 @@ ifeq ($(shell uname -r), 5.11)
 	override CFLAGS += -DHAVE_GETPEERUCRED -DHAVE_SCANDIR -DHAVE_ALPHASORT
 	override CFLAGS += -DHAVE_GETPEERUCRED -DHAVE_SCANDIR -DHAVE_ALPHASORT
 endif
 endif
 endif
 endif
+
+VPATH:=. $(srcdir) $(srcdir)$(subdir)
+

+ 25 - 24
exec/Makefile

@@ -32,9 +32,10 @@
 
 
 # Include configuration
 # Include configuration
 #
 #
-include ../Makefile.inc
+include $(srcdir)Makefile.inc
 
 
-override CFLAGS += -I../include
+override CFLAGS += -I$(srcdir)include
+LDFLAGS += -L./
 
 
 ifeq (${BUILD_DYNAMIC}, 1) 
 ifeq (${BUILD_DYNAMIC}, 1) 
 	override LDFLAGS += ${DYFLAGS}
 	override LDFLAGS += ${DYFLAGS}
@@ -209,71 +210,71 @@ depend:
 	$(CC) $(CFLAGS) $(CPPFLAGS) -DPREFIX='"$(PREFIX)"' -I../lcr -c -o $@ ../lcr/lcr_ifact.c
 	$(CC) $(CFLAGS) $(CPPFLAGS) -DPREFIX='"$(PREFIX)"' -I../lcr -c -o $@ ../lcr/lcr_ifact.c
 
 
 evs.o: evs.c
 evs.o: evs.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 clm.o: clm.c
 clm.o: clm.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 amf.o: amf.c
 amf.o: amf.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 ckpt.o: ckpt.c
 ckpt.o: ckpt.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 evt.o: evt.c
 evt.o: evt.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 lck.o: lck.c
 lck.o: lck.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 msg.o: msg.c
 msg.o: msg.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 cfg.o: cfg.c
 cfg.o: cfg.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 aisparser.o: aisparser.c
 aisparser.o: aisparser.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 vsf_ykd.o: vsf_ykd.c
 vsf_ykd.o: vsf_ykd.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 cpg.o: cpg.c
 cpg.o: cpg.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 
 objdb.o: objdb.c
 objdb.o: objdb.c
-	$(CC) $(CFLAGS) -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) -c -o $@ $<
 
 
 # -fPIC rules required for lib totem
 # -fPIC rules required for lib totem
 aispoll.o: aispoll.c
 aispoll.o: aispoll.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totempg.o: totempg.c
 totempg.o: totempg.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totemsrp.o: totemsrp.c
 totemsrp.o: totemsrp.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totemrrp.o: totemrrp.c
 totemrrp.o: totemrrp.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totemip.o: totemip.c
 totemip.o: totemip.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totemnet.o: totemnet.c
 totemnet.o: totemnet.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 wthread.o: wthread.c
 wthread.o: wthread.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 crypto.o: crypto.c
 crypto.o: crypto.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totemmrp.o: totemmrp.c
 totemmrp.o: totemmrp.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 totemconfig.o: totemconfig.c
 totemconfig.o: totemconfig.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 # DO NOT DELETE
 # DO NOT DELETE
 
 

+ 2 - 2
lcr/Makefile

@@ -70,10 +70,10 @@ uic: uic.o
 	$(CC) $(LDFLAGS) uic.o -o uic
 	$(CC) $(LDFLAGS) uic.o -o uic
 
 
 libtest_a.o: libtest_a.c
 libtest_a.o: libtest_a.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 libtest_b.o: libtest_b.c
 libtest_b.o: libtest_b.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 lcr_ifact.o: lcr_ifact.c
 lcr_ifact.o: lcr_ifact.c
 	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
 	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c

+ 14 - 14
lib/Makefile

@@ -30,9 +30,9 @@
 
 
 # Include configuration
 # Include configuration
 #
 #
-include ../Makefile.inc
+include $(srcdir)Makefile.inc
 
 
-override CFLAGS += -I../include
+override CFLAGS += -I$(srcdir)include
 override LDFLAGS += -L./
 override LDFLAGS += -L./
 
 
 all:libSaClm.a libSaClm.so.2.0.0 \
 all:libSaClm.a libSaClm.so.2.0.0 \
@@ -95,37 +95,37 @@ libcfg.so.2.0.0: util.o cfg.o
 else
 else
 
 
 libaisutil.so.2.0.0: util.o
 libaisutil.so.2.0.0: util.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libaisutil.so.2,-version-script=libaisutil.versions util.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libaisutil.so.2,-version-script=$(srcdir)$(subdir)libaisutil.versions util.o -o $@
 
 
 libSaClm.so.2.0.0: util.o clm.o
 libSaClm.so.2.0.0: util.o clm.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaClm.so.2,-version-script=libSaClm.versions util.o clm.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaClm.so.2,-version-script=$(srcdir)$(subdir)libSaClm.versions util.o clm.o -o $@
 
 
 libSaAmf.so.2.0.0: util.o amf.o
 libSaAmf.so.2.0.0: util.o amf.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaAmf.so.2,-version-script=libSaAmf.versions util.o amf.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaAmf.so.2,-version-script=$(srcdir)$(subdir)libSaAmf.versions util.o amf.o -o $@
 
 
 libSaCkpt.so.2.0.0: util.o ckpt.o
 libSaCkpt.so.2.0.0: util.o ckpt.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaCkpt.so.2,-version-script=libSaCkpt.versions util.o ckpt.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaCkpt.so.2,-version-script=$(srcdir)$(subdir)libSaCkpt.versions util.o ckpt.o -o $@
 
 
 libSaEvt.so.2.0.0: util.o evt.o
 libSaEvt.so.2.0.0: util.o evt.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaEvt.so.2,-version-script=libSaEvt.versions util.o evt.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaEvt.so.2,-version-script=$(srcdir)$(subdir)libSaEvt.versions util.o evt.o -o $@
 
 
 libSaLck.so.2.0.0: util.o lck.o
 libSaLck.so.2.0.0: util.o lck.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaLck.so.2,-version-script=libSaLck.versions util.o lck.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaLck.so.2,-version-script=$(srcdir)$(subdir)libSaLck.versions util.o lck.o -o $@
 
 
 libSaMsg.so.2.0.0: util.o msg.o
 libSaMsg.so.2.0.0: util.o msg.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaMsg.so.2,-version-script=libSaMsg.versions util.o msg.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libSaMsg.so.2,-version-script=$(srcdir)$(subdir)libSaMsg.versions util.o msg.o -o $@
 
 
 libais.so.2.0.0: util.o amf.o clm.o ckpt.o evt.o lck.o msg.o
 libais.so.2.0.0: util.o amf.o clm.o ckpt.o evt.o lck.o msg.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libais.so.2,-version-script=libSaAis.versions util.o amf.o clm.o ckpt.o evt.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libais.so.2,-version-script=$(srcdir)$(subdir)libSaAis.versions util.o amf.o clm.o ckpt.o evt.o -o $@
 
 
 libevs.so.2.0.0: util.o evs.o
 libevs.so.2.0.0: util.o evs.o
-	$(CC) $(LDFLAGS) -shared -Wl,-soname,libevs.so.2,-version-script=libevs.versions util.o evs.o -o $@
+	$(CC) $(LDFLAGS) -shared -Wl,-soname,libevs.so.2,-version-script=$(srcdir)$(subdir)libevs.versions util.o evs.o -o $@
 
 
 libcpg.so.2.0.0: util.o cpg.o
 libcpg.so.2.0.0: util.o cpg.o
-	$(CC) -shared -Wl,-soname,libcpg.so.2,-version-script=libcpg.versions util.o cpg.o -o $@
+	$(CC) -shared -Wl,-soname,libcpg.so.2,-version-script=$(srcdir)$(subdir)libcpg.versions util.o cpg.o -o $@
 
 
 libcfg.so.2.0.0: util.o cfg.o
 libcfg.so.2.0.0: util.o cfg.o
-	$(CC) -shared -Wl,-soname,libcfg.so.2,-version-script=libcfg.versions util.o cfg.o -o $@
+	$(CC) -shared -Wl,-soname,libcfg.so.2,-version-script=$(srcdir)$(subdir)libcfg.versions util.o cfg.o -o $@
 
 
 endif
 endif
 
 
@@ -164,7 +164,7 @@ clean:
  
  
 # -fPIC rules required for all libraries
 # -fPIC rules required for all libraries
 %.o: %.c
 %.o: %.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $(*F).c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<
 
 
 depend:
 depend:
 	makedepend -Y -- $(CFLAGS) $(CPPFLAGS) $(LIBAIS_SRC) > /dev/null 2>&1
 	makedepend -Y -- $(CFLAGS) $(CPPFLAGS) $(LIBAIS_SRC) > /dev/null 2>&1

+ 1 - 1
test/Makefile

@@ -44,7 +44,7 @@ LIBS = $(LIBRARIES)
 override CFLAGS += -I../include
 override CFLAGS += -I../include
 override LDFLAGS += -L../lib
 override LDFLAGS += -L../lib
 
 
-EXTRA_CFLAGS = -I../include
+EXTRA_CFLAGS = -I$(srcdir)include
 TEST_SRC =  testclm.c testamf1.c \
 TEST_SRC =  testclm.c testamf1.c \
 	testamf4.c testamf5.c testamf6.c testamfth.c  \
 	testamf4.c testamf5.c testamf6.c testamfth.c  \
 	testckpt.c ckptstress.c ckptbench.c  \
 	testckpt.c ckptstress.c ckptbench.c  \