diff --git a/configure.ac b/configure.ac index 946d4290030e842d922745c63214f3ecfd5189f9..7cca5ed84a23fd3129deeec535392371833e6400 100644 --- a/configure.ac +++ b/configure.ac @@ -910,6 +910,22 @@ fi AC_SUBST([VELOCIRAPTOR_LIBS]) AM_CONDITIONAL([HAVEVELOCIRAPTOR],[test -n "$VELOCIRAPTOR_LIBS"]) +# Check for dummy VELOCIraptor. +AC_ARG_ENABLE([dummy-velociraptor], + [AS_HELP_STRING([--enable-dummy-velociraptor], + [Enable dummy velociraptor compilation @<:@yes/no@:>@] + )], + [enable_dummy_velociraptor="$enableval"], + [enable_dummy_velociraptor="no"] +) + +if test "$enable_dummy_velociraptor" = "yes"; then + have_velociraptor="yes" + + AC_DEFINE(HAVE_VELOCIRAPTOR,1,[The VELOCIraptor library appears to be present.]) + AC_DEFINE(HAVE_DUMMY_VELOCIRAPTOR,1,[The dummy VELOCIraptor library is present.]) +fi + # Check for floating-point execeptions AC_CHECK_FUNC(feenableexcept, AC_DEFINE([HAVE_FE_ENABLE_EXCEPT],[1], [Defined if the floating-point exception can be enabled using non-standard GNU functions.])) diff --git a/src/Makefile.am b/src/Makefile.am index 68b54c71dca316ca25d49a4d46b9083ace6ff7f5..8b27d29d01d72e49527c95a7c59ed846f9fe68c2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -61,7 +61,7 @@ AM_SOURCES = space.c runner.c queue.c task.c cell.c engine.c \ part_type.c xmf.c gravity_properties.c gravity.c \ collectgroup.c hydro_space.c equation_of_state.c \ chemistry.c cosmology.c restart.c mesh_gravity.c velociraptor_interface.c \ - outputlist.c + outputlist.c velociraptor_dummy.c # Include files for distribution, not installation. nobase_noinst_HEADERS = align.h approx_math.h atomic.h barrier.h cycle.h error.h inline.h kernel_hydro.h kernel_gravity.h \ diff --git a/src/swift_velociraptor_part.h b/src/swift_velociraptor_part.h index 80ee94ba612299dbe8b451cf1ef9d0ee45f8bf53..adae884c2f930c44edf4d48f47f168475bc65885 100644 --- a/src/swift_velociraptor_part.h +++ b/src/swift_velociraptor_part.h @@ -19,6 +19,8 @@ #ifndef SWIFT_VELOCIRAPTOR_PART_H #define SWIFT_VELOCIRAPTOR_PART_H +#include "part_type.h" + /* SWIFT/VELOCIraptor particle. */ struct swift_vel_part { diff --git a/src/velociraptor_dummy.c b/src/velociraptor_dummy.c new file mode 100644 index 0000000000000000000000000000000000000000..5b8c8c4d61f46980cb16f3a08f672a15539a247f --- /dev/null +++ b/src/velociraptor_dummy.c @@ -0,0 +1,39 @@ +/******************************************************************************* + * This file is part of SWIFT. + * Copyright (c) 2018 James Willis (james.s.willis@durham.ac.uk) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + ******************************************************************************/ + +/* Config parameters. */ +#include "../config.h" + +/* Some standard headers. */ +#include <stddef.h> + +/* Local includes. */ +#include "velociraptor_interface.h" +#include "swift_velociraptor_part.h" + +/* Dummy VELOCIraptor interface for testing compilation without linking the actual VELOCIraptor library. */ +#ifdef HAVE_DUMMY_VELOCIRAPTOR +int InitVelociraptor(char *config_name, char *output_name, + struct cosmoinfo cosmo_info, struct unitinfo unit_info, + struct siminfo sim_info){return 0;} +int InvokeVelociraptor(const size_t num_gravity_parts, + const size_t num_hydro_parts, + struct swift_vel_part *swift_parts, + const int *cell_node_ids, char *output_name) {return 0;} +#endif /* HAVE_DUMMY_VELOCIRAPTOR */