Author: Igor Pashev <pashev.igor@gmail.com>
Description: Make shared library
Forwarded: no
Index: cuba/makefile.in
===================================================================
--- cuba.orig/makefile.in 2011-08-12 14:16:24.000000000 +0400
+++ cuba/makefile.in 2011-11-17 14:24:27.000000000 +0400
@@ -1,5 +1,5 @@
CC = @CC@
-CFLAGS = @CFLAGS@ @DEFS@ -I$(common) -I. -I$(srcdir)
+CFLAGS = @CFLAGS@ @DEFS@ -I$(common) -I. -I$(srcdir) -fPIC
MCFLAGS = @MCFLAGS@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -9,6 +9,7 @@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
RANLIB = @RANLIB@
EXE = @EXEEXT@
+VERSION = @PACKAGE_VERSION@
prefix = @prefix@
exec_prefix = @exec_prefix@
@@ -31,13 +32,15 @@
HEADERS = cuba.h
LIB = libcuba.a
+SHLIB = libcuba.so.$(VERSION)
+SONAME = libcuba.so.3
MATH = Vegas$(EXE) Suave$(EXE) Divonne$(EXE) Cuhre$(EXE)
TOOLS = partview$(EXE)
all: lib demos $(MATH_DEFAULT) $(TOOLS_DEFAULT)
-lib: $(LIB)
+lib: $(LIB) $(SHLIB)
demos: demo-c$(EXE) $(DEMO_FORTRAN_DEFAULT)
@@ -52,6 +55,7 @@
$(DESTDIR)$(bindir) \
$(DESTDIR)$(datadir)
$(INSTALL_DATA) $(LIB) $(DESTDIR)$(libdir)
+ cp -P libcuba.so* $(DESTDIR)$(libdir)
for f in $(HEADERS) ; do \
$(INSTALL_DATA) `test -f $$f || echo $(srcdir)/`$$f $(DESTDIR)$(includedir); \
done
@@ -92,26 +96,21 @@
$(LIB)(Vegas.o): $(VEGAS_C) $(VEGAS_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(vegas) -DNOUNDERSCORE -c -o Vegas.o $(VEGAS_C)
$(AR) $(ARFLAGS) $(LIB) Vegas.o
- $(RM) Vegas.o
$(LIB)(llVegas.o): $(VEGAS_C) $(VEGAS_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(vegas) -DLONGLONGINT -DNOUNDERSCORE -c -o llVegas.o $(VEGAS_C)
$(AR) $(ARFLAGS) $(LIB) llVegas.o
- $(RM) llVegas.o
$(LIB)(Vegas_.o): $(VEGAS_C) $(VEGAS_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(vegas) -c -o Vegas_.o $(VEGAS_C)
$(AR) $(ARFLAGS) $(LIB) Vegas_.o
- $(RM) Vegas_.o
$(LIB)(llVegas_.o): $(VEGAS_C) $(VEGAS_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(vegas) -DLONGLONGINT -c -o llVegas_.o $(VEGAS_C)
$(AR) $(ARFLAGS) $(LIB) llVegas_.o
- $(RM) llVegas_.o
Vegas$(EXE): $(VEGAS_TM) $(VEGAS_DEPS) $(COMMON_TMDEPS)
$(MCC) $(MCFLAGS) $(CFLAGS) -I$(vegas) -o Vegas$(EXE) $(VEGAS_TM)
- strip Vegas$(EXE)
SUAVE_C = $(suave)/Suave.c
@@ -125,26 +124,21 @@
$(LIB)(Suave.o): $(SUAVE_C) $(SUAVE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(suave) -DNOUNDERSCORE -c -o Suave.o $(SUAVE_C)
$(AR) $(ARFLAGS) $(LIB) Suave.o
- $(RM) Suave.o
$(LIB)(llSuave.o): $(SUAVE_C) $(SUAVE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(suave) -DLONGLONGINT -DNOUNDERSCORE -c -o llSuave.o $(SUAVE_C)
$(AR) $(ARFLAGS) $(LIB) llSuave.o
- $(RM) llSuave.o
$(LIB)(Suave_.o): $(SUAVE_C) $(SUAVE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(suave) -c -o Suave_.o $(SUAVE_C)
$(AR) $(ARFLAGS) $(LIB) Suave_.o
- $(RM) Suave_.o
$(LIB)(llSuave_.o): $(SUAVE_C) $(SUAVE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(suave) -DLONGLONGINT -c -o llSuave_.o $(SUAVE_C)
$(AR) $(ARFLAGS) $(LIB) llSuave_.o
- $(RM) llSuave_.o
Suave$(EXE): $(SUAVE_TM) $(SUAVE_DEPS) $(COMMON_TMDEPS)
$(MCC) $(MCFLAGS) $(CFLAGS) -I$(suave) -o Suave$(EXE) $(SUAVE_TM)
- strip Suave$(EXE)
DIVONNE_C = $(divonne)/Divonne.c
@@ -159,26 +153,21 @@
$(LIB)(Divonne.o): $(DIVONNE_C) $(DIVONNE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(divonne) -DNOUNDERSCORE -c -o Divonne.o $(DIVONNE_C)
$(AR) $(ARFLAGS) $(LIB) Divonne.o
- $(RM) Divonne.o
$(LIB)(llDivonne.o): $(DIVONNE_C) $(DIVONNE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(divonne) -DLONGLONGINT -DNOUNDERSCORE -c -o llDivonne.o $(DIVONNE_C)
$(AR) $(ARFLAGS) $(LIB) llDivonne.o
- $(RM) llDivonne.o
$(LIB)(Divonne_.o): $(DIVONNE_C) $(DIVONNE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(divonne) -c -o Divonne_.o $(DIVONNE_C)
$(AR) $(ARFLAGS) $(LIB) Divonne_.o
- $(RM) Divonne_.o
$(LIB)(llDivonne_.o): $(DIVONNE_C) $(DIVONNE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(divonne) -DLONGLONGINT -c -o llDivonne_.o $(DIVONNE_C)
$(AR) $(ARFLAGS) $(LIB) llDivonne_.o
- $(RM) llDivonne_.o
Divonne$(EXE): $(DIVONNE_TM) $(DIVONNE_DEPS) $(COMMON_TMDEPS)
$(MCC) $(MCFLAGS) $(CFLAGS) -I$(divonne) -o Divonne$(EXE) $(DIVONNE_TM)
- strip Divonne$(EXE)
CUHRE_C = $(cuhre)/Cuhre.c
@@ -191,26 +180,21 @@
$(LIB)(Cuhre.o): $(CUHRE_C) $(CUHRE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(cuhre) -DNOUNDERSCORE -c -o Cuhre.o $(CUHRE_C)
$(AR) $(ARFLAGS) $(LIB) Cuhre.o
- $(RM) Cuhre.o
$(LIB)(llCuhre.o): $(CUHRE_C) $(CUHRE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(cuhre) -DLONGLONGINT -DNOUNDERSCORE -c -o llCuhre.o $(CUHRE_C)
$(AR) $(ARFLAGS) $(LIB) llCuhre.o
- $(RM) llCuhre.o
$(LIB)(Cuhre_.o): $(CUHRE_C) $(CUHRE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(cuhre) -c -o Cuhre_.o $(CUHRE_C)
$(AR) $(ARFLAGS) $(LIB) Cuhre_.o
- $(RM) Cuhre_.o
$(LIB)(llCuhre_.o): $(CUHRE_C) $(CUHRE_DEPS) $(COMMON_CDEPS)
$(CC) $(CFLAGS) -I$(cuhre) -DLONGLONGINT -c -o llCuhre_.o $(CUHRE_C)
$(AR) $(ARFLAGS) $(LIB) llCuhre_.o
- $(RM) llCuhre_.o
Cuhre$(EXE): $(CUHRE_TM) $(CUHRE_DEPS) $(COMMON_TMDEPS)
$(MCC) $(MCFLAGS) $(CFLAGS) -I$(cuhre) -o Cuhre$(EXE) $(CUHRE_TM)
- strip Cuhre$(EXE)
$(LIB): $(LIB)(Vegas.o) $(LIB)(Vegas_.o) \
@@ -223,6 +207,11 @@
$(LIB)(llCuhre.o) $(LIB)(llCuhre_.o)
-$(RANLIB) $(LIB)
+$(SHLIB): $(LIB)
+ $(CC) -shared -Wl,-soname,$(SONAME) -o $@ *.o $(LIBS)
+ ln -sf $(SHLIB) $(SONAME)
+ ln -sf $(SONAME) libcuba.so
+
DEMO_F = $(demo)/demo-fortran.F
DEMO_C = $(demo)/demo-c.c
@@ -269,6 +258,6 @@
*.o */*.o */*.tm.c
distclean: clean
- -$(RM) $(LIB) demo-c demo-fortran $(MATH) $(TOOLS) \
+ -$(RM) $(LIB) libcuba.so* demo-c demo-fortran $(MATH) $(TOOLS) \
config.h config.log config.status makefile