Flint will not build in 64-bit mode on my Xeo based Open Solaris
machine, so I decided to look at the package.

In patches/makefile of the flint package there are a few things that
do not make a lot of sense to me. For the most part, the original
flint makefile makes more sence, though I gather this is added to
support shared libraries.

1) 1) First, sage-env will set CC to gcc if nothing else is defined,
so I'm not quite sure why one needs to set a compiler in the makefile.

ifndef FLINT_CC
        FLINT_CC = gcc
endif

2) Secondly, is MAKECMDGOALS defined anywhere? If so, I can't find it,
so the following makes no sense to me.
ifeq ($(MAKECMDGOALS),library)
        CC = $(FLINT_CC) -fPIC -std=c99
else
        CC = $(FLINT_CC) -std=c99
endif



ifeq ($(MAKECMDGOALS),library)
        CC = $(FLINT_CC) -fPIC -std=c99
else
        CC = $(FLINT_CC) -std=c99
endif


Then a bit further down:


ifndef FLINT_CPP
        FLINT_CPP = g++
endif

CPP = $(FLINT_CPP)

I can't work out why anyone would use the variable name CPP for what
will be a C++ compiler. Why not CXX?

The further down:1
LIBS2 = -L$(FLINT_GMP_LIB_DIR) -L$(FLINT_NTL_LIB_DIR)
$(FLINT_LINK_OPTIONS) -lgmp -lpthread -lntl -lm

but FLINT_LINK_OPTIONS is not defined anywhere I can find, nor is
FLINT_GMP_LIB_DIR.

There seems to be a few portability issues with this too, which I can
probably resolve.

 * -fPIC is a GNU specific flag.
 * -std=c99 is GNU specific flag.
 * -shared is a GCC specific flag

It looks like someone had gone to quite a bit of trouble to patch the
flint makefile, but I can't work out what is supposed to be happening.
A lot looks to be doing nothing useful to me.

Dave

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to