--- ray/platform/README 2008/12/23 15:03:59 1.1 +++ ray/platform/README 2016/03/10 17:36:18 1.4 @@ -1,27 +1,48 @@ -Platform configuration files for SCons based build procedure. +Platform configuration files for the SCons based build system +------------------------------------------------------------- - -.cfg +_<##>.cfg -------------- -The .cfg files in this directory are use to determine +The _<##>.cfg files in this directory are used to determine the right settings, libraries, source files etc. on the platform where you are building Radiance. The build system will select the -right file automatically. +appropriate file automatically. If your platform isn't supported yet, then you can create a new -file with an appropriat name (SCons will tell you what it +file with an appropriat name (SCons should tell you what it expects). Usually, you will start by copying the file of the most -similar suupported platform. +similar supported platform, and then make the necessary changes. On unix based platforms without a specific config file, the file -"posix.cfg" will be used (which may or may not work well enough). +"posix_<##>.cfg" will be used (which may or may not work well enough). +As of this writing, the following platforms are included where the +numbers 32 and 64 indicate 32 bit or 64 bit systems rspectively. +(although not all of them have been tested very recently): +* Linux_32.cfg Linux +* Linux_63.cfg Linux +* FreeBSD_32.cfg FreeBSD unix +* FreeBSD_64.cfg FreeBSD unix +* Darwin_64.cfg Macintosh OS-X +* Darwin_32.cfg Macintosh OS-X +* posix_64.cfg default for unknown Unix systems +* posix_32.cfg default for unknown Unix systems +* Windows_64.cfg Microsoft Windows with Visual C/C++ +* Windows_32.cfg Microsoft Windows with Visual C/C++ +* mingw_64.cfg MingW on MS Windows http://www.mingw.org/ +* mingw_32.cfg MingW on MS Windows http://www.mingw.org/ + +The configuration for 32 bit and 64 bit architecture of the +same platform will typically be very similar, with just some +compiler flags indicating the different target. + + _custom.cfg --------------------- -If you want to experiment with changes to the shipped file, then +If you want to experiment with changes to the downloaded file, then you can create a copy named _custom.cfg, and make your changes there. If such a file exists, then it will be used in place of the original. @@ -36,59 +57,71 @@ line is ignored as a comment. A config file consists of several sections, each of which is introduced by a keyword in brackets. Within each section, a configuration directive starts with a -keyword and a colon, followed by the specific instructions. +keyword and a colon, followed by the data assigned to that keyword. Sections -------- [install] # directories where to install the software -[build] # compile and link instruction for production builds -[debug] # compile and link instruction for debug builds +[build] # compile and link instructions for production builds +[debug] # compile and link instructions for debug builds [code] # code compatibility configuration Install section --------------- +Values in this section may refer to environment variables, in the +form {VARNAME}. On Windows the variable names must be given in +all uppercase. + # The root directory of the Radiance installation -RAD_BASEDIR: /home/gm/src/rad/r6b + # The second example reflects the installation standard on Windows. +RAD_BASEDIR: /opt/radiance +RAD_BASEDIR: {PROGRAMFILES}/radiance # The following are relative to RAD_BASEDIR! # The directory for executables RAD_BINDIR: bin + # The directory for support files (.cal, .pic, .fnt, etc.) RAD_RLIBDIR: share/lib - # The directory for the manual files + + # The directory for the man pages RAD_MANDIR: share/man Debug and Build sections ------------------------ - # The same keywords can be used in both, but usually their - # assigned values will vary. +The same keywords can (and usually will) be used in both, but +their assigned values will often differ. # The compiler to use (example: Gnu gcc) CC: gcc - # The directories for C header files (not normally needed). + # The directories for system header files (not normally needed). CPPPATH: - # Symbols to define for the preprocessor (example for Cygwin) -CPPDEFINES: freebsd HDSUF=.exe + # Symbols to define for the preprocessor (example for Mingw) + # The symbol "RT_WINPROC" enables the use of our custom popen + # routine, which allows for pipelining, backslash-newline + # escapes, and some more functionality without the need for + # a unix shell. +CPPDEFINES: freebsd HDSUF=.exe RT_WINPROC - # Flags for the C preprocessor (example + # Flags for the C preprocessor (example for gcc) CPPFLAGS: -O2 -Wall -Wno-uninitialized - # Flags for the C compiler (example for debug build) + # Flags for the C compiler (example for debug build with gcc) CCFLAGS: -pg - # The directories for required libraris (not normally needed) + # The directories for system libraries (not normally needed) LIBPATH: # Flags for the linker (example for debug build on Windows) -LINKFLAGS: /debug +LINKFLAGS: /DEBUG /INCREMENTAL:NO # Flags specific to ezxml.c (example for cygwin/mingw) EZXML_CPPDEFINES: EZXML_NOMMAP @@ -96,7 +129,7 @@ EZXML_CPPDEFINES: EZXML_NOMMAP # Where to find an installed libtiff and its include files # (Not needed when on a standard search path) # If no libtiff is found here or on the standard paths, then - # Radiance will build its own. + # the executables "normtiff" and "ra_tiff" won't be built. TIFFLIB: TIFFINCLUDE: @@ -106,8 +139,8 @@ The Code section # There should be no need to edit this section in existing # config files. If you create a new file for a yet untested - # platform, you may need to ask on the dev-list what might - # work best. + # platform, you may need to ask on the dev-list what will + # work here. RAD_COMPAT: # theoretically obsolete (src/common/strcmp.c) RAD_MATHCOMPAT: # erf.c floating point error function @@ -117,4 +150,6 @@ RAD_MLIB: # usually 'm', or any fastlib availabl RAD_SOCKETLIB: # ws_2_32 on Windows (VC links it automatically) RAD_PROCESS: # our process abstraction and win_popen() RAD_PCALLS: # more custom process abstraction + +