Index: head/math/lcalc/Makefile =================================================================== --- head/math/lcalc/Makefile (revision 530955) +++ head/math/lcalc/Makefile (revision 530956) @@ -1,31 +1,37 @@ # Created by: thierry@pompo.net # $FreeBSD$ PORTNAME= lcalc PORTVERSION= 1.23 +PORTREVISION= 1 CATEGORIES= math MASTER_SITES= ftp://ftp.fu-berlin.de/unix/misc/sage/spkg/upstream/lcalc/ MAINTAINER= thierry@FreeBSD.org COMMENT= L-function c++ class library and the CLI program lcalc LICENSE= GPLv2+ LIB_DEPENDS= libgmp.so:math/gmp \ libmpfr.so:math/mpfr \ libpari.so:math/pari #USE_GITHUB= yes #GH_ACCOUNT= agrawroh #GH_PROJECT= l-calc #GH_TAGNAME= 4c57471 USES= compiler:c++11-lang gmake localbase tar:bz2 PATCH_WRKSRC= ${WRKDIR}/${DISTNAME} WRKSRC_SUBDIR= src USE_LDCONFIG= yes MAKE_ENV= MAKE=${GMAKE} STAGEDIR=${STAGEDIR} + +post-stage: + cd ${STAGEDIR}${PREFIX}/lib && ${MV} libLfunction.so libLfunction.so.0 + ${LN} -sf libLfunction.so.0 ${STAGEDIR}${PREFIX}/lib/libLfunction.so + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} .include Index: head/math/lcalc/files/patch-src_Makefile =================================================================== --- head/math/lcalc/files/patch-src_Makefile (revision 530955) +++ head/math/lcalc/files/patch-src_Makefile (revision 530956) @@ -1,235 +1,235 @@ --- src/Makefile.orig 2012-08-08 21:21:56 UTC +++ src/Makefile @@ -8,12 +8,13 @@ #the c compiler, that will generate options which are specific to the #compilers, optimization options depending on the chip, etc +# + Patches borrowed from SageMath. # Comment out the following line to remove the use of pari's # elliptic curve routines. Doing so disables the -e option. # g++ with -DINCLUDE_PARI sends a #define INCLUDE_PARI to the preprocessor. -#PARI_DEFINE = -DINCLUDE_PARI +PARI_DEFINE = -DINCLUDE_PARI #PREPROCESSOR_DEFINE = -DUSE_LONG_DOUBLE #OPENMP_FLAG = -fopenmp @@ -29,11 +30,21 @@ endif OS_NAME := $(shell uname) -CC = g++ +#CC = g++ #cc = /home/mrubinst/local/bin/gcc #CC = /home/mrubinst/local/bin/g++ #LD = /home/mrubinst/local/bin/g++ +ifneq (,$(findstring CYGWIN,$(OS_NAME))) + OS_NAME := CYGWIN +endif + +# Note: I've also changed various rules to use $CXX instead of $CC, +# since we mostly compile C++, not C, and $CC is by convention +# used for the *C* compiler. +#CC ?= gcc +#CXX ?= g++ + #CC = /Users/michaelrubinstein/math/L/packages/gcc4.3/usr/local/bin/g++ #EXTRA= -pg #EXTRA = -ftree-vectorize -ftree-vectorizer-verbose=5 -funroll-loops @@ -58,59 +69,27 @@ 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 = -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) +CXXFLAGS := $(OPENMP_FLAG) $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA) $(CXXFLAGS) #warning- O2 doesn't help with -DUSE_LONG_DOUBLE on mac, and actually seems to hurt, making runtime longer #by a factor of 1.5 -ifeq ($(PARI_DEFINE),-DINCLUDE_PARI) - #location of pari.h. - LOCATION_PARI_H = /usr/local/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 -else - #supplied as a dummy so as to avoid more ifeq's below - LOCATION_PARI_H = . - LOCATION_PARI_LIBRARY = . -endif - - - #INCLUDEFILES= -I../include -I../../packages/gcc4.3/usr/local/include INCLUDEFILES= -I../include #For Mac os x we omit shared library options ifeq ($(OS_NAME),Darwin) - LDFLAGS2 = - DYN_OPTION=dynamiclib + DYN_OPTION=dynamiclib -Wl,-headerpad_max_install_names else - LDFLAGS1 = -Xlinker -export-dynamic #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) - #else - # LDFLAGS2 = $(LDFLAGS1) - #endif DYN_OPTION=shared endif -ifeq ($(PARI_DEFINE),-DINCLUDE_PARI) - LDFLAGS = $(LDFLAGS2) -L$(LOCATION_PARI_LIBRARY) -lpari -else - LDFLAGS = $(LDFLAGS2) -endif +PARI_LIBS = -L$(LOCALBASE)/lib -lpari -lgmp -lm - #NOTES: #for caedmon: the shared pari library is in a funny location: /usr/local/pari/pari-2.1.5/lib #At compile time we need to specify that location with: @@ -129,47 +108,63 @@ endif #become clear which libraries the computer can find. -INSTALL_DIR= /usr/local +INSTALL_DIR = $(STAGEDIR)$(PREFIX) +#binary and library files extensions +LIBEXT := .so +EXEEXT := + +ifeq ($(OS_NAME),Darwin) + LIBEXT := .dylib + EXEEXT := +endif + +ifeq ($(OS_NAME),CYGWIN) + LIBEXT := .dll + EXEEXT := .exe +endif + #object files for the libLfunction library OBJ_L = Lglobals.o Lgamma.o Lriemannsiegel.o Lriemannsiegel_blfi.o Ldokchitser.o #object files for the command line program -OBJ2=$(OBJ_L) Lcommandline_globals.o Lcommandline_misc.o Lcommandline_numbertheory.o Lcommandline_values_zeros.o -OBJ3=$(OBJ2) Lcommandline_elliptic.o Lcommandline_twist.o Lcommandline.o cmdline.o +OBJ2 = $(OBJ_L) Lcommandline_globals.o Lcommandline_misc.o Lcommandline_numbertheory.o Lcommandline_values_zeros.o +OBJ3 = $(OBJ2) Lcommandline_elliptic.o Lcommandline_twist.o Lcommandline.o cmdline.o OBJECTS = $(OBJ3) all: -# make print_vars - make libLfunction.so - make lcalc - make examples -# make find_L -# make test +# $(MAKE) print_vars + $(MAKE) libLfunction$(LIBEXT) + $(MAKE) lcalc$(EXEEXT) + $(MAKE) examples$(EXEEXT) +# $(MAKE) find_L +# $(MAKE) test print_vars: @echo OS_NAME = $(OS_NAME) -lcalc: $(OBJECTS) - $(CC) $(CCFLAGS) $(INCLUDEFILES) $(OBJECTS) $(LDFLAGS) -o lcalc $(GMP_FLAGS) +lcalc$(EXEEXT): $(OBJECTS) + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) $(LDFLAGS) $(OBJECTS) -o lcalc$(EXEEXT) $(PARI_LIBS) $(GMP_FLAGS) -examples: - $(CC) $(CCFLAGS) $(INCLUDEFILES) example_programs/example.cc libLfunction.so -o example_programs/example $(GMP_FLAGS) +examples$(EXEEXT): + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) example_programs/example.cc $(LDFLAGS) libLfunction$(LIBEXT) -o example_programs/example$(EXEEXT) $(PARI_LIBS) $(GMP_FLAGS) -proc: - $(CC) $(CCFLAGS) $(INCLUDEFILES) example_programs/proc.cc libLfunction.so -o example_programs/proc $(GMP_FLAGS) +proc$(EXEEXT): + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) example_programs/proc.cc $(LDFLAGS) libLfunction$(LIBEXT) -o example_programs/proc$(EXEEXT) $(PARI_LIBS) $(GMP_FLAGS) -test: - $(CC) $(CCFLAGS) $(INCLUDEFILES) example_programs/test.cc libLfunction.so -o example_programs/test $(GMP_FLAGS) +test$(EXEEXT): + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) example_programs/test.cc $(LDFLAGS) libLfunction$(LIBEXT) -o example_programs/test$(EXEEXT) $(PARI_LIBS) $(GMP_FLAGS) -find_L: - $(CC) $(CCFLAGS) $(INCLUDEFILES) find_L_functions/find_L_functions.cc libLfunction.so -o find_L_functions/find_L $(GMP_FLAGS) +find_L$(EXEEXT): + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) find_L_functions/find_L_functions.cc $(LDFLAGS) libLfunction$(LIBEXT) -o find_L_functions/find_L$(EXEEXT) $(PARI_LIBS) $(GMP_FLAGS) .cc.o: - $(CC) $(CCFLAGS) $(INCLUDEFILES) -c $< + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) -c $< + +# Warning: We (Sage) add $CXXFLAGS to CXXFLAGS above. .c.o: - $(CC) $(CCFLAGS) $(INCLUDEFILES) -c $< + $(CC) $(CFLAGS) $(INCLUDEFILES) -c $< Lglobals.o: ../include/Lglobals.h ../include/Lcommon.h ../include/Lcomplex.h ../include/Lnumeric.h ../include/Lint_complex.h @@ -227,7 +222,7 @@ Lcommandline_elliptic.o: ../include/Lnumberzeros.h ../ Lcommandline_elliptic.o: ../include/Lvalue.h ../include/Lfind_zeros.h Lcommandline_elliptic.o: ../include/Lcommandline_numbertheory.h Lcommandline_elliptic.o: ../include/Lcommandline_globals.h - $(CC) $(CCFLAGS) $(INCLUDEFILES) -I$(LOCATION_PARI_H) $(PARI_DEFINE) -c Lcommandline_elliptic.cc + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) $(PARI_DEFINE) -c Lcommandline_elliptic.cc Lcommandline_twist.o: ../include/Lcommandline_twist.h ../include/L.h Lcommandline_twist.o: ../include/Lglobals.h ../include/Lcommon.h ../include/Lcomplex.h ../include/Lnumeric.h ../include/Lint_complex.h @@ -239,7 +234,7 @@ Lcommandline_twist.o: ../include/Lvalue.h ../include/L Lcommandline_twist.o: ../include/Lcommandline_numbertheory.h Lcommandline_twist.o: ../include/Lcommandline_globals.h Lcommandline_twist.o: ../include/Lcommandline_elliptic.h - $(CC) $(CCFLAGS) $(INCLUDEFILES) -I$(LOCATION_PARI_H) $(PARI_DEFINE) -c Lcommandline_twist.cc + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) $(PARI_DEFINE) -c Lcommandline_twist.cc cmdline.o: ../include/cmdline.h ../include/getopt.h #$(CC) $(CCFLAGS) $(INCLUDEFILES) -DHAVE_LONG_LONG -c cmdline.c @@ -258,21 +253,21 @@ Lcommandline.o: ../include/Lcommandline_misc.h Lcommandline.o: ../include/Lcommandline_elliptic.h Lcommandline.o: ../include/Lcommandline_twist.h Lcommandline.o: ../include/Lcommandline_values_zeros.h - $(CC) $(CCFLAGS) $(INCLUDEFILES) -I$(LOCATION_PARI_H) $(PARI_DEFINE) -c Lcommandline.cc + $(CXX) $(CXXFLAGS) $(INCLUDEFILES) $(PARI_DEFINE) -c Lcommandline.cc -libLfunction.so: $(OBJ_L) - g++ -$(DYN_OPTION) -o libLfunction.so $(OBJ_L) +libLfunction$(LIBEXT): $(OBJ_L) -+ $(CXX) -$(DYN_OPTION) $(CXXFLAGS) -o libLfunction$(LIBEXT) $(LDFLAGS) $(OBJ_L) $(PARI_LIBS) ++ $(CXX) -$(DYN_OPTION) $(CXXFLAGS) -o libLfunction$(LIBEXT) $(LDFLAGS) -Wl,-soname,$@ $(OBJ_L) $(PARI_LIBS) clean: - rm -f *.o lcalc libLfunction.so example_programs/example + rm -f *.o lcalc$(EXEEXT) libLfunction$(LIBEXT) example_programs/example$(EXEEXT) install: - cp -f lcalc $(INSTALL_DIR)/bin/. - cp -f libLfunction.so $(INSTALL_DIR)/lib/. + cp -f lcalc$(EXEEXT) $(INSTALL_DIR)/bin/. + cp -f libLfunction$(LIBEXT) $(INSTALL_DIR)/lib/. cp -rf ../include $(INSTALL_DIR)/include/Lfunction 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 depend: - makedepend -f depends -- $(CCFLAGS) -Y../include -- $(SRCS) + makedepend -f depends -- $(CXXFLAGS) -Y../include -- $(SRCS) Index: head/math/lcalc/pkg-plist =================================================================== --- head/math/lcalc/pkg-plist (revision 530955) +++ head/math/lcalc/pkg-plist (revision 530956) @@ -1,45 +1,46 @@ bin/lcalc include/Lfunction/L.h include/Lfunction/L.h.orig include/Lfunction/Lcommandline.h include/Lfunction/Lcommandline.h.orig include/Lfunction/Lcommandline_elliptic.h include/Lfunction/Lcommandline_elliptic.h.orig include/Lfunction/Lcommandline_globals.h include/Lfunction/Lcommandline_misc.h include/Lfunction/Lcommandline_numbertheory.h include/Lfunction/Lcommandline_numbertheory.h.orig include/Lfunction/Lcommandline_twist.h include/Lfunction/Lcommandline_values_zeros.h include/Lfunction/Lcommon.h include/Lfunction/Lcommon.h.orig include/Lfunction/Lcommon_ld.h include/Lfunction/Lcommon_ld.h.orig include/Lfunction/Lcomplex.h include/Lfunction/Lcomplex.h.orig include/Lfunction/Ldirichlet_series.h include/Lfunction/Ldirichlet_series.h.orig include/Lfunction/Ldokchitser.h include/Lfunction/Ldokchitser.h.orig include/Lfunction/Lexplicit_formula.h include/Lfunction/Lexplicit_formula.h.orig include/Lfunction/Lfind_zeros.h include/Lfunction/Lgamma.h include/Lfunction/Lgamma.h.orig include/Lfunction/Lglobals.h include/Lfunction/Lglobals.h.orig include/Lfunction/Lgmpfrxx.h include/Lfunction/Lgram.h include/Lfunction/Lint_complex.h include/Lfunction/Lmisc.h include/Lfunction/Lnumberzeros.h include/Lfunction/Lnumeric.h include/Lfunction/Lprint.h include/Lfunction/Lriemannsiegel.h include/Lfunction/Lriemannsiegel_blfi.h include/Lfunction/Lvalue.h include/Lfunction/Lvalue.h.bak include/Lfunction/cmdline.h include/Lfunction/getopt.h include/Lfunction/mpfr_mul_d.h lib/libLfunction.so +lib/libLfunction.so.0