summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile141
-rwxr-xr-xlib/make/configure12
-rw-r--r--lib/make/configure.in9
-rw-r--r--lib/make/make.config.defn.in20
-rw-r--r--lib/make/make.config.deps.in0
-rw-r--r--lib/make/make.config.rules.in25
-rw-r--r--lib/make/make.configuration57
-rw-r--r--lib/make/make.thornlib29
-rw-r--r--setup34
-rw-r--r--src/create_make.code.stuff13
-rw-r--r--src/datestamp.c75
-rw-r--r--src/make.code.defn29
-rw-r--r--src/make.code.deps56
13 files changed, 449 insertions, 51 deletions
diff --git a/Makefile b/Makefile
index 8b173c35..794027f6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,39 +1,128 @@
+# /*@@
+# @file Makefile
+# @date Sun Jan 17 22:26:05 1999
+# @author Tom Goodale
+# @desc
+# gnu Makefile for the CCTK.
+#
+# WARNING: This makefile may not function with "make". Errors like
+# make: file `Makefile' line 36: Must be a separator (: or ::) for rules (bu39)
+# mean you should have used gmake. gmake is available free
+# from ftp://prep.ai.mit.edu/ and should be installed on all production
+# systems.
+#
+# For information on how to use this makefile, type
+# gmake help.
+#
+#
+# @enddesc
+# @version $Id: Makefile,v 1.4 1999-01-17 21:53:10 goodale Exp $
+# @@*/
-# Temporary makefile for the CCTK
+# Comment this out if you want to see what's going on.
+.SILENT:
-TOP := $(shell pwd)
+# Various auxilary programs
+PERL = perl
+SETUP = setup
-SHELL = /bin/sh
-MKDIR = mkdir -p
-CC = egcs
-CXX = $(CC)
-F90 = f90
-F77 = f77
-CPP = cc -E -M
-LD = $(CXX)
-AR = /bin/ar rucs
-RANLIB = touch
-AWK = awk
+# Dividers to make the screen output slightly nicer
+DIVEL = __________________
+DIVIDER = $(DIVEL)$(DIVEL)$(DIVEL)$(DIVEL)
-INC_DIRS += src/include
+# Work out where we are
+CCTK_HOME = $(shell pwd)
-CFLAGS += -g $(INC_DIRS:%=-I%)
-CXXFLAGS += -g $(INC_DIRS:%=-I%)
+# Work out which configurations are available
+CONFIGURATIONS = $(patsubst build/%,%,$(wildcard build/*))
+# Default target does nothing.
+# In principle should set up a default based upon uname or something.
+.PHONY:default
-CSRCS := $(shell find src -name '*.c')
-CCSRCS := $(shell find src -name '*.cc')
-OBJS = $(CSRCS:%.c=%.o) $(CCSRCS:%.cc=%.o)
-HEADERS := $(shell find src/include -name '*.h')
+default: new_setup
+ echo $(DIVIDER)
+ifeq ($(words $(CONFIGURATIONS)), 1)
+ echo Please use $(MAKE) $(CONFIGURATIONS)
+else
+ echo Known configurations are: $(CONFIGURATIONS)
+ echo Please use $(MAKE) \<configuration\>
+endif
+ echo $(DIVIDER)
+# If there are no configurations, call the setup program.
+.PHONY: new_setup
-cctk: $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $+ $(LOADLIBS)
+new_setup:
+ifeq ($(strip $(CONFIGURATIONS)),)
+ echo $(DIVIDER)
+ echo Setting up cctk
+ $(PERL) $(SETUP)
+ echo $(DIVIDER)
+ exit 2
+endif
-$(OBJS): $(HEADERS)
+# Target to build a configuration
+.PHONY: $(CONFIGURATIONS)
-clean:
- find src -name '*.o' -exec rm {} \;
+$(CONFIGURATIONS):
+ cd build/$@
+ $(MAKE) -f $(CCTK_HOME)/lib/make/make.configuration TOP=$(CCTK_HOME)/build/$@ CCTK_HOME=$(CCTK_HOME)
+
+# Clean target
+.PHONY: distclean
+
+distclean:
+ echo $(DIVIDER)
+ echo Deleting all your configurations !
+ rm -rf build
+ echo $(DIVIDER)
+
+# Targets to make tags files
+TAGS:
+ echo $(DIVIDER)
+ echo Updating the Emacs TAGS file
+ find src toolkits \( -name '*.[chF]' -o -name '*.F77' \) \
+ -exec etags --append --regex '/[a-z A-Z \t]*FORTRAN_NAME[^)]*/' {} \;
+ perl -pi -e 's/(subroutine\s*)([a-zA-Z0-9_]+)/\1\L\2/g;' TAGS
+ echo $(DIVIDER)
tags:
- etags `find src -name '*.[ch]' -o -name '*.cc'`
+ echo $(DIVIDER)
+ echo Updating the vi tags file
+ find src toolkits \( -name '*.[chF]' -o -name '*.F77' \) \
+ -exec ctags --append {} \;
+ perl -pi -e 's/(subroutine\s*)([a-zA-Z0-9_]+)/\1\L\2/g;' tags
+ echo $(DIVIDER)
+
+# Make a new configuration
+.PHONY: config
+
+config:
+ echo $(DIVIDER)
+ echo Running the configuration program
+ $(PERL) $(SETUP)
+ echo $(DIVIDER)
+
+# The help system.
+.PHONY: help
+
+help:
+ echo $(DIVIDER)
+ echo This is the main makefile for the Cactus Computational Toolkit
+ifeq ($(strip $(CONFIGURATIONS)),)
+ echo There are no configurations currently specified.
+ echo $(MAKE) with no arguments will run a setup script.
+else
+ echo The following configurations are currently specified
+ echo $(CONFIGURATIONS)
+ echo To build a configuration run $(make) followed by the name of a configuration.
+endif
+ echo $(DIVIDER)
+ echo $(MAKE) also knows the following targets
+ echo
+ echo TAGS - creates an Emacs TAGS file
+ echo tags - creates a Vi TAGS file
+ echo config - creates a new configuration
+ echo distclean - deletes all existing configurations
+ echo $(DIVIDER)
diff --git a/lib/make/configure b/lib/make/configure
index 7e32a0d7..838a8b6c 100755
--- a/lib/make/configure
+++ b/lib/make/configure
@@ -1,6 +1,6 @@
#! /bin/sh
-# From configure.in Id
+# From configure.in Id: configure.in
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.12
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
@@ -1491,6 +1491,9 @@ EOF
+ARFLAGS=rucs
+
+
F90FLAGS=$CFLAGS
@@ -1503,7 +1506,7 @@ F77FLAGS=$CFLAGS
-TOOLKIT_DIR=../toolkits
+TOOLKIT_DIR=toolkits
BUILD_DIR=build
CCTK_LIBDIR=lib
@@ -1609,7 +1612,7 @@ done
ac_given_srcdir=$srcdir
-trap 'rm -fr `echo "make.config.defn config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "make.config.defn make.config.deps make.config.rules config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -1651,6 +1654,7 @@ s%@AR@%$AR%g
s%@MKDIR@%$MKDIR%g
s%@SHELL@%$SHELL%g
s%@LD@%$LD%g
+s%@ARFLAGS@%$ARFLAGS%g
s%@F90FLAGS@%$F90FLAGS%g
s%@F77FLAGS@%$F77FLAGS%g
s%@TOOLKIT_DIR@%$TOOLKIT_DIR%g
@@ -1698,7 +1702,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
-CONFIG_FILES=\${CONFIG_FILES-"make.config.defn"}
+CONFIG_FILES=\${CONFIG_FILES-"make.config.defn make.config.deps make.config.rules"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/lib/make/configure.in b/lib/make/configure.in
index 083c0634..a57aecc4 100644
--- a/lib/make/configure.in
+++ b/lib/make/configure.in
@@ -5,8 +5,10 @@ dnl @author Tom Goodale
dnl @desc
dnl
dnl @enddesc
+dnl @version $Id$
dnl @@
dnl Process this file with autoconf to produce a configure script.
+
AC_REVISION($Id$)
AC_INIT()
AC_CONFIG_HEADER(config.h)
@@ -40,6 +42,9 @@ AC_C_LONG_DOUBLE
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(short int)
+AC_SUBST(ARFLAGS)
+ARFLAGS=rucs
+
AC_SUBST(F90FLAGS)
AC_SUBST(F77FLAGS)
@@ -55,7 +60,7 @@ AC_SUBST(BUILD_DIR)
AC_SUBST(CCTK_LIBDIR)
AC_SUBST(EXE)
-TOOLKIT_DIR=../toolkits
+TOOLKIT_DIR=toolkits
BUILD_DIR=build
CCTK_LIBDIR=lib
@@ -63,4 +68,4 @@ dnl Run any other scripts necessary
AC_OUTPUT_COMMANDS(,$PERL -s $srcdir/configure.pl -compiler=$F90 .)
dnl Output everything
-AC_OUTPUT(make.config.defn)
+AC_OUTPUT(make.config.defn make.config.deps make.config.rules)
diff --git a/lib/make/make.config.defn.in b/lib/make/make.config.defn.in
index 4aba0f38..e30303e2 100644
--- a/lib/make/make.config.defn.in
+++ b/lib/make/make.config.defn.in
@@ -1,3 +1,16 @@
+# /*@@
+# @file make.config.defn.in
+# @date Sun Jan 17 22:33:51 1999
+# @author Tom Goodale
+# @desc
+# Make definition file for a configuration
+# Defines the conpilers, etc.
+#
+# Should be run through autoconf to produce make.config.defn
+# @enddesc
+# @version $Id$
+# @@*/
+
SHELL = @SHELL@
MKDIR = @MKDIR@
CC = @CC@
@@ -19,10 +32,13 @@ F77FLAGS = @F77FLAGS@
LDFLAGS = @LDFLAGS@
-TOOLKIT_DIR = $(TOP)/@TOOLKIT_DIR@
+ARFLAGS = @ARFLAGS@
+
+# Where the CCTK puts things
+TOOLKIT_DIR = $(CCTK_HOME)/@TOOLKIT_DIR@
BUILD_DIR = $(TOP)/@BUILD_DIR@
CCTK_LIBDIR = $(TOP)/@CCTK_LIBDIR@
+# The name of the executable
EXE = @EXE@
-THORNS = testkit/test
diff --git a/lib/make/make.config.deps.in b/lib/make/make.config.deps.in
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/lib/make/make.config.deps.in
diff --git a/lib/make/make.config.rules.in b/lib/make/make.config.rules.in
new file mode 100644
index 00000000..c2c9cf75
--- /dev/null
+++ b/lib/make/make.config.rules.in
@@ -0,0 +1,25 @@
+# /*@@
+# @file make.config.rules.in
+# @date Sun Jan 17 22:31:16 1999
+# @author Tom Goodale
+# @desc
+# Rules to generate object files from source files in another directory.
+#
+# Note that, due to the (IMHO) rather bizarre way in which Make
+# deals with directories in the target names, this will
+# not work if the target is in a subdirectory.
+#
+# @enddesc
+# @@*/
+
+%.o: $(SRCDIR)/%.c
+ $(CC) $(CFLAGS) -c -o $@ $< $(addprefix -I, $(INC_DIRS))
+
+%.o: $(SRCDIR)/%.cc
+ $(CXX) $(CXXFLAGS) -c -o $@ $< $(addprefix -I, $(INC_DIRS))
+
+%.o: $(SRCDIR)/%.F77
+ $(F77) $(F77FLAGS) -c -o $@ $< $(addprefix -I, $(INC_DIRS))
+
+%.o: $(SRCDIR)/%.F
+ $(F90) $(F90FLAGS) -c -o $@ $< $(addprefix -I, $(INC_DIRS))
diff --git a/lib/make/make.configuration b/lib/make/make.configuration
index 4203fe75..3586ab48 100644
--- a/lib/make/make.configuration
+++ b/lib/make/make.configuration
@@ -1,25 +1,70 @@
-CONFIG = $(TOP)/config-stuff
+#/*@@
+# @file make.configuration
+# @date Sun Jan 17 22:15:23 1999
+# @author Tom Goodale
+# @desc
+# Makes the CCTK executable for a particulare configuration
+# @enddesc
+# @version $Id$
+# @@*/
-# Include the definitions for this configuration
+# Some configuration variables
+CONFIG = $(TOP)/config-data
+
+DATESTAMP = $(CCTK_HOME)/src/datestamp.c
+MAKE_DIR = $(CCTK_HOME)/lib/make
+
+# Dividers to make the screen output slightly nicer
+DIVEL = __________________
+DIVIDER = $(DIVEL)$(DIVEL)$(DIVEL)$(DIVEL)
+# Include the definitions for this configuration
include $(CONFIG)/make.config.defn
+# Include the list of thorns to be built
+include $(CONFIG)/make.thornlist
+
# Silence all but designated output
#.SILENT:
# Build the executable
-$(EXE): datestamp.o $(patsubst %,$(CCTK_LIBDIR)/lib%.a,$(notdir $(THORNS)))
+$(EXE): $(CONFIG)/make.thornlist $(patsubst %,$(CCTK_LIBDIR)/lib%.a,$(notdir $(THORNS))) $(CCTK_LIBDIR)/libCCTK.a
+ echo $(DIVIDER)
echo Creating $(EXE) from $(THORNS)
- $(CC) -c datestamp.c
- $(CC) -o $@ $(LDFLAGS) datestamp.o $(LIBDIRS:%=-L%) $(LIBS:%=-l%) -L$(CCTK_LIBDIR) $(addprefix -l,$(notdir $(THORNS)))
+ $(CC) -c $(DATESTAMP) -o $(TOP)/datestamp.o
+ $(CC) -o $@ $(LDFLAGS) $(TOP)/datestamp.o $(LIBDIRS:%=-L%) $(LIBS:%=-l%) -L$(CCTK_LIBDIR) $(addprefix -l,$(notdir $(THORNS))) -lCCTK
+ echo $(DIVIDER)
+ echo All done !
+ echo $(DIVIDER)
# Build a thorn library
# Libraries go into the appropriate library directory
# Each thorn's object files go into $(BUILD_DIR)/<thorn>
+# This makes sure the appropriate build directories exist
$(CCTK_LIBDIR)/lib%.a: update
+ echo $(DIVIDER)
echo Checking status of $(notdir $@)
+ if [ ! -d $(BUILD_DIR) ]; then $(MKDIR) $(BUILD_DIR) ; fi
+ if [ ! -d $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%) ]; then $(MKDIR) $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%) ; fi
cd $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%); \
- $(MAKE) TOP=$(TOP) SRCDIR=$(@:$(CCTK_LIBDIR)/lib%.a=$(TOOLKIT_DIR)/$(filter %$(@:$(CCTK_LIBDIR)/lib%.a=%),$(THORNS))) CONFIG=$(CONFIG) -f $(MAKE_DIR)/make.thornlib
+ $(MAKE) TOP=$(TOP) SRCDIR=$(@:$(CCTK_LIBDIR)/lib%.a=$(TOOLKIT_DIR)/$(filter %$(@:$(CCTK_LIBDIR)/lib%.a=%),$(THORNS))/src) CONFIG=$(CONFIG) NAME=$@ -f $(MAKE_DIR)/make.thornlib
+ echo $(DIVIDER)
+
+
+# Slightly modified rule for the flesh.
+# Also makes sure all the subdirectories are made.
+$(CCTK_LIBDIR)/libCCTK.a: update
+ echo $(DIVIDER)
+ echo Checking status of the flesh
+ if [ ! -d $(BUILD_DIR) ]; then $(MKDIR) $(BUILD_DIR) ; fi
+ if [ ! -d $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%) ]; then $(MKDIR) $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%) ; \
+ for dir in IO comm main util rfr ; \
+ do if [ ! -d $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%)/$$dir ] ; then $(MKDIR) $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%)/$$dir ; fi ; \
+ done ; fi
+ cd $(@:$(CCTK_LIBDIR)/lib%.a=$(BUILD_DIR)/%); \
+ $(MAKE) TOP=$(TOP) SRCDIR=$(CCTK_HOME)/src CONFIG=$(CONFIG) NAME=$@ -f $(MAKE_DIR)/make.thornlib
+ echo $(DIVIDER)
+
# Include any extra dependencies
diff --git a/lib/make/make.thornlib b/lib/make/make.thornlib
index 998b5de0..b384d949 100644
--- a/lib/make/make.thornlib
+++ b/lib/make/make.thornlib
@@ -1,16 +1,35 @@
+# /*@@
+# @file make.thornlib
+# @date Sun Jan 17 22:20:45 1999
+# @author Tom Goodale
+# @desc
+# Creates the library for a particular thorn
+# @enddesc
+# @version $Id$
+# @@*/
+
+# Silence all but designated output
+.SILENT:
+
+# Include the main make definitions for this configuration
include $(CONFIG)/make.config.defn
-INC_DIRS += $(SRCDIR) $(SRCDIR)/include
+# Add appropriate include lines
+INC_DIRS += $(SRCDIR) $(SRCDIR)/include $(CONFIG) $(CCTK_HOME)/src/include
+# Include the thorn's local include data
include $(SRCDIR)/make.code.defn
-THORN_SRCS = $(SRCS:%=$(SRCDIR)/%)
-
-OBJS = $(patsubst $(SRCDIR)/%.c,%.o,$(THORN_SRCS))
+# Turn source file names into object file names
+OBJS = $(patsubst %,%.o,$(basename $(SRCS)))
-$(CCTK_LIBDIR)/libtest.a: $(OBJS)
+$(NAME): $(OBJS)
+ echo Creating or updating $(NAME)
$(AR) $(ARFLAGS) $@ $(OBJS)
+ $(RANLIB) $@
+# Rules to make the object files
include $(CONFIG)/make.config.rules
+# Extra thorn-specific dependencies
include $(SRCDIR)/make.code.deps
diff --git a/setup b/setup
index ac5bd82d..acd83067 100644
--- a/setup
+++ b/setup
@@ -1,4 +1,4 @@
-#! /usr/bin/perl
+#! /usr/bin/perl -s
#/*@@
# @file setup
# @date Fri Jan 8 13:48:48 1999
@@ -6,13 +6,14 @@
# @desc
# Prototype setup file for the CCTK
# @enddesc
+# @version $Id$
#@@*/
$top = `pwd`;
chop $top;
-$configure = "$top/lib/sbin/configure.pl";
+$configure = "$top/lib/make/configure";
$uname = `uname`;
@@ -29,6 +30,7 @@ else
$config = $uname;
}
+# The build directory doesn't exist.
if (! -d "build" && ! -l "build")
{
print "Completely new cactus build. Creating config database\n";
@@ -39,6 +41,7 @@ if (! -d "build" && ! -l "build")
chdir build;
+# The specified configuration doesn't exist
if (! -d "$config" && ! -l "$config")
{
print "Creating new configuration $config.\n";
@@ -47,13 +50,32 @@ if (! -d "$config" && ! -l "$config")
chdir "$config";
- mkdir("toolkits",0755);
- mkdir("flesh",0755);
+ mkdir("build",0755);
+ mkdir("lib",0755);
mkdir("config-data",0755);
mkdir("libraries",0755);
-
- system("perl $configure config-data");
+
+ chdir "config-data";
+
+ $ENV{"EXE"} = "cctk";
+
+ system("$configure");
+ chdir "..";
chdir "..";
}
+# Rerun the configure script
+if($reconfig)
+{
+ print "Reconfiguring $config.\n";
+ chdir "$config";
+
+ chdir "config-data";
+
+ $ENV{"EXE"} = "cctk";
+
+ system("$configure");
+ chdir "..";
+ chdir "..";
+}
diff --git a/src/create_make.code.stuff b/src/create_make.code.stuff
new file mode 100644
index 00000000..9d8ea5ed
--- /dev/null
+++ b/src/create_make.code.stuff
@@ -0,0 +1,13 @@
+# These are commands which can be used to automatically create make.code.defn
+# and make.code.deps stuff where there are subdirectories.
+# Hopefully the finalmake system won't need these -- Tom
+#
+
+find . -name '*.c' -o -name '*.cc' | perl -p -e 's:\./::' | grep -v datestamp.c | awk 'BEGIN {print "SRCS=\\"}; {print $0 "\\"} END {print
+""};' - > make.code.defn
+
+find . -name '*.c' | perl -p -e 's,(.*)\.(.*),\1\.o:\$(SRCDIR)/\1.\2\n\t\$(CC) \$(CFLAGS) -o \$\@ -c \$< \$(addprefix -I\,\$(INC_DIRS)),' > make.code.deps
+
+find . -name '*.cc' | perl -p -e 's,(.*)\.(.*),\1\.o:\$(SRCDIR)/\1.\2\n\t\$(CXX) \$(CXXFLAGS) -o \$\@ -c \$< \$(addprefix -I\,\$(INC_DIRS)),' >> make.code.deps
+
+
diff --git a/src/datestamp.c b/src/datestamp.c
new file mode 100644
index 00000000..933c6125
--- /dev/null
+++ b/src/datestamp.c
@@ -0,0 +1,75 @@
+ /*@@
+ @file datestamp.c
+ @date Mon May 11 10:20:58 1998
+ @author Paul Walker
+ @desc
+
+ @enddesc
+ @@*/
+#include <stdio.h>
+
+static char *rcsid = "$Id$";
+
+ /*@@
+ @routine datastamp
+ @date Mon May 11 10:20:58 1998
+ @author Paul Walker
+ @desc
+
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+void datestamp() {
+ printf (" Compiled on %s at %s\n", __DATE__, __TIME__);
+}
+
+ /*@@
+ @routine compileTime
+ @date Mon May 11 10:20:58 1998
+ @author Paul Walker
+ @desc
+
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+char *compileTime() {
+ return (__TIME__);
+}
+
+ /*@@
+ @routine compileDate
+ @date Mon May 11 10:20:58 1998
+ @author Paul Walker
+ @desc
+
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+char *compileDate() {
+ return (__DATE__);
+}
+
+/*#define MAKETEST*/
+#ifdef MAKETEST
+int main()
+{
+ printf("CCTK maketest compiled on %s\n", compileDate());
+
+ return 0;
+}
+#endif
diff --git a/src/make.code.defn b/src/make.code.defn
new file mode 100644
index 00000000..e5974870
--- /dev/null
+++ b/src/make.code.defn
@@ -0,0 +1,29 @@
+SRCS=\
+IO/CactusDefaultIO.c\
+IO/RegisterIOFunction.c\
+comm/CactusDefaultComm.c\
+comm/RegisterCommFunction.c\
+comm/GHExtensions.c\
+main/CactusDefaultInitialise.c\
+main/CallStartupFunctions.c\
+main/InitialiseCactus.c\
+main/ProcessCommandLine.c\
+main/ProcessParameterDatabase.c\
+main/RegisterMainFunction.c\
+main/ShutdownCactus.c\
+main/flesh.cc\
+main/CactusDefaultEvolve.c\
+main/SetParams.c\
+main/InitialiseDataStructures.c\
+main/RecordImplementation.c\
+main/RegisterThorn.c\
+main/CreateGroup.c\
+main/StoreVariableData.c\
+main/ConfigData.c\
+util/RegisterKeyedFunction.c\
+util/StoreKeyedData.c\
+util/StoreNamedData.c\
+util/BinaryTree.c\
+util/CactusTimers.c\
+util/ParseFile.c\
+util/ParseFile.c
diff --git a/src/make.code.deps b/src/make.code.deps
new file mode 100644
index 00000000..6b004a22
--- /dev/null
+++ b/src/make.code.deps
@@ -0,0 +1,56 @@
+./IO/CactusDefaultIO.o:$(SRCDIR)/./IO/CactusDefaultIO.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./IO/RegisterIOFunction.o:$(SRCDIR)/./IO/RegisterIOFunction.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./comm/CactusDefaultComm.o:$(SRCDIR)/./comm/CactusDefaultComm.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./comm/RegisterCommFunction.o:$(SRCDIR)/./comm/RegisterCommFunction.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./comm/GHExtensions.o:$(SRCDIR)/./comm/GHExtensions.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/CactusDefaultInitialise.o:$(SRCDIR)/./main/CactusDefaultInitialise.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/CallStartupFunctions.o:$(SRCDIR)/./main/CallStartupFunctions.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/InitialiseCactus.o:$(SRCDIR)/./main/InitialiseCactus.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/ProcessCommandLine.o:$(SRCDIR)/./main/ProcessCommandLine.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/ProcessParameterDatabase.o:$(SRCDIR)/./main/ProcessParameterDatabase.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/RegisterMainFunction.o:$(SRCDIR)/./main/RegisterMainFunction.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/ShutdownCactus.o:$(SRCDIR)/./main/ShutdownCactus.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/CactusDefaultEvolve.o:$(SRCDIR)/./main/CactusDefaultEvolve.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/SetParams.o:$(SRCDIR)/./main/SetParams.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/InitialiseDataStructures.o:$(SRCDIR)/./main/InitialiseDataStructures.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/RecordImplementation.o:$(SRCDIR)/./main/RecordImplementation.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/RegisterThorn.o:$(SRCDIR)/./main/RegisterThorn.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/CreateGroup.o:$(SRCDIR)/./main/CreateGroup.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/StoreVariableData.o:$(SRCDIR)/./main/StoreVariableData.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/ConfigData.o:$(SRCDIR)/./main/ConfigData.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./util/RegisterKeyedFunction.o:$(SRCDIR)/./util/RegisterKeyedFunction.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./util/StoreKeyedData.o:$(SRCDIR)/./util/StoreKeyedData.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./util/StoreNamedData.o:$(SRCDIR)/./util/StoreNamedData.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./util/BinaryTree.o:$(SRCDIR)/./util/BinaryTree.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./util/CactusTimers.o:$(SRCDIR)/./util/CactusTimers.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./util/ParseFile.o:$(SRCDIR)/./util/ParseFile.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./datestamp.o:$(SRCDIR)/./datestamp.c
+ $(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))
+./main/flesh.o:$(SRCDIR)/./main/flesh.cc
+ $(CXX) $(CXXFLAGS) -o $@ -c $< $(addprefix -I,$(INC_DIRS))