#include <genex_config.h>
/* FIXME Get this working */
/*#include <intdir_config.h>*/

const char* generatorlib_genex_config_definition(void)
{
  return GENEX_CONFIG_DEFINITION;
}

const char* generatorlib_genex_config_include_dir(void)
{
  return GENEX_CONFIG_INCLUDE_DIR;
}

/* FIXME Get this working */
/*const char* generatorlib_intdir_config_definition(void)
{
  return INTDIR_CONFIG_DEFINITION;
}

const char* generatorlib_intdir_config_include_dir(void)
{
  return INTDIR_CONFIG_INCLUDE_DIR;
}*/
