User Tools

Site Tools


difx:build

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
difx:build [2010/12/02 07:57]
geoffcrew
difx:build [2015/10/21 10:08] (current)
Line 1: Line 1:
-=== Multiple Builds from a Common Source === 
  
-**__Warning:​ This page has not been vetted yet for the casual user, so try this at your own risk.__**+=== Multiple Builds from a Common Source ===
  
-As an alternative to ''​install-difx''​, there is now a script ''​build-difx''​ that allows DiFX to be built and installed from a directory hierarchy outside of the SVN source tree.  For example, if you need to compile DiFX for multiple architectures you can have independent build and root directories for each.  Also, since the built files are not in the source tree, an ''​svn status''​ command will mostly only list files that are in the SVN distribution (//i.e.// no built files).  For compatibility,​ ''​build-difx''​ also does the same work as ''​install-difx''​ does.  This script is still under development,​ and has only been tested on the trunk.+The script ​''​install-difx''​ now allows DiFX to be built and installed from a directory hierarchy outside of the SVN source tree.  For example, if you need to compile DiFX for multiple architectures you can have independent build and root directories for each.  Also, since the built files are not in the source tree, an ''​svn status''​ command will mostly only list files that are in the SVN distribution (//i.e.// no built files).
  
 The steps now are: The steps now are:
Line 10: Line 9:
   - prepare and ''​source''​ a setup script as before   - prepare and ''​source''​ a setup script as before
   - create a build directory somewhere   - create a build directory somewhere
-  - run /​fullpathto/''​build-difx''​ in this build directory+  - run /​fullpathto/''​install-difx''​ in this build directory
  
-If you have previously (as most developers have) been building in the source SVN directory, the first configure process will complain that the "​source is already configured, run make distclean"​ and halt.  (This is a feature designed to prevent you from accidentally misconfiguring a build for one architecture as another.) ​ Since there are multiple subdirectories to the DiFX project, fixing this could be tedious, so there is an option (''​--pristine''​) to do this for you.  There are quite a few options to ''​build-difx'';​ use ''​--help''​ for brief descriptions.+If you have previously (as most developers have) been building in the source SVN directory, the first configure process will complain that the "​source is already configured, run make distclean"​ and halt.  (This is a feature designed to prevent you from accidentally misconfiguring a build for one architecture as another.) ​ Since there are multiple subdirectories to the DiFX project, fixing this could be tedious, so there is an option (''​--pristine''​) to do this for you.  There are quite a few options to ''​install-difx'';​ use ''​--help''​ for brief descriptions.
  
  
Line 26: Line 25:
 </​code>​ </​code>​
  
-Then we make a build directory. ​ ''​build-difx''​ prepends a directory therein (''​pkgconfig''​) to the ''​$PKG_CONFIG_PATH''​ so that you can place custom ''​pkg-config''​ files there if you need to handle some special cases (//e.g.// IPP):+Then we make a build directory. ​ ''​install-difx''​ prepends a directory therein (''​pkgconfig''​) to the ''​$PKG_CONFIG_PATH''​ so that you can place custom ''​pkg-config''​ files there if you need to handle some special cases (//e.g.// IPP):
  
 <​code> ​ <​code> ​
Line 41: Line 40:
  
 <​code>​ <​code>​
-  $DIFXROOT/​../​difx-svn/​setup/​build-difx --pristine+  $DIFXROOT/​../​difx-svn/​setup/​install-difx --pristine
   svn status $DIFXROOT/​../​difx-svn   svn status $DIFXROOT/​../​difx-svn
 </​code>​ </​code>​
Line 48: Line 47:
  
 <​code>​ <​code>​
-  $DIFXROOT/​../​difx-svn/​setup/​build-difx+  $DIFXROOT/​../​difx-svn/​setup/​install-difx
 </​code>​ </​code>​
  
 There are several independent packages within the DiFX project, and system configuration will be required for each of them.  If you are There are several independent packages within the DiFX project, and system configuration will be required for each of them.  If you are
-developing code and are frequently rebuilding, ''​build-difx''​ can create a cache to speed up this configuration somewhat:+developing code and are frequently rebuilding, ''​install-difx''​ can create a cache to speed up this configuration somewhat:
  
 <​code>​ <​code>​
-  $DIFXROOT/​../​difx-svn/​setup/​build-difx -v --cache=difx-config-cache+  $DIFXROOT/​../​difx-svn/​setup/​install-difx -v --cache=difx-config-cache
 </​code>​ </​code>​
  
 The ''​-v''​ argument provides some additional diagnostics on what directories are being created or traversed. The ''​-v''​ argument provides some additional diagnostics on what directories are being created or traversed.
  
-Once the build has completed (you will see ''"​Done!"''​) you can remove the build directory if you like.  Alternatively you can leave it around for your next ''​svn update''​ and build cycle. ​ Another useful option to ''​build-difx''​ is the ''​--targ''​ option which lets you pass certain targets to all the ''​make''​ steps in the tree.  For example:+Once the build has completed (you will see ''"​Done!"''​) you can remove the build directory if you like.  Alternatively you can leave it around for your next ''​svn update''​ and build cycle. ​ Another useful option to ''​install-difx''​ is the ''​--targ''​ option which lets you pass certain targets to all the ''​make''​ steps in the tree.  For example:
  
 <​code>​ <​code>​
-  $DIFXROOT/​../​difx-svn/​setup/​build-difx -v --targ='​-n'​+  $DIFXROOT/​../​difx-svn/​setup/​install-difx -v --targ='​-n'​
 </​code>​ </​code>​
  
 will traverse the DiFX build heirarchy and tell you what it //would// build. ​ (//I.e.// it invokes ''​make -n''​ within each ''​Makefile'',​ in order.) will traverse the DiFX build heirarchy and tell you what it //would// build. ​ (//I.e.// it invokes ''​make -n''​ within each ''​Makefile'',​ in order.)
- + 
 +== History == 
 + 
 +The setup directory presently (Dec 7, 2011) contains the original version of ''​install-difx''​ as ''​donotuse-difx'',​ and a copy named ''​build-difx''​. ​ Both of these will disappear at some point. 
  
difx/build.txt · Last modified: 2015/10/21 10:08 (external edit)