summaryrefslogtreecommitdiff
path: root/src/make.code.defn
Commit message (Collapse)AuthorAge
* Change the parameter parser to Pirahasbrandt2013-02-25
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@4960 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Moved the F90 modules into a new thorn "F90".goodale2004-02-05
| | | | | | | Tom git-svn-id: http://svn.cactuscode.org/flesh/trunk@3566 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Add (incomplete) Fortran 90 bindings for the flesh functions.schnetter2004-01-19
| | | | | | | Also, detect Fortran 90 inter-module dependencies automatically. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3524 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Added gnu directoryallen2000-02-03
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@1353 17b73243-c579-4c4c-a9d2-2d5706c11dac
* New schedule stuff.goodale1999-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IMPORTANT: if you don't have a src/schedule directory, please do an "update -d" or your code won't compile! You can now create schedule groups and schedule items (other groups or functions) IN a group. You may then schedule a group AT a particular CCTK entry point, or inside another group. There is a new keyword WHILE in the schedule specification. The argument(s) to this are the full names of integer scalars, and the item which is scheduled WHILE will be executed while this integer, or these integers, are non-zero. Note that currently there is little checking of the type of these scalars, 'though this will be coming soon. BEFORE, AFTER, or WHILE can take a list of arguments of the form (a,b,c) to stop you having to do something like BEFORE a BEFORE b BEFORE c So the full format of a schedule statement is SCHEDULE [GROUP] <name> <AT entrypoint | IN group> [BEFORE|AFTER <item | (item...)>] [WHILE <integer gridscalar>] { [LANG: <language>] [COMM: <group(s)>] [STORAGE: <groups(s)] [TRIGGERS: <groups(s)] } "<description>" Note that even for a group you need to provide { } "<description>" 'though that may be relaxed soon. Also TRIGGERS are now on a group basis, not on a variable basis. So, for example, to test this I had -------------------------------------- SCHEDULE TEST1_InitialData AT INITIAL { LANG: Fortran } "Initialise" SCHEDULE TEST1_InitialData AT EVOL { LANG: Fortran } "Initialise" SCHEDULE TEST1_Evolve IN testit { LANG: Fortran } "Evolution routine" SCHEDULE GROUP testit WHILE test1::foo_int_scalar AT EVOL AFTER TEST1_InitialData { } "Test a group within a group. " --------------------------------------- where the initialisation routine set test1::foo_int_scalar to 4 and the evolution routine decremented it. The group "testit" is redundant here as only one thing is scheduled in it, the WHILE and AFTER could have gone directly onto the scheduling of TEST1_Evolve. Apart from the checking of the while stuff, the perl does a fair amount of checking that groups exist. It doesn't yet check that a group you are scheduling at or in exists, and neither does the C, so please check the screen output of the final schedule tree. Checks for this an for unreachable groups will go in, but perhaps not in the next week. There's also some tidying up which needs to go in, but this stuff passes all the tests that the unmodified code does. I have also tried to make the output of the CST a bit more useful, 'though now it's a wee bit long-winded. Please send me comments if you want more output of various things, or would like the current output, or how the WHILE stuff works, changed. Tom IMPORTANT: if you don't have a src/schedule directory, please do an "update -d" or your code won't compile! git-svn-id: http://svn.cactuscode.org/flesh/trunk@966 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Now make will recurse into subdirectories of a thorn.goodale1999-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | In your make.code.defn file put lines SRCS = <sources in this directory> SUBDIRS= <all subdirectories - e.g. what find . -type d would give you> then in each subdirectory put a make.code.defn containing SRCS = <sources in this directory> (N.B. you cannot currently put a SUBDIRS line here) along with make.code.deps files in all the directories. Make will then go into the relevant subdirectory and make the object files there before updating the library file. The first time it does this you will get errors of the form cannot find <subdir-name>/make.identity you should ignore these errors, as the make system then creates the files. If I find a way to do this without the errors, I'll be happy 8-) The files are used to keep track of the subdirectory filenames. Tom git-svn-id: http://svn.cactuscode.org/flesh/trunk@66 17b73243-c579-4c4c-a9d2-2d5706c11dac
* New make system.goodale1999-01-17
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