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/libLfunction + install lcalc $(INSTALL_DIR)/bin + install libLfunction.so $(INSTALL_DIR)/$(LIB_DIR) + install -m 644 -t $(INSTALL_DIR)/include/libLfunction ../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