| Commit message (Collapse) | Author | Age |
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3529 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Also, detect Fortran 90 inter-module dependencies automatically.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3524 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
preprocessing Fortran files.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3522 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
compile time).
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3477 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
contain any relevant information; the same is done for
cctk_Arguments.h.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3463 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2180 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
A known-architecture file or the config line can now set USE_RANLIB=yes to
have the make system use ranlib.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2174 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is described on a Spec on the web pages at the moment, and will move to the documentation
once it is tested and extended a bit more. If you want to have a look at it in action, checkout
the thorns TestFunctions1A, TestFunctions1B and TestFunctions2 which will be in AlphaThorns in
a few minutes time.
At the moment it is only possible to use Function Aliasing for C functions
which use and return Cactus data types.
You will need to rebuild your configurations once you update, but apart from that these changes
shouldn't affect anyone ... if you see any problems please let us know.
Gabrielle
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2060 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
help with PR 224.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1962 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
differently on some architectures (e.g. NT).
Removed fallback definition for GENERAL_LIBRARIES in make.configuration, and
added fallback definitions for LIBNAME_PREFIX and LIBNAME_SUFFIX so old
configurations should still work.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1872 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
if they don't exist it sets the make variables BUILD_REGEX and BUILD_GETOPT
to no, otherwise they are yes.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1659 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C_POSTPROCESSING
CXX_POSTPROCESSING
F77_POSTPROCESSING
F_POSTPROCESSING
F90_POSTPROCESSING
as things a known-architecture can set. This allows object files to be
moved and things like that.
Also added the ability of the architecture files to write to a file calles
make.arch.defn
which is included at the bottom of make.code.defn. Thus, for example,
an architecture requiring mpicc and its ilk for compiling with MPI
can replace the compilers at this point, but still allow the rest
of the configuration to use the normal compiler. Use with caution.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1438 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CXX_WORKING_NAME
this defaults to the working name being the filename without the directory
info, but can be used to give the file generated after preprocessing a
different name. E.g. if your machine requires C++ files to end with .C
you should be able to do
CXX_WORKING_NAME='$(notdir $<).C
to solve the problem.
At some point we're going to have to go through all these obscure flags
and decide on nice names and what functionality they really should have.
For instance the above could also have been done by introducing CXX_SUFFIX
which would of course be easier for the end-user, but might in some
circumstances be less useful.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1420 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OPTIMISE=no
to switch off optimisation flags for quicker compiling. The known
architectures files can now contain
C_OPTIMISE_FLAGS
CXX_OPTIMISE_FLAGS
F77_OPTIMISE_FLAGS
F90_OPTIMISE_FLAGS
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1395 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DEBUG=yes
This was there before, but now the known-architecture files can contain
C_DEBUG_FLAGS
CXX_DEBUG_FLAGS
F77_DEBUG_FLAGS
F90_DEBUG_FLAGS
Also added compile-time option
WARNINGS=yes
which should switch on warning flags during compilation. The known-architecture
files specifies these flags via
C_WARN_FLAGS
CXX_WARN_FLAGS
F77_WARN_FLAGS
F90_WARN_FLAGS
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1390 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sets make variables
X_LIB_DIR
X_INC_DIR
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1377 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1288 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1206 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
fixer.
Now thorns can be added and removed from the ThornList without a
major rebuild
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1139 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
excessive recompilation when the thornlist is changed.
Tested under Linux.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1134 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1073 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@876 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now the make stuff required for the final linking of libraries is
bundled up into
GENERAL_LIBRARIES
which defaults to
$(LIBDIRS:%=-L%) $(LIBS:%=-l%)
which should work on all unices.
For NT I have made it
$(LIBS)
and LIBDIRS has no use. NT stuff needs to specify the full path and name of
each library in the LIBS variable. Maybe one day we'll find a neater way !
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@874 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Everything should work again (!)
git-svn-id: http://svn.cactuscode.org/flesh/trunk@839 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
and
EXEDIR is the executable directory
git-svn-id: http://svn.cactuscode.org/flesh/trunk@804 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
other
extra packages, e.g. PVM, without having to rerun autoconf.
Basically 'configure' now looks in a directory called
'extras', and for every subdirectory of that is checks for the presence
of an executable file call 'setup.sh' which can do configuration stuff.
'setup.sh' should put extra definitions in a file called 'cctk_extradefs.h'
and extra make stuff in 'make.extra.defn'. To help this process
there is a function
CCTK_WriteLine
which takes two arguments, the name of the file, and what to write. E.g.
CCTK_WriteLine cctk_extradefs.h "#define MPI"
and
CCTK_WriteLine make.extra.defn 'LIBS += $(MPI_LIBS)'
with the usual shell expansions happening.
To help search for files and things there is function
CCTK_Search
which takes four arguments
- the name of a variable
- a list of names
- a filename
- an (optional) basename
E.g.
CCTK_Search MPI_DEVICE "ch_shmem ch_p4 globus" lib $MPICH_DIR/build
would look for directories called ch_shmem or ch_p4 or globus containing a file or directory
called 'lib' and all this would be done in the directory $MPICH_DIR/build. On return from the
function the value of MPI_DEVICE would be ch_shmem, ch_p4, globus, or empty depending on which
one was found first.
So, to add an optional extra package:
- add a directory with its name under lib/make/extras
- in this directory add an executable shell file called setup.sh
- in this file check if the extra thing is enabled, check for any configuration things
and add them to cctk_extradefs.h or make.extra.defn as necessary.
Note you will need to do a
cvs update -d
to get the new directories I've just added.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@752 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current types are
CUSTOM
- must define, either in the environment or on the command line
MPI_LIBS
MPI_LIB_DIRS
MPI_INC_DIRS
NATIVE
- use the 'native' MPI for the machine; this must be checked for and setup
in the known-architecture file.
MPICH
- use MPICH. This is controlled by
MPICH_DIR - the MPICH installation directory
will search a few places for this if not defined.
MPICH_DEVICE - the MPICH device
again will search.
If MPICH_DEVICE=globus you must set GLOBUS_DIR.
LAM
- use LAM. This is controlled by
LAM_DIR - the LAM installation directory
will search a few places.
This should still be treated as experimental, but it works on my laptop for MPICH and LAM.
I've updated the known-architectures/irix file for this, plus fixed the IRIX IRIX64 problem
(I think), but haven't tested the change yet.
Have fun,
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@748 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added {C,CXX,F,F77}_DEPEND_OUT for the end of dependency rules - i.e.
it contains > $@ by default, but on architectures where the dependency info
is generated in more complicated ways, such as the Exemplar or AIX it
can be something more long-winded.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@712 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
NT.
Fixed the default OPTIONSEP so that it is a space.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@591 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
Almost there. Everything seems to compile, modulo a problem I just spotted,
with only the final linking remaining.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@589 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
NOTE: you will need to do a reconfig after this.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@578 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
particular place, but some don't. Now the options are held in
make variables, and a known-architectures, or setup options script
can set these appropriately. Currently they default to -c -o .
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@457 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
shorten some include paths, and allows us to add system include paths
like the path to mpi.h easily.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@352 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use
make <config> options=<option-file-name>
when making a new configuration.
<option-file-name> has the format of
keyword value
or keyword = value
Note that even though it will allow a vlue to be blank, the configure
script itself will ignore this, so it's not so easy to tell it to ignore,
say, your f90 compiler.
The configure script now uses the f90 compiler for f77, or the f77
compiler if there is no f90 compiler.
The configure.pl script will produce a dummy fortran_name perl script if
there is no fortran compiler.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@319 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@246 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
through sed to convert names beginning with, say, //d/foo to d:/foo to
allow compilation under cygwin.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@213 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To build a configuration <conf> do
make <conf>
if <conf> doesn't exist you'll get a complaint
make by itself will list existing configurations, or run the setup
perl script if there are none.
make config will make a new configuration
make help should list all options
make tags will create a Vi style tags file
make TAGS will create an Emacs style TAGS file
make distclean will nuke your build directory.
When setting up a configuration the make system creates the following directories
$(CCTK_HOME)/build
$(CCTK_HOME)/build/$(config)
$(CCTK_HOME)/build/$(config)/config-data
$(CCTK_HOME)/build/$(config)/lib
$(CCTK_HOME)/build/$(config)/build
and runs autoconf in the config-data directory.
You then need to create a file
make.thornlist
containing one line of the form
THORNS=toolkit1/thorn1 toolkit3/thorn45 ...
in the config-data directory.
(This will be automatically created from ActiveThorns later.)
At that point you should be fine for making the system.
Note that it doesn't preprocess the files yet, nor in fact touch any of
the ccl scripts. This is coming to a make system near you soon...
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@62 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
configure and config.h.in are generated by running autoconf and autoheader
respectively.
The resulting configure file can then be run to produce
make.config.defn
config.h
fortran_name.pl
You must set an environment variable with the name of the executable first.
It should be run from the config-data directory of a configuration - e.g
setenv EXE cctk
$(CCTK_HOME)/lib/make/configure
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@61 17b73243-c579-4c4c-a9d2-2d5706c11dac
|