ODESSA means Organization of Data Exchange in scientific Software Architectures. This system contains several tools. The code builder is just one of them.
The code builder is a freeware. It is presently a beta version proposed for evaluation.
automatic installation on windows. The builder must be used in a command windows (cmd.exe). The builder command is %builder%
local=`pwd` tar zxvf builder-linux.tar.gz alias builder=$local/odessa/proc/builder
Windows
%builder% [-h] [-v] [-d project-directory] [-f configuration-file] [platform-name]
Linux
builder [-h] [-v] [-d project-directory] [-f configuration-file] [platform-name]
Option flags
| -h | short user manual |
| -v | verbose mode : explanations of the builder work |
| -d | to provide the root directory of the software |
| -f | to provide the name of the configuration file (builder.cfg by default) |
The main idea consists in simplifying the task of a developer when compiling and linking his program. The usual tool for that is make, possibly associated to automake and autoconf, but its use is not obvious as far as FORTRAN is concerned. Indeed, the module files are not easy to manage and tools like sfmakedepend are often applied to generate dependencies.
But make has other drawbacks :
So the new proposed tool has the following objectives :
STRUCTURE TASK
NAME mycode ! task name
PROGRAM mycode ! main target : the executable program
DIR src ! the directory containing sources
SUFFIX '.f' ! the suffixes of the files to compile
SUFFIX '.c'
SUFFIX '.f90'
END
STRUCTURE PLATFORM ! description of a first platform
NAME "unix-intel" ! platform name
BUILD "bin/unix-intel" ! building directory
OBJ '.o' MOD '.mod' ! main suffixes of various files
LIB '.a' EXE ''
STRUCTURE COMPILER ! compiler description
SUFFIX '.f90' SUFFIX '.f' ! source file suffixes
COMMAND "ifort" ! command
FLAGS "-O3 -openmp" ! compilation flags
NOLINK "-c" ! the special flag peventing the link phase
OUT "-o" ! the flag to precise the name of the main output file
INC "-I" ! the flag to precise directories for includes and modules
MOD "-module" ! the flag to precise the directory receiving modules
END
STRUCTURE COMPILER ! compiler for C files
SUFFIX '.c' SUFFIX '.cc' ! source file suffixes
COMMAND "icc" ! command
FLAGS "-O3" ! compilation flags
NOLINK "-c" ! the special flag preventing the link phase
OUT "-o" ! the flag to precise the name of the main output file
END
STRUCTURE PROGRAM ! the linker
COMMAND "ifort" ! command to use.
OUT "-o" ! the flag to precise the program file
FLAGS "-openmp" ! optimizations flags
TAIL "-lX11 -lphread" ! command tail
END
END
To install the code, one just need to got to the root directory and to launch the command :
Linux :
cd my_root_directory builder
Windows (in a command windows) :
cd my_root_directory %builder%
It is possible to launch the command without changing the current directory
Linux :
builder -d /.../my_root_directory
Windows :
%builder% -d \...\my_root_directory