diff options
author | Thomas White <taw@physics.org> | 2017-10-18 11:58:50 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2017-10-18 11:58:50 +0200 |
commit | e18c025df6f5d8e2ecd0b0ac2b827e657fb53415 (patch) | |
tree | de8d92370d468f2e72094991ef8a09e40ff391bf | |
parent | 0821a7ddae7901b70ea5ae216c71fe41109fec55 (diff) |
Check that dirax,felix,mosflm or xds are available at the start
Avoids a confusing error message later.
-rw-r--r-- | libcrystfel/src/dirax.c | 6 | ||||
-rw-r--r-- | libcrystfel/src/felix.c | 6 | ||||
-rw-r--r-- | libcrystfel/src/mosflm.c | 6 | ||||
-rw-r--r-- | libcrystfel/src/xds.c | 7 |
4 files changed, 25 insertions, 0 deletions
diff --git a/libcrystfel/src/dirax.c b/libcrystfel/src/dirax.c index 1dacd021..488eb7db 100644 --- a/libcrystfel/src/dirax.c +++ b/libcrystfel/src/dirax.c @@ -604,6 +604,12 @@ void *dirax_prepare(IndexingMethod *indm, UnitCell *cell) { struct dirax_private *dp; + if ( dirax_probe(cell) == NULL ) { + ERROR("DirAx does not appear to run properly.\n"); + ERROR("Please check your DirAx installation.\n"); + return NULL; + } + /* Flags that DirAx knows about */ *indm &= INDEXING_METHOD_MASK; diff --git a/libcrystfel/src/felix.c b/libcrystfel/src/felix.c index 5036ff74..cf7a38e8 100644 --- a/libcrystfel/src/felix.c +++ b/libcrystfel/src/felix.c @@ -653,6 +653,12 @@ void *felix_prepare(IndexingMethod *indm, UnitCell *cell, const char *options) { struct felix_private *gp; + if ( felix_probe(cell) == NULL ) { + ERROR("Felix does not appear to run properly.\n"); + ERROR("Please check your Felix installation.\n"); + return NULL; + } + if ( cell == NULL ) { ERROR("Felix needs a unit cell.\n"); return NULL; diff --git a/libcrystfel/src/mosflm.c b/libcrystfel/src/mosflm.c index d4034e86..14cd9d96 100644 --- a/libcrystfel/src/mosflm.c +++ b/libcrystfel/src/mosflm.c @@ -821,6 +821,12 @@ void *mosflm_prepare(IndexingMethod *indm, UnitCell *cell) { struct mosflm_private *mp; + if ( mosflm_probe(cell) == NULL ) { + ERROR("Mosflm does not appear to run properly.\n"); + ERROR("Please check your Mosflm installation.\n"); + return NULL; + } + /* Flags that MOSFLM knows about */ *indm &= INDEXING_METHOD_MASK | INDEXING_USE_LATTICE_TYPE | INDEXING_USE_CELL_PARAMETERS; diff --git a/libcrystfel/src/xds.c b/libcrystfel/src/xds.c index a234d1e0..bd98aec4 100644 --- a/libcrystfel/src/xds.c +++ b/libcrystfel/src/xds.c @@ -45,6 +45,7 @@ #include <sys/ioctl.h> #include <errno.h> +#include "xds.h" #include "cell.h" #include "image.h" #include "utils.h" @@ -596,6 +597,12 @@ void *xds_prepare(IndexingMethod *indm, UnitCell *cell) { struct xds_private *xp; + if ( xds_probe(cell) == NULL ) { + ERROR("XDS does not appear to run properly.\n"); + ERROR("Please check your XDS installation.\n"); + return NULL; + } + /* Either cell,latt and cell provided, or nocell-nolatt and no cell * - complain about anything else. Could figure this out automatically, * but we'd have to decide whether the user just forgot the cell, or |