ACLOCAL_AMFLAGS=-I ./m4
-SUBDIRS= util subplex direct cdirect stogo praxis luksan crs mlsl api . octave test
+if WITH_CXX
+CXX_DIRS = stogo
+CXX_LIBS = stogo/libstogo.la
+endif
+
+SUBDIRS= util subplex direct cdirect $(CXX_DIRS) praxis luksan crs mlsl api . octave test
EXTRA_DIST=COPYRIGHT autogen.sh nlopt.pc.in m4
libnlopt_la_SOURCES =
libnlopt_la_LIBADD = subplex/libsubplex.la direct/libdirect.la \
-cdirect/libcdirect.la stogo/libstogo.la praxis/libpraxis.la \
+cdirect/libcdirect.la $(CXX_LIBS) praxis/libpraxis.la \
luksan/libluksan.la crs/libcrs.la mlsl/libmlsl.la api/libapi.la \
util/libutil.la
"Original DIRECT version (global, no-derivative)",
"Original DIRECT-L version (global, no-derivative)",
"Subplex (local, no-derivative)",
+#ifdef WITH_CXX
"StoGO (global, derivative-based)",
"StoGO with randomized search (global, derivative-based)",
+#else
+ "StoGO (NOT COMPILED)",
+ "StoGO randomized (NOT COMPILED)",
+#endif
"Low-storage BFGS (LBFGS) (local, derivative-based)",
"Principal-axis, praxis (local, no-derivative)",
"Limited-memory variable-metric, rank 1 (local, derivative-based)",
return f;
}
-#include "stogo.h"
+#ifdef WITH_CXX
+# include "stogo.h"
+#endif
#include "cdirect.h"
case NLOPT_GD_STOGO:
case NLOPT_GD_STOGO_RAND:
+#ifdef WITH_CXX
if (!stogo_minimize(n, f, f_data, x, minf, lb, ub, &stop,
algorithm == NLOPT_GD_STOGO
? 0 : 2*n))
return NLOPT_FAILURE;
break;
+#else
+ return NLOPT_FAILURE;
+#endif
case NLOPT_LN_SUBPLEX: {
int iret;
dnl Checks for programs.
AC_PROG_CC
-AC_PROG_CXX
AC_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_LN_S
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
+AC_ARG_WITH(cxx,
+ [AC_HELP_STRING([--with-cxx], [include C++-based routines])],
+ with_cxx=$withval,with_cxx=no)
+AM_CONDITIONAL(WITH_CXX, test "x$with_cxx" = xyes)
+if test "x$with_cxx" = xyes; then
+ AC_PROG_CXX
+ AC_DEFINE([WITH_CXX], 1, [Define if compiled including C++-based routines])
+fi
+
dnl Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDC
AC_HEADER_TIME