xraypy/feff85exafs — pull request #1 by bruceravel (2014-06-17 18:18:37+00:00)
Title: use scons to build feff85exafs

The "build system" bequeathed to us by the Feff Project is entirely inadequate. It is poorly documented, quite fragile, inflexible -- basically a mess. This pull request is a proposed solution -- or, at least, the beginning of one.

I chose to use scons as the build system because (1) it is way easier to grok than GNU Autotools and (2) the Makefile replacement is basically a python script. I thought that a python based build system would play well with Larch and Larch users.

What I have done with this PR is to make a simple system that compiles the broken-apart Feff85 into static libraries and executable "modules". Basically, I have tried to reproduce a normal, non-MPI build of feff85 using its "module" structure. I have dropped a SConstruct file into each subdir and a master SConstruct file into the `src` dir. I have renamed all the Makefiles (to dissuade one from attempting to run make) and cleaned up a few extraneous files. I also inserted a file (`FMS/ffmod3.f`) that was missing from what was given to us by the FP. I cleaned up a few things in `EXCH/mpse.f` so that it will compile, however lines 37 and 57 are certainly broken.

I have not made any tests other than verifying that the executables run. I have not tested the build system except on my Ubuntu machine. Assuming this PR is accepted and this becomes the build system, I will test other systems and begin writing unit tests.

Ultimately, we want to do real work on feff85exafs (for example, making a genfmt library that can be called as needed by larch and others). But a sane build system seems like the first step.