80 likes | 209 Views
Development meeting. 7 April 2004. Platforms Build system CVS structure Namespace structure Overall development process Testing. Platforms. Languages: ANSI C++ Java (certain projects) Linux: Gcc >=3.0, Flex+Bison, PThreads, GNU Make, CVS (for checkout) Cygwin
E N D
Development meeting 7 April 2004
Platforms • Build system • CVS structure • Namespace structure • Overall development process • Testing
Platforms • Languages: • ANSI C++ • Java (certain projects) • Linux: • Gcc >=3.0, Flex+Bison, PThreads, GNU Make, CVS (for checkout) • Cygwin • Gcc >=3.0, Flex+Bison, PThreads, GNU Make, CVS (for checkout) • Windows 2000, xp • Visual C++ >= 7, Flex+Bison, PThreads, CVS • VxWorks (eventually)
Build system • Single build system • Lower maintenance cost / time • Easier builds, setup time • Possibilities: • GNU Make (or just Make?) • Boost.Jam • Apache Ant • Goal: able to compile the whole system with one command • Discuss pros/cons
Making Make work • Recursive makes • cd Module/; make • Other ways? • Use the compiler to automatically compute dependencies • gcc –MM file.cpp => file.o : file.cpp file.h some_other_file.h • see sample Makefile • A single Makefile included from the individual modules’ Makefiles • abstracts the nastiness • Much easier to maintain
Documentation/ Doxygen Presentations Publications Internal documentation External documentation [user] Titan Kirk Examples/ ST7 BIOPlex src/ or source/ Model/ [or Structures/???] Common/ [collection of model-based utilities] Reader/ CCA/ doc/ [Design document.] test/ [Simple toy testing – or unit tests?] HCA/ Hybrid/ TPN/ Estimation/ ME CompiledME HybridME Reconfiguration/ GI GI1 CompiledGI RP Tools/ [?] General [was: Util/] SAT Generators BFIG etc. Interfaces DispatcherConnection (down) CommandListener (up) RTAPI bin/ [???] Test/ [regression tests] Libraries/ Log4cplus, uBLAS, Bayes++ etc. CVS directory structure
Namespace structure • Definitely a root namespace. Candidates: • Mers • Titan • Kirk • Within – lots of possibilities: • One per directory? • Paul: Problem - If include file, have to do both include path and using namespace path where path is long • Paul: No • One per logical module? • Maybe – preferably not much depth, e.g. • Mers::Model • One for the whole group • Except experimental stuff – could
Getting this done • … Build system • Order – 2 possibilities: • Move ME,MR,etc. to new SAT engine first, then reorganize • Reorganize, get things working with old SAT engine, the update ME,MR,etc. to new engine