= How do i begin playing with CMT ? = by V.Garonne [[BR]] Date: 05.4.2005 [[BR]] Version : 0.1 [[BR]] == A package creation: The classic Hello world example == We do here the classic "Hello World" example with CMT. First we create the cmt package called "test" with version 1: {{{ > cmt create test v1 ------------------------------------------ Configuring environment for package test version v1. CMT version v1r18p20050501. Root set to /users/dsksi/garonne. System is Linux-i686 ------------------------------------------ Installing the package directory Installing the version directory Installing the cmt directory Installing the src directory Creating setup scripts. Creating cleanup scripts. > cd test/v1 > ls cmt src }}} We see here that a directory tree has been created. We now create and writte our small "C++" program (main.cxx, hello.h and hello.cxx).[[BR]] We have: {{{ > more src/hello.h ////////////////////////////////////////////////// // author: vincent garonne // // date: 4/5/2005 // // description: hello world description file // ////////////////////////////////////////////////// #ifndef __HELLO_WORLD__ #define __HELLO_WORLD__ class hello { public: // constructor hello () {} // desctructor ~hello (){} // function example void print (); }; #endif // __HELLO_WORLD__ > more src/hello.cxx ////////////////////////////////////////////////// // author: vincent garonne // // date: 4/5/2005 // // description: hello world body // ////////////////////////////////////////////////// using namespace std; #include #include "hello.h" void hello::print () { cout<<"Hello le world !!!"< more src/main.cxx ////////////////////////////////////////////////// // author: vincent garonne // // date: 4/5/2005 // // description: main program // ////////////////////////////////////////////////// #include "hello.h" int main () { hello object; object.print(); return 0; } }}} Then to construct the executable, we need to specify within the "requirements" file in the cmt directory : {{{ > cd cmt > more requirements package test author Vincent Garonne application test hello.cxx main.cxx }}} Now we can compil and execute: {{{ > cmt make ... > source setup.csh > ../Linux-i686/test.exe Hello le world !!! }}} By default the executable has been put in the Linux-i687 directory. == The library creation == To create the hello library, it need to specify one more line in the requirements file. {{{ > more requirements package test author Vincent Garonne application test hello.cxx main.cxx library hello hello.cxx > cmt make ... > ls ../Linux-i686/libhello.* ../Linux-i686/libhello.a ../Linux-i686/libhello.so }}} The libraries have been built.