1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
Author: Alastair McKinstry <mckinstry@debian.org>
Description: Bugfix to link libcmor.so.2 against -lossp-uuid
Last-Updated: 2016-12-20
Forwarded: no
--- a/Makefile.in
+++ b/Makefile.in
@@ -44,11 +44,14 @@
# Library name
LIBNAME=libcmor.a
+SONAME := libcmor.so.2
+SHLIBFLAGS:= -Wl,-O1 -Wl,-soname,$(SONAME) -Wl,--version-script,cmor.ver -lgfortran -lm
# Library sources
LIBSOURCES=@LIBSOURCES@
LIBSOURCESCV=@LIBSOURCESCV@
LIBFSOURCES=@LIBFSOURCES@
+LIBSOURCESSO=$(patsubst Src/_cmormodule.c,,$(LIBSOURCES))
LIBFILES=@LIBFILES@
@@ -58,14 +61,31 @@
# Temporary Files
TMPFILES=*~ $(LIBFILES) *.mod a.out *.stb Test/*.nc Test/IPCC_Fourth_Assessment *.LOG* *.dSYM Test/IPCC Test/CMIP5 CMIP5
DISTFILES=libcmor.a
-DEPEND= makedepend -c ${DEBUG} ${CFLAGS} ${USERCFLAGS} ${NCCFLAGS} ${UDUNITS2FLAGS} ${JSONCFLAGS} ${UUIDFLAGS} ${ZFLAGS}
+DEPEND= makedepend -c ${DEBUG} ${CFLAGS} ${USERCFLAGS} ${NCCFLAGS} ${UDUNITS2FLAGS} ${JSONCFLAGS} ${UUIDLDFLAGS} ${ZFLAGS}
UNAME := $(shell uname)
CCOMPILE=${CC} -c ${DEBUG} ${MACROS} ${CPPFLAGS} ${CFLAGS} ${USERCFLAGS} \
${NCCFLAGS} ${UDUNITS2FLAGS} ${JSONCFLAGS} ${UUIDFLAGS} ${ZFLAGS}
+PIC_OBJS = $(patsubst %.c, %.pic_o, $(LIBSOURCESSO)) $(patsubst %.f90,%.pic_o, $(LIBFSOURCES))
+
all: cmor
@echo
+
+%.pic_o: %.c
+ @CC@ @CPPFLAGS@ -I/usr/include/ossp -fstack-protector --param=ssp-buffer-size=4 \
+ -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 \
+ -fPIC -c -o $@ @DEBUG@ @MACROS@ @CFLAGS@ @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @ZFLAGS@ $<
+
+%.pic_o: %.f90
+ @FC@ -c -o $@ -fPIC @FCFLAGS@ @DEBUG@ @MACROS@ $<
+
+shlib $(SONAME): $(PIC_OBJS)
+ $(CC) -shared -o $(SONAME) $(LDFLAGS) $(SHLIBFLAGS) $(PIC_OBJS) @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @ZFLAGS@
+install_shlib: $(SONAME)
+ mkdir -p $(DESTDIR)@prefix@/lib
+ cp -p $(SONAME) $(DESTDIR)@prefix@/lib
+
depend: $(LIBSOURCES)
${DEPEND} $(LIBSOURCES)
cmor.o: Src/cmor.c include/cmor.h include/cmor_func_def.h
@@ -287,7 +307,7 @@
test_case:
@echo "${OK_COLOR}Testing: "${TEST_NAME}" with input file: ${INPUT_FILE}${NO_COLOR}"
- @rm -f ./${TEST_NAME} 2>/dev/null ; ${FC} ${USERFFLAGS} ${FCFLAGS} ${DEBUG} Test/${TEST_NAME}.f90 -L${PREFIX}/lib -L. -lcmor ${NCCFLAGS} ${FNCLDFLAGS} ${FUDUNITS2LDFLAGS} ${UDUNITS2FLAGS} ${FJSONCLDFLAGS} ${JSONCFLAGS} ${FUUIDLDFLAGS} ${UUIDFLAGS} ${ZFLAGS} ${FZLDFLAGS} -o ${TEST_NAME} ;
+ @rm -f ./${TEST_NAME} 2>/dev/null ; ${FC} ${USERFFLAGS} ${FCFLAGS} ${DEBUG} Test/${TEST_NAME}.f90 -L${PREFIX}/lib -L. -lcmor ${NCCFLAGS} ${FNCLDFLAGS} ${FUDUNITS2LDFLAGS} ${UDUNITS2FLAGS} ${FJSONCLDFLAGS} ${JSONCFLAGS} ${FUUIDLDFLAGS} ${UUIDLDFLAGS} ${ZFLAGS} ${FZLDFLAGS} -o ${TEST_NAME} ;
@./${TEST_NAME} ${VERB} < ${INPUT_FILE} ;
@ rm ./${TEST_NAME}
ifeq (@MAKEDEPPYTHON@,python)
|