Changes between Version 3 and Version 4 of doc/app/palmbuild
- Timestamp:
- Nov 20, 2018 12:02:53 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
doc/app/palmbuild
v3 v4 1 = {{{palmbuild}}} technical description=1 = The PALM build script = 2 2 3 == Introduction == 4 {{{palmbuild}}} is the shell script to compile PALM and further utilities required for pre- and postprocessing the PALM data. It is invoked by the [wiki:doc/install/automatic automatic installer] as part of the installation process, or it can be called manually, and puts the created binaries in a folder named {{{MAKE_DEPOSITORY_<ci>}}}, where {{{<ci>}}} is the configuration identifier. It is also automatically invoked by the script [wiki:doc/app/palmrun palmrun] in two different ways, but only if {{{palmrun}}} is called manually. If {{{palmrun}}} cannot find pre-compiled PALM sources, it calls {{{palmbuild}}} to create the MAKE_DEPOSITORY. Furthermore, manual calls of {{{palmrun}}} always call {{{palmbuild}}} to generate a specific folder (names SOURCES_FOR_RUN_...) that contains all binaries for the specific run, which may be re-used by automatic restart runs (see ''automatic calls'' further below). 3 The script to compile PALM and its [utility (pre-/postprocessing) programs] is called {{{palmbuild}}}. It resides under {{{trunk/SCRIPTS}}} and is invoked by the [wiki:doc/install/automatic automatic installer] as part of the installation process. It can also be executed manually, e.g. in case of a [#svnupdate PALM code update] from the svn repository, or code modifications by the user. Each modifications of the source code requires new compilation.\\\\ 5 4 6 Manual calls of {{{palmbuild}}} are required in case that a new PALM code version has been checked out from the repository, or if a modified working copy of the code shall be used for PALM runs. 7 8 {{{palmbuild}}} is steered by options as well as settings in the [wiki:doc/app/palm_config configuration file]. It compiles code based on the unix makefile mechanism. 5 {{{palmbuild}}}\\\\ 6 * is steered by settings, e.g. about compiler options, in the [wiki:doc/app/palm_config configuration file] .palm.config.<configuration identifier>,\\\\ 7 * compiles code based on the unix makefile mechanism,\\\\ 8 * adds the created binaries to the directory MAKE_DEPOSITORY_<configuration identifier>,\\\\ 9 * is automatically invoked by the PALM run script [wiki:doc/app/palmrun palmrun] in case this doesn't find the respective MAKE_DEPOSITORY_<configuration identifier>. 9 10 10 11 \\ 11 == How to call {{{palmbuild}}} manually==12 Manual calls of {{{palmbuild}}} are used to generate or update the compiled PALM sources (binaries). Specific informations e.g. about the compiler and the compiler options to be used need to be specified in the [wiki:doc/app/palm_config configuration file]. Relevant variables to be specified are ''source_path'', ''user_source_path'', ''compiler_name'', ''compiler_name_ser'', ''cpp_options'', ''make_options'', ''compiler_options'' and ''linker_options''. See [wiki:doc/app/palm_config configuration file] for a description of these variables. Since you can have different configuration files (for different compilers, compiler options, or hosts), you need to specify the configuration file to be used by {{{palmbuild}}}. Assuming a configuration file {{{.palm.config.abcde}}}, you need to enter 12 == Execute {{{palmbuild}}} == 13 Assuming a configuration file named {{{.palm.config.default}}}, you need to type the command 13 14 {{{ 14 palmbuild -c abcde15 palmbuild -c default 15 16 }}} 16 {{{abcde}}} is the so-called ''configuration identifier''. After entering the command, informative messages will appear in the terminal: 17 Since you can have different configuration files (for different compilers, compiler options, or hosts), you need to specify the configuration file to be used by the option {{{-c}}}. The suffix {{{default}}} in this example is the <configuration identifier>, which can be an arbitrary ASCII-character string.\\ 18 19 After entering the command, informative messages will appear in the terminal: 17 20 {{{ 18 21 #------------------------------------------------------------------------# … … 44 47 In case of a configuration file for PALM runs on a remote host, sources are copied via {{{scp}}} to the remote host and the compiler is called via {{{ssh}}} on the remote host too. Folder {{{MAKE_DEPOSITORY_abcde}}} is created under {{{base_directory}}} on the remote host. 45 48 46 In case you have updated the PALM code, you need to call {{{palmbuild}}} again: 49 [=#svnupdate In case you have updated the PALM code, you need to call {{{palmbuild}}} again:] 47 50 {{{ 48 51 cd ~/palm/current_version