User Tools

Site Tools


build:bindings

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
build:bindings [2014/07/08 11:23] Yann Pouillonbuild:bindings [2014/11/04 22:47] – [Workflow] Yann Pouillon
Line 1: Line 1:
 +====== Building bindings ======
 +===== Introduction =====
 +The bindings available in Abinit allow external packages to access some Abinit components and remain synchronized with the latest developments in a semi-automatic manner.
  
 +For a typical example using the Abinit parser bindings, please see [[http://www-drfmc.cea.fr/L_Sim/V_Sim/|the home page of V_Sim]], and more specifically its [[http://www-drfmc.cea.fr/L_Sim/V_Sim/install.html|installation howto]].
 +
 +**Important note**: since the bindings are still relatively experimental and might cause unexpected issues, we recommend you to build Abinit without the //--enable-exports// option for all production calculations.
 +
 +===== Workflow =====
 +
 +Abinit bindings are built independently of the core source code. They only require the core build to be configured with the //--enable-exports// option. The following diagram shows the typical workflow used to obtain the bindings at build time.
 +
 +<ditaa>
 ++------------------------+    +----------------------------+    +---------------------+
 +| Normal build of Abinit |    | Go to the bindings/ subdir |    | Configure and build |
 +| configured with        +--->+ of the build directory     +--->+ bindings            |
 +| enable_exports set        | and edit config.sh            |                     |
 ++------------------------+    +----------------------------+    +---------------------+
 +</ditaa>
 +
 +The typical command sequence for such a build would read as follows (replacing the //${...}// variables by the names you chose for your build):
 +
 +<code bash>
 +cd ${abinit_srcdir}
 +mkdir ${abinit_builddir} && cd ${abinit_builddir}
 +${abinit_srcdir}/configure --enable-exports
 +make -j8
 +cd bindings
 +edit config.sh
 +${abinit_srcdir}/bindings/configure
 +make
 +</code>
 +
 +To build an individual bindings item, just type ''make <name_of_the_binding>-bindings'' from the top //bindings// build directory.