Difference between revisions of "Build System Analysis:build.pl versus makefile"
JanIversen (talk | contribs) |
JanIversen (talk | contribs) |
||
Line 97: | Line 97: | ||
| '''not suported''' | | '''not suported''' | ||
|- | |- | ||
− | | | + | | --help |
− | | | + | | print help info |
| '''not suported''' | | '''not suported''' | ||
|- | |- | ||
− | | | + | | --ignore |
− | | | + | | force tool to ignore errors |
+ | | "make -i" | ||
+ | |- | ||
+ | | --html | ||
+ | | generate html page with build status file named unxlngx6.pro.build.html will be generated in /share/opensource/aoo/branches/l10n40/main | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --html_path | ||
+ | | set html page path | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --dontgraboutput | ||
+ | | do not grab console output when generating html page | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --genconf | ||
+ | | generate/modify workspace configuration file | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --add | ||
+ | | add active module(s) to configuration file | ||
+ | | edit Makefile | ||
+ | |- | ||
+ | | --remove | ||
+ | | removeactive modules(s) from configuration file | ||
+ | | edit Makefile | ||
+ | |- | ||
+ | | --removeall | ||
+ | --clear | ||
+ | | remove all active modules(s) from configuration file | ||
+ | | edit Makefile | ||
+ | |- | ||
+ | | --stoponerror | ||
+ | | stop build when error occurs (for mp builds) | ||
+ | | default unless -i is used | ||
+ | |- | ||
+ | | --interactive | ||
+ | | start interactive build process (process can be managed via html page) | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --job=job_string | ||
+ | | execute custom job in (each) module. job_string is a shell script/command to be executed instead of regular dmake jobs | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --pre_job=pre_job_string | ||
+ | | execute preliminary job in (each) module. pre_job_string is a shell script/command to be executed before regular job in the module | ||
+ | | '''not suported''' | ||
+ | |- | ||
+ | | --post_job=job_string | ||
+ | | execute a postprocess job in (each) module. post_job_string is a shell script/command to be executed after regular job in the module | ||
| '''not suported''' | | '''not suported''' | ||
|} | |} | ||
− | + | There will be 1 Makefile in main with all intermodule dependencies (first line in prj/build.lst) and | |
− | + | 1 Makefile in each module with the dependencies in prj/build.lst, this makefile will also have target=deliver which contains all lines from prj/deliver.lst | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 09:27, 18 October 2013
build.pl versus central makefile
In order to refactor our build system, the functionality of build.pl and how it can be translated into a central makefile have been analyzed.
The following table contains all build.pl options, with description (build --help), and the make (in main) equivalent
Option | Description | Makefile |
---|---|---|
--all | build all projects from very beginning till current one | "make" builds all modules
"make <module>" builds to and with <module> |
--from | build all projects dependent from the specified (including it) till current one | not suported |
--genPO | extract en-US PO file(s), no build/deliver (usable for '-all' and '-from' keys) | "make genPO" to extract from all modules
"<module>/make genPO" to extract from a single module |
--exclude_branch_from | exclude module(s) and its branch from the build | not suported |
--mode OOo | build only projects needed for OpenOffice.org | not suported |
--prepare | clear all projects for incompatible build from prj_name till current one [for platform] (cws version) | "make clear" to clear all modules
"<module>/make clear" to clear a single module |
--with_branches- | the same as "--from" but with build all projects in neighbour branches | not suported |
--skip | do not build certain module(s) | not suported |
--since | build all projects beginning from the specified till current one (the same as "--all:prj_name", but skipping prj_name) | "make <module>" |
--checkmodules | check if all required parent projects are availlable | "make -q" dry-run for dependencies all modules
"make <module> -q" dry-run for dependencies of <module> |
--show | show what is going to be built | "make -q" dry-run for dependencies all modules
"make <module> -q" dry-run for dependencies of <module> "<module>/make -q" dry-run for all files in <module> |
--file | generate command file file_name | not suported |
--deliver | only deliver, no build (usable for '-all' and '-from' keys) | "make deliver" delivers all modules
"<module>/make deliver" delivers a single module |
-P | start multiprocessing build, with number of processes passed | "make -j<x>" where <x> is number of parallel processes |
--server | start build in server mode (clients required) | not suported |
--setenvstring (--server) | string for configuration of the client environment | not suported |
--port (--server) | set server port, default is 7890. You may pass several ports, the server will be started on the first available
otherwise the server will be started on first available port from the default range 7890-7894 |
not suported |
--client_timeout (--server) | time frame after which the client/job is considered to be lost. Default is 120 min | not suported |
--dlv_switch | use deliver with the switch specified | not suported |
--help | print help info | not suported |
--ignore | force tool to ignore errors | "make -i" |
--html | generate html page with build status file named unxlngx6.pro.build.html will be generated in /share/opensource/aoo/branches/l10n40/main | not suported |
--html_path | set html page path | not suported |
--dontgraboutput | do not grab console output when generating html page | not suported |
--genconf | generate/modify workspace configuration file | not suported |
--add | add active module(s) to configuration file | edit Makefile |
--remove | removeactive modules(s) from configuration file | edit Makefile |
--removeall
--clear |
remove all active modules(s) from configuration file | edit Makefile |
--stoponerror | stop build when error occurs (for mp builds) | default unless -i is used |
--interactive | start interactive build process (process can be managed via html page) | not suported |
--job=job_string | execute custom job in (each) module. job_string is a shell script/command to be executed instead of regular dmake jobs | not suported |
--pre_job=pre_job_string | execute preliminary job in (each) module. pre_job_string is a shell script/command to be executed before regular job in the module | not suported |
--post_job=job_string | execute a postprocess job in (each) module. post_job_string is a shell script/command to be executed after regular job in the module | not suported |
There will be 1 Makefile in main with all intermodule dependencies (first line in prj/build.lst) and 1 Makefile in each module with the dependencies in prj/build.lst, this makefile will also have target=deliver which contains all lines from prj/deliver.lst