1797c9c295
Sage now by default expects the lcalc library to be named Lfunction (instead of libLfunction). This could be changed by an environment variable (https://trac.sagemath.org/ticket/28224), but various distros seem to agree on this standard (https://groups.google.com/forum/#!topic/sage-packaging/xvh55IxHTZg) so it's best just to follow it. The old standard was set by sage anyway and sage is the only consumer of lcalc in nixpkgs.
114 lines
4.1 KiB
Diff
114 lines
4.1 KiB
Diff
diff --git a/src/Makefile b/src/Makefile
|
|
index 84e4e88..56ca676 100644
|
|
--- a/src/Makefile
|
|
+++ b/src/Makefile
|
|
@@ -58,7 +58,7 @@ ifeq ($(G5),TRUE)
|
|
#MACHINE_SPECIFIC_FLAGS = -mpowerpc -mpowerpc64 -m64
|
|
endif
|
|
|
|
-CCFLAGS = -Wa,-W -O3 $(OPENMP_FLAG) -Wno-deprecated $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA)
|
|
+CCFLAGS = $(CXXFLAGS) $(OPENMP_FLAG) $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS)
|
|
#CCFLAGS = -Wa,-W -O3 $(OPENMP_FLAG) $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA)
|
|
#CCFLAGS = -Wa,-W -O2 -fno-exceptions -Wno-deprecated $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA)
|
|
|
|
@@ -68,12 +68,12 @@ CCFLAGS = -Wa,-W -O3 $(OPENMP_FLAG) -Wno-deprecated $(PREPROCESSOR_DEFINE) $(MA
|
|
|
|
ifeq ($(PARI_DEFINE),-DINCLUDE_PARI)
|
|
#location of pari.h.
|
|
- LOCATION_PARI_H = /usr/local/include/pari #usual location
|
|
+ LOCATION_PARI_H = $(PARI_PREFIX)/include/pari #usual location
|
|
|
|
#location of libpari.a or of libpari.so
|
|
#depending on whether static or dynamic libraries are being used.
|
|
#On mac os x it's the former, on linux I think usually the latter.
|
|
- LOCATION_PARI_LIBRARY = /usr/local/lib #usual location
|
|
+ LOCATION_PARI_LIBRARY = $(PARI_PREFIX)/lib #usual location
|
|
else
|
|
#supplied as a dummy so as to avoid more ifeq's below
|
|
LOCATION_PARI_H = .
|
|
@@ -89,24 +89,24 @@ INCLUDEFILES= -I../include
|
|
|
|
ifeq ($(OS_NAME),Darwin)
|
|
LDFLAGS2 =
|
|
- DYN_OPTION=dynamiclib
|
|
+ DYN_OPTION=-dynamiclib
|
|
else
|
|
- LDFLAGS1 = -Xlinker -export-dynamic #not sure why pari calls these when linking but on the web I found
|
|
+ LDFLAGS1 = #not sure why pari calls these when linking but on the web I found
|
|
#'Libtool provides the `-export-dynamic' link flag (see section Link mode), which does this declaration.
|
|
#You need to use this flag if you are linking a shared library that will be dlopened'
|
|
#see notes below
|
|
#ifeq ($(PARI_DEFINE),-DINCLUDE_PARI)
|
|
- LDFLAGS2 = $(LDFLAGS1) -Xlinker -rpath -Xlinker $(LOCATION_PARI_LIBRARY)
|
|
+ LDFLAGS2 = $(LDFLAGS)
|
|
#else
|
|
# LDFLAGS2 = $(LDFLAGS1)
|
|
#endif
|
|
- DYN_OPTION=shared
|
|
+ DYN_OPTION=$(LDFLAGS) -shared -Wl,-soname,libLfunction.so
|
|
endif
|
|
|
|
ifeq ($(PARI_DEFINE),-DINCLUDE_PARI)
|
|
- LDFLAGS = $(LDFLAGS2) -L$(LOCATION_PARI_LIBRARY) -lpari
|
|
+ MYLDFLAGS = $(LDFLAGS2) -L$(LOCATION_PARI_LIBRARY) -lpari
|
|
else
|
|
- LDFLAGS = $(LDFLAGS2)
|
|
+ MYLDFLAGS = $(LDFLAGS2)
|
|
endif
|
|
|
|
|
|
@@ -129,7 +129,8 @@ endif
|
|
#become clear which libraries the computer can find.
|
|
|
|
|
|
-INSTALL_DIR= /usr/local
|
|
+INSTALL_DIR= $(DESTDIR)
|
|
+LIB_DIR ?=lib
|
|
|
|
#object files for the libLfunction library
|
|
OBJ_L = Lglobals.o Lgamma.o Lriemannsiegel.o Lriemannsiegel_blfi.o Ldokchitser.o
|
|
@@ -141,9 +142,8 @@ OBJECTS = $(OBJ3)
|
|
|
|
all:
|
|
# make print_vars
|
|
- make libLfunction.so
|
|
- make lcalc
|
|
- make examples
|
|
+ ${MAKE} libLfunction.so
|
|
+ ${MAKE} lcalc
|
|
# make find_L
|
|
# make test
|
|
|
|
@@ -151,7 +151,7 @@ print_vars:
|
|
@echo OS_NAME = $(OS_NAME)
|
|
|
|
lcalc: $(OBJECTS)
|
|
- $(CC) $(CCFLAGS) $(INCLUDEFILES) $(OBJECTS) $(LDFLAGS) -o lcalc $(GMP_FLAGS)
|
|
+ $(CC) $(CCFLAGS) $(INCLUDEFILES) $(OBJECTS) $(MYLDFLAGS) -o lcalc $(GMP_FLAGS)
|
|
|
|
examples:
|
|
$(CC) $(CCFLAGS) $(INCLUDEFILES) example_programs/example.cc libLfunction.so -o example_programs/example $(GMP_FLAGS)
|
|
@@ -262,15 +262,18 @@ Lcommandline.o: ../include/Lcommandline_values_zeros.h
|
|
|
|
|
|
libLfunction.so: $(OBJ_L)
|
|
- g++ -$(DYN_OPTION) -o libLfunction.so $(OBJ_L)
|
|
+ g++ $(DYN_OPTION) -o libLfunction.so $(OBJ_L)
|
|
|
|
clean:
|
|
rm -f *.o lcalc libLfunction.so example_programs/example
|
|
|
|
install:
|
|
- cp -f lcalc $(INSTALL_DIR)/bin/.
|
|
- cp -f libLfunction.so $(INSTALL_DIR)/lib/.
|
|
- cp -rf ../include $(INSTALL_DIR)/include/Lfunction
|
|
+ install -d $(INSTALL_DIR)/bin
|
|
+ install -d $(INSTALL_DIR)/$(LIB_DIR)
|
|
+ install -d $(INSTALL_DIR)/include/Lfunction
|
|
+ install lcalc $(INSTALL_DIR)/bin
|
|
+ install libLfunction.so $(INSTALL_DIR)/$(LIB_DIR)
|
|
+ install -m 644 -t $(INSTALL_DIR)/include/Lfunction ../include/*.h
|
|
|
|
|
|
SRCS = Lcommandline.cc Lcommandline_elliptic.cc Lcommandline_globals.cc Lcommandline_misc.cc Lcommandline_numbertheory.cc Lcommandline_twist.cc Lcommandline_values_zeros.cc Lgamma.cc Lglobals.cc Lmisc.cc Lriemannsiegel.cc Lriemannsiegel_blfi.cc cmdline.c
|