Differences between revisions 5 and 14 (spanning 9 versions)
Revision 5 as of 2007-07-26 05:02:38
Size: 2104
Editor: paul
Comment:
Revision 14 as of 2017-01-04 23:12:48
Size: 2670
Editor: clifford
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Choose environment =
godev -- compile with out debug information
gosdb -- compile with debug information
goerl $version -- choose which release
Line 2: Line 6:
CONTROL programs are compiled using special compile scripts. These scripts are usually found in the ''$CCDIR/script'' although some subdirectories have their own specialized versions.
Line 3: Line 8:
CONTROL programs are compiled using special compile scripts. These scripts are usually found in the ''$CCDIR/script'' although some subdirectories have their own specialised versions.

The scripts use environment variables to signal the project specific requirements. The scripts noted in [:CONTROL/Software/Scripts:Scripts] set build specific environment variables.
The scripts use environment variables to signal the project specific requirements. The scripts noted in [[CONTROL/Software/Scripts|Scripts]] set build specific environment variables.
Line 13: Line 16:
* ''cv'' compiles and/or links a program to be linked with an object file in the ''$MAIN'' directory and place the executable in the ''$BIN'' directory.
e.g. cv st ent c to creat $BIN/stent from stent*.c
* ''cv'' compiles and/or links a program to be linked with an object file in the ''$MAIN'' directory and place the executable in the ''$BIN'' directory. e.g. cv st ent c to create $BIN/stent from stent*.c
Line 16: Line 18:
 cv st ent o to creat $BIN/stent from stent*.o  . cv st ent o to create $BIN/stent from stent*.o
Line 18: Line 20:
Nothe that the ''ccc'' and ''cv'' scripts automatically take care of programs with multiple source files (e.g. steat.c, steat1.c, steat2.c). Note that the ''ccc'' and ''cv'' scripts automatically take care of programs with multiple source files (e.g. steat.c, steat1.c, steat2.c).
Line 20: Line 22:
In addition, the letters 'm' and 'u' in the script name specify alternate behavior. "u" indicates tat the executable is to be placed in the ''$UTBIN'' rather than the ''$BIN'' directory. The following combinations result:
''c+o ccc cv mc+o mccc mcv muccc mucv uccc ucv''
In addition, the letters 'm' and 'u' in the script name specify alternate behavior. "u" indicates that the executable is to be placed in the ''$UTBIN'' rather than the ''$BIN'' directory. The following combinations result: ''c+o ccc cv mc+o mccc mcv muccc mucv uccc ucv''
Line 27: Line 28:
The compiler used is the GNU CC compiler. There are issues with older releases that mean that they are built with specific Qt libraries and also built with relevant system libraries. Release '8' builds must be built on the ''robin'' server while releases '9' and '10' are built on ''sam''. The Windows releases are built on ''destiny''.
Line 28: Line 30:
The compiler used is the GNU CC compiler. There are issues with older releases taht mean that they ae built with specific Qt libraries and also built with relevant system libraries. Release '8' builds must be built on the ''robin'' server while releases '9' and '10' are built on ''sam''. = compiling for different releases =
due to updating of library compilling of different release will need to be done on different servers

so the following content are subjected to changes.

1,rel 8

non static ip server ask support for ip

2, rel 9, 10 , 11, 12

non static ip server ask support for ip

3, rel 13

robin

4, rel 14, rel 15

sam

Choose environment

godev -- compile with out debug information gosdb -- compile with debug information goerl $version -- choose which release

Compiling Programs

CONTROL programs are compiled using special compile scripts. These scripts are usually found in the $CCDIR/script although some subdirectories have their own specialized versions.

The scripts use environment variables to signal the project specific requirements. The scripts noted in Scripts set build specific environment variables.

There are three basic compile scripts:

* co compiles a source file to an object file (for later linking)

* ccc compiles a standalone program (a program that contains it's own main()) and places the executable in the $BIN directory. e.g. ccc braninfo c to create $BIN/braninfo from braninfo*.c

* cv compiles and/or links a program to be linked with an object file in the $MAIN directory and place the executable in the $BIN directory. e.g. cv st ent c to create $BIN/stent from stent*.c

  • cv st ent o to create $BIN/stent from stent*.o

Note that the ccc and cv scripts automatically take care of programs with multiple source files (e.g. steat.c, steat1.c, steat2.c).

In addition, the letters 'm' and 'u' in the script name specify alternate behavior. "u" indicates that the executable is to be placed in the $UTBIN rather than the $BIN directory. The following combinations result: c+o ccc cv mc+o mccc mcv muccc mucv uccc ucv

For example: uccc tranck c to compile tranck.c and place the executable in $UTBIN directory.

Also the nightly builds use korn shell scripts named build.ksh of which there is one per project directory which will be used to build all the components of that project . These can be called manually and are also called overnight to build the CONTROL suite overnight for all the supported platforms.

The compiler used is the GNU CC compiler. There are issues with older releases that mean that they are built with specific Qt libraries and also built with relevant system libraries. Release '8' builds must be built on the robin server while releases '9' and '10' are built on sam. The Windows releases are built on destiny.

compiling for different releases

due to updating of library compilling of different release will need to be done on different servers

so the following content are subjected to changes.

1,rel 8

non static ip server ask support for ip

2, rel 9, 10 , 11, 12

non static ip server ask support for ip

3, rel 13

robin

4, rel 14, rel 15

sam

CONTROL/Software/Development/Compiling (last edited 2017-01-04 23:13:03 by clifford)