root/opal/mca/installdirs/installdirs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2006-2015 Los Alamos National Security, LLC.  All rights
   4  *                         reserved.
   5  * $COPYRIGHT$
   6  *
   7  * Additional copyrights may follow
   8  *
   9  * $HEADER$
  10  */
  11 
  12 #ifndef OPAL_MCA_INSTALLDIRS_INSTALLDIRS_H
  13 #define OPAL_MCA_INSTALLDIRS_INSTALLDIRS_H
  14 
  15 #include "opal_config.h"
  16 
  17 #include "opal/mca/mca.h"
  18 #include "opal/mca/base/base.h"
  19 
  20 BEGIN_C_DECLS
  21 
  22 /*
  23  * Most of this file is just for ompi_info.  The only public interface
  24  * once opal_init has been called is the opal_install_dirs structure
  25  * and the opal_install_dirs_expand() call */
  26 struct opal_install_dirs_t {
  27     char* prefix;
  28     char* exec_prefix;
  29     char* bindir;
  30     char* sbindir;
  31     char* libexecdir;
  32     char* datarootdir;
  33     char* datadir;
  34     char* sysconfdir;
  35     char* sharedstatedir;
  36     char* localstatedir;
  37     char* libdir;
  38     char* includedir;
  39     char* infodir;
  40     char* mandir;
  41 
  42     /* Note that the following fields intentionally have an "ompi"
  43        prefix, even though they're down in the OPAL layer.  This is
  44        not abstraction break because the "ompi" they're referring to
  45        is for the build system of the overall software tree -- not an
  46        individual project within that overall tree.
  47 
  48        Rather than using pkg{data,lib,includedir}, use our own
  49        ompi{data,lib,includedir}, which is always set to
  50        {datadir,libdir,includedir}/openmpi. This will keep us from
  51        having help files in prefix/share/open-rte when building
  52        without Open MPI, but in prefix/share/openmpi when building
  53        with Open MPI.
  54 
  55        Note that these field names match macros set by configure that
  56        are used in Makefile.am files.  E.g., project help files are
  57        installed into $(opaldatadir). */
  58     char* opaldatadir;
  59     char* opallibdir;
  60     char* opalincludedir;
  61 };
  62 typedef struct opal_install_dirs_t opal_install_dirs_t;
  63 
  64 /* Install directories.  Only available after opal_init() */
  65 OPAL_DECLSPEC extern opal_install_dirs_t opal_install_dirs;
  66 
  67 /**
  68  * Expand out path variables (such as ${prefix}) in the input string
  69  * using the current opal_install_dirs structure */
  70 OPAL_DECLSPEC char * opal_install_dirs_expand(const char* input);
  71 
  72 
  73 /**
  74  * Structure for installdirs components.
  75  */
  76 struct opal_installdirs_base_component_2_0_0_t {
  77     /** MCA base component */
  78     mca_base_component_t component;
  79     /** MCA base data */
  80     mca_base_component_data_t component_data;
  81     /** install directories provided by the given component */
  82     opal_install_dirs_t install_dirs_data;
  83 };
  84 /**
  85  * Convenience typedef
  86  */
  87 typedef struct opal_installdirs_base_component_2_0_0_t opal_installdirs_base_component_t;
  88 
  89 /*
  90  * Macro for use in components that are of type installdirs
  91  */
  92 #define OPAL_INSTALLDIRS_BASE_VERSION_2_0_0 \
  93     OPAL_MCA_BASE_VERSION_2_1_0("installdirs", 2, 0, 0)
  94 
  95 END_C_DECLS
  96 
  97 #endif /* OPAL_MCA_INSTALLDIRS_INSTALLDIRS_H */

/* [<][>][^][v][top][bottom][index][help] */