VR Juggler

The Build System

Patrick Hartling

2.0.0

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being Appendix C, GNU Free Documentation License, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in Appendix C, GNU Free Documentation License.

$Date: 2007-01-01 10:26:55 -0600 (Mon, 01 Jan 2007) $


Table of Contents

Software Choreography
I. Introduction
1. The Philosophy
2. Goals of Doozer++
Ease of Use
Platform Independence
Compiler Freedom
Language Freedom
Separation of Tools and Tasks
Configuration
Compilation
Further Developments
3. Goals of the VR Juggler Build System
Centralize Complexity
Minimize Special Steps
Port Quickly to New Platforms
II. Design
4. The “Global” Build
Follow the Rules
Required Targets
File and Directory Names
Installation Hierarchy
configure.pl
Build Configuration File
Dependency Management
The *-config Scripts and the *.m4 Macro Files
A Typical -config Script
A Typical .m4 File
The Developer Installation
Future Goals
5. The Documentation Build
The Rules
Required Makefile Targets
Installation Hierarchy
Configuration and Customization
III. Extension
6. Extending the Global Configuration Script
JugglerConfigure.pm
JugglerConfigure
JugglerModule
ModuleDependency
conifgure.pl
Command-Line Argument Handling
Help Output
Build Configuration
File Regeneration
7. Extending a Module's Configure Script
Basic Concepts
Comments
Language
Variable Naming
Parameters to Macros
Custom Preprocessor Information
Structure of a configure.in File
Initialization
Custom Arguments
System-Dependent Setup
External Program Checks
External Library Checks
Header File Checks
Library Function Checks
Makefile Substitution
File Generation
Specific Modules
Tweek
8. Extending a Module's Makefiles
Makefile Conventions
File Names
Variable Assignments
Variable References
The Glue Makefile
Basic Structure
Auxiliary Files
Extension
Individual Component Makefiles
Basic Structure
Extension
Specific Modules
Multiple Libraries in VR Juggler
Java in Tweek
IDL in Tweek
IV. Appendices
A. Helper Scripts
mtree(1) and mtree.pl
install-dir.pl
install-src.pl
makefiles-gen.pl
InstallOps Perl Module
make-ver.sh
mkmakefile.pl
B. Build System Usage
C. GNU Free Documentation License
PREAMBLE
APPLICABILITY AND DEFINITIONS
VERBATIM COPYING
COPYING IN QUANTITY
MODIFICATIONS
COMBINING DOCUMENTS
COLLECTIONS OF DOCUMENTS
AGGREGATION WITH INDEPENDENT WORKS
TRANSLATION
TERMINATION
FUTURE REVISIONS OF THIS LICENSE
ADDENDUM: How to use this License for your documents
Glossary
Index