README
changeset 26 8a9f4e791832
parent 2 125cd5d2cd9e
child 38 cd00ea74156e
equal deleted inserted replaced
25:48e1871bcdcd 26:8a9f4e791832
     1 
     1 
     2 This workspace contains examples of building open source software components using three methodologies.  In the spec-files directory, the pkgbuild is use to build the components from a RPM spec file based build.  In the components directory, a make(1) based build is used.
     2 	    Getting started with the Userland Consolidation
     3 
       
     4 spec-files
       
     5 	spec based build
       
     6 
       
     7 components
       
     8 	GNU make based build(s)
       
     9 
       
    10 make-rules
       
    11 	Shared rules to include in component specific makefiles (instructions)
       
    12 
       
    13 	make-rules/configure.mk
       
    14 		shared rules for components using GNU auto* tools to build
       
    15 
       
    16 	make-rules/ips.mk
       
    17 		shared rules for packaging under IPS
       
    18 
       
    19 	make-rules/prep.mk
       
    20 		shared rules for downloading, unpacking, and patching component
       
    21 		source.
       
    22 
       
    23 	make-rules/setup.py.mk
       
    24 		shared rules for components using python setup.py to build
       
    25 
       
    26 	make-rules/shared-macros.mk
       
    27 		common macros that apply to building many things.
       
    28 
       
    29 tools
       
    30 	shared tools for building components
       
    31 
       
    32 transforms
       
    33 	shared pkgmogrify(1) transformations to apply to packages as they are
       
    34 	being built and published
       
    35 
     3 
    36 
     4 
    37 To build uing the GNU make based build you can
     5 Building the bits
    38 	$ WS_TOP=$(pwd) ; cd components ; gmake -j 4 publish
       
    39 This will construct a files based repository for publishing, create a log directory, build the components (4 at a time) and publish them to the repo.  Logs of each component build will go in the logs directory
       
    40 
     6 
       
     7     The Userland consolidation maintains a Mercurial gate at
       
     8     
       
     9         ssh://[email protected]//hg/userland/gate
       
    10         
       
    11     This gate contains build recipies, patches, IPS manifests, etc. necessary
       
    12     to download, prep, build, test, package and publish open source software.
       
    13     In order to build the contents of the Userland gate, you need to clone it.
       
    14     Since you are reading this, you probably already have, but in any event
       
    15     you can do so with the following command
       
    16     
       
    17     $ hg clone ssh://[email protected]//hg/userland/gate /scratch/clone
       
    18     
       
    19     In order to build the bits either individually or collectively, you must
       
    20     set the WS_TOP environment variable to point to the top of your workspace.
       
    21     
       
    22     $ export WS_TOP=/scratch/clone
       
    23     
       
    24     To build and publish the entire contents of the gate, you can use
       
    25     
       
    26     $ cd /scratch/clone
       
    27     $ gmake publish
       
    28     
       
    29     To build and publish a specific component you need to initialize the
       
    30     workspace by building the tools and creating a repository to publish
       
    31     your results in.  The easiest way to do this is to
       
    32     
       
    33     $ cd /scratch/clone
       
    34     $ gmake setup
       
    35     
       
    36     Once you have initialize the the workspace, you can build individual
       
    37     components by
       
    38     
       
    39     $ cd /scratch/clone/components/(component)
       
    40     $ gmake publish
       
    41     
       
    42     All of the bits are are built will be published to the repository created
       
    43     by the setup step (file:///scratch/clone/repo/)  If you build the entire
       
    44     contents of the gate, individual build logs for each component will be
       
    45     located at /scratch/clone/logs/(target):(component).log
       
    46 
       
    47