orca.m4 2.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# PGAC_CHECK_ORCA_XERCES
# ---------------------
# Check if the Greenplum patched version of Xerces-C is found
AC_DEFUN([PGAC_CHECK_ORCA_XERCES],
[
AC_CHECK_LIB(xerces-c, strnicmp, [],
  [AC_MSG_ERROR([library xerces-c is required for Pivotal Query Optimizer to build, you can build it from https://github.com/greenplum-db/gp-xerces])]
)
AC_MSG_CHECKING([[for Greenplum patched Xerces-C]])
AC_LANG_PUSH([C++])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include "xercesc/util/XMemory.hpp"
#include "xercesc/dom/DOMImplementationList.hpp"
]],
[
xercesc::DOMImplementationList* derived_ptr = NULL;
xercesc::XMemory* base_ptr = derived_ptr;
])],
[AC_MSG_RESULT([[ok]])],
[AC_MSG_ERROR([Your Xerces is not patched, you can build it from https://github.com/greenplum-db/gp-xerces])]
)
AC_LANG_POP([C++])
])# PGAC_CHECK_ORCA_XERCES
24 25 26 27 28 29 30 31 32 33 34

AC_DEFUN([PGAC_CHECK_ORCA_HEADERS],
[
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS(gpos/_api.h, [], [AC_MSG_ERROR([GPOS header files are required for Pivotal Query Optimizer (orca)])])
AC_CHECK_HEADERS(naucrates/init.h, [], [AC_MSG_ERROR([Naucrates header files are required for Pivotal Query Optimizer (orca)])])
AC_CHECK_HEADERS(gpopt/init.h,  [], [AC_MSG_ERROR([GPOPT header files are required for Pivotal Query Optimizer (orca)])])
AC_CHECK_HEADERS(gpdbcost/CCostModelGPDB.h,  [], [AC_MSG_ERROR([GPDB Cost Model header files are required for Pivotal Query Optimizer (orca)])])
AC_LANG_POP([C++])
]
)
35 36 37 38 39

AC_DEFUN([PGAC_CHECK_ORCA_LIBS],
[
AC_LANG_PUSH([C++])
AC_CHECK_LIB(gpos, gpos_init, [], [AC_MSG_ERROR([library 'gpos' is required for Pivotal Query Optimizer (orca)])])
40
AC_CHECK_LIB(gpdbcost, main, [], [AC_MSG_ERROR([library 'gpdbcost' is required for Pivotal Query Optimizer (orca)])], [-lgpopt -lnaucrates])
41 42 43 44 45
AC_CHECK_LIB(naucrates, InitDXL, [], [AC_MSG_ERROR([library 'naucrates' is required for Pivotal Query Optimizer (orca)])], [-lgpopt])
AC_CHECK_LIB(gpopt, gpopt_init, [], [AC_MSG_ERROR([library 'gpopt' is required for Pivotal Query Optimizer (orca)])])
AC_LANG_POP([C++])
]
)