Compiling the CSL version

  • Arthur Norman

    Arthur Norman - 2009-04-19

    The main pain I have seen building the CSL version has been when not all the necessary development tools or libraries have been installed. In a perfect future world the main configure and make scripts would always report trouble cleanly... but...
    So I now have an EXPERIMENTAL script in scripts/ that uses that autoconf stuff to build a TINY windowed application just to see if it can, and that tries to include explicit tests and fail reports for at least a lot of the things that might be missing. Almost by its nature testing this on configurations I know will work is not really the point - so I will be especially pleased if anybody reports whether it helps on THEIR machine. Observe it can fail in two directions - by reporting OK when Reduce will still not build and by refusing to build in a case where in fact Reduce would. Well and a third way - it may be able to fail in unclear rather than tidy ways.

    • pstnotpd

      pstnotpd - 2009-05-22

      Hi Arthur,

      As requested. I've tried to build the latest (and fresh) svn checkout (may 21st) which fails on a fox library not being a make target. The platform is XP with cygwin. I've made sure autoconf and libtools are higher version than actually required. The sanity check actually works, i.e. I get an "Arthur" box, but the actual reduce build fails on configure --with-csl and then make clean install.

      Error message:
      make[3]: *** No rule to make target `/cygdrive/d/reduce/cslbuild/i686-pc-windows/lib/libFOX-1.6.a', needed by `csl.exe'.  Stop.


      • pstnotpd

        pstnotpd - 2009-05-31


        It looks like somewhere in the makefile the fox libraries aren't built. Don't know enough about autoconf to make this work.

        Quick fix: checkout an earlier revision (248 will do) and build that one. Then copy over the \cslbuild\i686-pc-windows\lib directory to the latest revsion. It should contain libFOX-1.6.a and Then ./make.

        It seems to work.


    • Arthur Norman

      Arthur Norman - 2009-05-31

      OK, thanks for your persistence and I am glad you now have a working version. I will try to explain a bit more background about why things are as they are...

      FOX is a quite separate body of code from Reduce and CSL and is under a different license. To comply with that and not let its restrictions spread I feel the need to keep FOX in a separate directory with a more or less free-standing build process and to make it unambuigous that it is a LIBRARY and not actuallt part of CSL.

      This is done by configuraing it in its own directory cslbuild/*/fox, and the config.log file there has towards its top the command used to configure it. On my machine this reads

      $ /cygdrive/c/projects/reduce-algebra/trunk/csl/fox/configure --with-csl --wit
      h-build=i686-pc-windows CPPFLAGS= -mno-cygwin CFLAGS= -mno-cygwin CXXFLAGS= -mno
      -cygwin LDFLAGS=-mwindows --disable-shared --enable-release --with-opengl=no --d
      isable-jpeg --disable-zlib --disable-bz2lib --disable-png --disable-tiff --prefi

      My top-level build scripts and Makefiles are NOT havily integrated with FOX in order that I show that it is separate - they just invoke the FOX configure script as shown (and varies as per machine and file locations).

      The second issue is that recompiling all of FOX can take ages. Especially on Windows where its use of libtool really hurts compilation speed. I want to build the library once then NOT rebuild it when other parts of Reduce are changed. I probably have too-crude dependencies to check if FOX has been built, but when everything works they suffice!

      To remake FOX you can go into the cslbuild/*/fox directory and optionally re-do the configure stage as logges in your config.log. Then if cautious "make clean" but then "make install". This should compile all fox and move the built libraries and header files to where the build of CSL wants them.

      One more thing to note - the version of FOX I use is NOT in step with the versions from because I have eg my FXShowMath.cpp files merged into the one I use. Anybody who tries back-porting updates or fixes from the main trunk official version of FOX please only use stuff from the 1.6 (LGPL 2.1) series since the conditions that apply when redistributing stuff linked with an LGPL 3 library (whihc is what FOX 1.7+ is) would be inconsistent with the flexibility that Reduce desires.

      Once FOX is installed all ought to be easier. I *expect* that changes in the FOX customisations here will be less frequent than changes in CSL or Reduce itself.

      I hope gradually to get the build sequences more and more bomb-proof... and any autoconf etc experts out there who are minded to help would be much appreciated!



Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks