aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2017-10-18 11:58:50 +0200
committerThomas White <taw@physics.org>2017-10-18 11:58:50 +0200
commite18c025df6f5d8e2ecd0b0ac2b827e657fb53415 (patch)
treede8d92370d468f2e72094991ef8a09e40ff391bf
parent0821a7ddae7901b70ea5ae216c71fe41109fec55 (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.c6
-rw-r--r--libcrystfel/src/felix.c6
-rw-r--r--libcrystfel/src/mosflm.c6
-rw-r--r--libcrystfel/src/xds.c7
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