# Main body of the installation makefile for all the GALAHAD QP packages

#  Nick Gould, for GALAHAD productions
#  This version: 2024-11-19

#  ===========================================================================
#  ====================  package-dependent parts  ============================
#  ===========================================================================

#  package section name

package = all_qp
PACKAGE = ALL_QP

#  auxililiary packages that current package depends on (prepend with make_)

DEPENDENCIES = make_qpd_deps make_qpd make_lls make_lsp make_mi28 \
               make_convert make_checkpoint make_qpa make_lsqp \
               make_qpb make_eqp make_rpd make_cqp make_qpc make_dqp \
               make_cdqp make_dlp make_l1qp make_userdata make_reverse \
               make_qp make_blls make_clls make_bllsb \
               make_slls make_sllsb make_bqp make_bqpb \
               make_la04 make_lpa make_lpb make_icfs \
               make_lancelot_psls make_psls make_pdqp

#  auxiliary packages that the C interface to the current package depends
#  on (prepend with make_ciface_)

CDEPENDENCIES = make_ciface_common make_ciface_sbls_deps \
                make_ciface_sbls make_ciface_mi28 make_ciface_psls \
                make_ciface_gltr make_ciface_fdc make_ciface_fit \
                make_ciface_roots make_ciface_scu make_ciface_ir \
                make_ciface_cro make_ciface_rpd make_ciface_cqp \
                make_ciface_dqp make_ciface_eqp make_ciface_bqp \
                make_ciface_bqpb make_ciface_lsqp make_ciface_lpa \
                make_ciface_lpb make_ciface_convert make_ciface_blls \
                make_ciface_clls make_ciface_bllsb \
                make_ciface_slls make_ciface_sllsb


#  auxiliary packages that the python interface to the current package depends
#  on (prepend with make_pyiface_)

PYDEPENDENCIES = make_pyiface_sils make_pyiface_gls \
                 make_pyiface_sbls_deps make_pyiface_psls \
                 make_pyiface_sbls make_pyiface_fit \
                 make_pyiface_convert make_pyiface_roots \
                 make_pyiface_scu make_pyiface_rpd \
                 make_pyiface_gltr make_pyiface_fdc \
                 make_pyiface_cqp make_pyiface_dqp \
                 make_pyiface_qpa make_pyiface_lsqp \
                 make_pyiface_qpb make_pyiface_cro \
                 make_pyiface_bqp make_pyiface_bqpb \
                 make_pyiface_eqp make_pyiface_blls \
                 make_pyiface_clls make_pyiface_bllsb \
                 make_pyiface_lpa make_pyiface_lpb \
                 make_pyiface_slls make_pyiface_sllsb \
                 make_pyiface_presolve

#  auxiliary packages that are needed for tests (prepend with make_)

TESTDEPS = make_copyright

#  packages that are needed for CUTEst interfaces (prepend with make_)

CUTESTDEPS = $(CUTEST_TESTS) $(TESTDEPS) \
             make_nodend_cutest make_sls_cutest make_sbls_cutest \
             make_eqp_cutest make_qpa_cutest make_qpb_cutest \
             make_qpc_cutest make_blls_cutest make_bqp_cutest \
             make_bqpb_cutest make_cqp_cutest make_dqp_cutest \
             make_cdqp_cutest make_qp_cutest make_dlp_cutest \
             make_lpa_cutest make_lpb_cutest make_lls_cutest \
             make_clls_cutest make_bllsb_cutest \
             make_slls_cutest make_sllsb_cutest \
             make_l1qp_cutest make_presolve_cutest

#  packages that are needed for AMPL interfaces (prepend with make_)

AMPLDEPS = $(CUTEST_TESTS) $(TESTDEPS) \
             make_eqp_ampl make_qpa_ampl make_qpb_ampl \
             make_qpc_ampl make_blls_ampl make_bqp_ampl \
             make_bqpb_ampl make_cqp_ampl make_dqp_ampl \
             make_cdqp_ampl make_qp_ampl make_dlp_ampl \
             make_lpa_ampl make_lpb_ampl make_lls_ampl \
             make_l1qp_ampl

#  packages that are needed for QPLIB interfaces (prepend with make_)

QPLIBDEPS = $(QPLIB_TESTS) $(TESTDEPS) \
            make_qpa_qplib make_qpb_qplib \
            make_qpc_qplib make_bqp_qplib \
            make_bqpb_qplib make_cqp_qplib make_dqp_qplib \
            make_cdqp_qplib make_qp_qplib make_dlp_qplib \
            make_lpa_qplib make_lpb_qplib make_l1qp_qplib

#  comprehensive tests to be performed (prepend with make_)

TEST = make_eqp_test make_qpa_test make_qpb_test \
       make_qpc_test make_blls_test make_bqp_test \
       make_bqpb_test make_cqp_test make_dqp_test \
       make_cdqp_test make_qp_test make_dlp_test \
       make_lpa_test make_lpb_test make_clls_test \
       make_l1qp_test make_lsp_test make_rpd_test \
       make_slls_test make_sllsb_test

#      make_lls_test

#  comprehensive, CUTEst and QPLIB tests to be performed (prepend with make_)

TESTS = make_eqp_tests make_qpa_tests make_qpb_tests \
        make_qpc_tests make_blls_tests make_bqp_tests \
        make_bqpb_tests make_cqp_tests make_dqp_tests \
        make_cdqp_tests make_qp_tests make_dlp_tests \
        make_lpa_tests make_lpb_tests make_lls_tests \
        make_l1qp_tests make_slls_tests make_sllsb_tests

#  test everything except CUTEst and QPLIB to be performed (prepend with make_)

TEST_FULL = make_eqp_test_full make_qpa_test_full make_qpb_test_full \
            make_qpc_test_full make_blls_test_full make_bqp_test_full \
            make_bqpb_test_full make_cqp_test_full make_dqp_test_full \
            make_cdqp_test_full make_qp_test_full make_dlp_test_full \
            make_lpa_test_full make_lpb_test_full make_l1qp_test_full \
            make_clls_test_full make_slls_test_full make_sllsb_test_full
#           make_lls_test_full

#  specification documentation tests to be performed (prepend with make_)

TEST_SPEC = make_eqp_test_spec make_qpa_test_spec make_qpb_test_spec \
       make_qpc_test_spec make_blls_test_spec make_bqp_test_spec \
       make_bqpb_test_spec make_cqp_test_spec make_dqp_test_spec \
       make_cdqp_test_spec make_qp_test_spec make_dlp_test_spec \
       make_lpa_test_spec make_lpb_test_spec make_clls_test_spec \
       make_l1qp_test_spec  make_lsp_test_spec make_rpd_test_spec \
       make_slls_test_spec make_sllsb_test_spec
#      make_lls_test_spec

#  tests of C interfaces to be performed (prepend with make_)

TEST_CIFACE = make_ciface_eqp_test make_ciface_qpa_test make_ciface_lsqp_test \
              make_ciface_qpb_test make_ciface_blls_test make_ciface_bqp_test \
              make_ciface_bqpb_test make_ciface_cqp_test make_ciface_dqp_test \
              make_ciface_lpa_test make_ciface_lpb_test make_ciface_rpd_test \
              make_ciface_clls_test make_ciface_slls_test make_ciface_sllsb_test
#             make_ciface_qpc_test make_ciface_cdqp_test make_ciface_qp_test
#             make_ciface_dlp_test make_ciface_lls_test make_ciface_l1qp_test
#             make_ciface_pdqp_test make_ciface_cqps_test

#  tests of python interfaces to be performed (prepend with make_pyiface_)

TEST_PYIFACE = make_pyiface_lpa_test make_pyiface_lpb_test \
               make_pyiface_eqp_test make_pyiface_qpa_test \
               make_pyiface_lsqp_test make_pyiface_qpb_test \
               make_pyiface_blls_test make_pyiface_bqp_test \
               make_pyiface_bqpb_test make_pyiface_cqp_test \
               make_pyiface_dqp_test make_pyiface_rpd_test \
               make_pyiface_cro_test make_pyiface_presolve_test \
               make_pyiface_slls_test make_pyiface_sllsb_test \
               make_pyiface_clls_test

#  all packages in the QP section

PACKAGES = eqp qpa lsqp qpb qpc blls bqp bqpb slls sllsb clls cqp dqp cdqp qp \
           dlp lpa lpb lls rpd l1qp pdqp cqps

#  ===========================================================================
#  =================  end of package-dependent parts  ========================
#  ===========================================================================

#  include standard GALAHAD makefile definitions

include $(GALAHAD)/src/makedefs/definitions

#  =========================================================================
#  ========================== makefile stanza ==============================
#  =========================================================================

#  main compilations and runs

all: $(package)
all_ciface: $(package) $(package)_ciface
all_pyiface: $(package) $(package)_pyiface
all_cutest: $(package)_cutest
all_qplib: $(package)_qplib
test: all $(TEST)
tests: all $(TESTS)
test_full: all $(TEST_FULL)
test_spec: all $(TEST_SPEC)
test_ciface: all_ciface $(TEST_CIFACE)
test_pyiface: all_pyiface $(TEST_PYIFACE)

#  silent packages

$(package)_silent: $(package)_silent_$(PRECIS)
$(package)_silent_single: $(DEPENDENCIES)
$(package)_silent_double: $(DEPENDENCIES)
$(package)_silent_quadruple: $(DEPENDENCIES)
$(package)_silent_single_64: $(DEPENDENCIES)
$(package)_silent_double_64: $(DEPENDENCIES)
$(package)_silent_quadruple_64: $(DEPENDENCIES)

$(package)_ciface_silent: $(package)_ciface_silent_$(PRECIS)
$(package)_ciface_silent_single: $(CDEPENDENCIES)
$(package)_ciface_silent_double: $(CDEPENDENCIES)
$(package)_ciface_silent_quadruple: $(CDEPENDENCIES)
$(package)_ciface_silent_single_64: $(CDEPENDENCIES)
$(package)_ciface_silent_double_64: $(CDEPENDENCIES)
$(package)_ciface_silent_quadruple_64: $(CDEPENDENCIES)

$(package)_pyiface_silent: $(package)_pyiface_silent_$(PRECIS)
$(package)_pyiface_silent_single: $(PYDEPENDENCIES)
$(package)_pyiface_silent_double: $(PYDEPENDENCIES)
$(package)_pyiface_silent_quadruple: $(PYDEPENDENCIES)
$(package)_pyiface_silent_single_64: $(PYDEPENDENCIES)
$(package)_pyiface_silent_double_64: $(PYDEPENDENCIES)
$(package)_pyiface_silent_quadruple_64: $(PYDEPENDENCIES)

#  packages

$(package): $(package)_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC)"
$(package)_single: $(DEPENDENCIES)
	$(RANLIB) $(LGS)
$(package)_double: $(DEPENDENCIES)
	$(RANLIB) $(LGD)
$(package)_quadruple: $(DEPENDENCIES)
	$(RANLIB) $(LGQ)
$(package)_single_64: $(DEPENDENCIES)
	$(RANLIB) $(LGS64)
$(package)_double_64: $(DEPENDENCIES)
	$(RANLIB) $(LGD64)
$(package)_quadruple_64: $(DEPENDENCIES)
	$(RANLIB) $(LGQ64)

$(package)_ciface: $(package)_ciface_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_C)"
$(package)_ciface_single: $(CDEPENDENCIES)
	$(RANLIB) $(CLGS)
$(package)_ciface_double: $(CDEPENDENCIES)
	$(RANLIB) $(CLGD)
$(package)_ciface_quadruple: $(CDEPENDENCIES)
	$(RANLIB) $(CLGQ)
$(package)_ciface_single_64: $(CDEPENDENCIES)
	$(RANLIB) $(CLGS64)
$(package)_ciface_double_64: $(CDEPENDENCIES)
	$(RANLIB) $(CLGD64)
$(package)_ciface_quadruple_64: $(CDEPENDENCIES)
	$(RANLIB) $(CLGQ64)

$(package)_pyiface: $(package)_pyiface_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_PY)"
$(package)_pyiface_single: $(PYDEPENDENCIES)
	$(RANLIB) $(PYLGS)
$(package)_pyiface_double: $(PYDEPENDENCIES)
	$(RANLIB) $(PYLGD)
$(package)_pyiface_quadruple: $(PYDEPENDENCIES)
	$(RANLIB) $(PYLGQ)
$(package)_pyiface_single_64: $(PYDEPENDENCIES)
	$(RANLIB) $(PYLGS64)
$(package)_pyiface_double_64: $(PYDEPENDENCIES)
	$(RANLIB) $(PYLGD64)
$(package)_pyiface_quadruple_64: $(PYDEPENDENCIES)
	$(RANLIB) $(PYLGQ64)

#  silent CUTEst packages

$(package)_cutest_silent: $(package)_silent_$(PRECIS)
$(package)_cutest_silent_single: $(DEPENDENCIES) $(CUTESTDEPS)
$(package)_cutest_silent_double: $(DEPENDENCIES) $(CUTESTDEPS)
$(package)_cutest_silent_quadruple: $(DEPENDENCIES) $(CUTESTDEPS)
$(package)_cutest_silent_single_64: $(DEPENDENCIES) $(CUTESTDEPS)
$(package)_cutest_silent_double_64: $(DEPENDENCIES) $(CUTESTDEPS)
$(package)_cutest_silent_quadruple_64: $(DEPENDENCIES) $(CUTESTDEPS)

#  CUTEst packages

$(package)_cutest: $(package)_cutest_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_CUTEST)"
$(package)_cutest_single: $(DEPENDENCIES) $(CUTESTDEPS)
	$(RANLIB) $(LGS)
$(package)_cutest_double: $(DEPENDENCIES) $(CUTESTDEPS)
	$(RANLIB) $(LGD)
$(package)_cutest_quadruple: $(DEPENDENCIES) $(CUTESTDEPS)
	$(RANLIB) $(LGQ)
$(package)_cutest_single_64: $(DEPENDENCIES) $(CUTESTDEPS)
	$(RANLIB) $(LGS64)
$(package)_cutest_double_64: $(DEPENDENCIES) $(CUTESTDEPS)
	$(RANLIB) $(LGD64)
$(package)_cutest_quadruple_64: $(DEPENDENCIES) $(CUTESTDEPS)
	$(RANLIB) $(LGQ64)

#  silent AMPL packages

$(package)_ampl_silent: $(package)_silent_$(PRECIS)
$(package)_ampl_silent_single: $(DEPENDENCIES) $(AMPLDEPS)
$(package)_ampl_silent_double: $(DEPENDENCIES) $(AMPLDEPS)
$(package)_ampl_silent_quadruple: $(DEPENDENCIES) $(AMPLDEPS)
$(package)_ampl_silent_single_64: $(DEPENDENCIES) $(AMPLDEPS)
$(package)_ampl_silent_double_64: $(DEPENDENCIES) $(AMPLDEPS)
$(package)_ampl_silent_quadruple_64: $(DEPENDENCIES) $(AMPLDEPS)

#  AMPL packages

$(package)_ampl: $(package)_ampl_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_AMPL)"
$(package)_ampl_single: $(DEPENDENCIES) $(AMPLDEPS)
	$(RANLIB) $(LGS)
$(package)_ampl_double: $(DEPENDENCIES) $(AMPLDEPS)
	$(RANLIB) $(LGD)
$(package)_ampl_quadruple: $(DEPENDENCIES) $(AMPLDEPS)
	$(RANLIB) $(LGQ)
$(package)_ampl_single_64: $(DEPENDENCIES) $(AMPLDEPS)
	$(RANLIB) $(LGS64)
$(package)_ampl_double_64: $(DEPENDENCIES) $(AMPLDEPS)
	$(RANLIB) $(LGD64)
$(package)_ampl_quadruple_64: $(DEPENDENCIES) $(AMPLDEPS)
	$(RANLIB) $(LGQ64)

#  silent QPLIB packages

$(package)_qplib_silent: $(package)_silent_$(PRECIS)
$(package)_qplib_silent_single: $(DEPENDENCIES) $(QPLIBDEPS)
$(package)_qplib_silent_double: $(DEPENDENCIES) $(QPLIBDEPS)
$(package)_qplib_silent_quadruple: $(DEPENDENCIES) $(QPLIBDEPS)
$(package)_qplib_silent_single_64: $(DEPENDENCIES) $(QPLIBDEPS)
$(package)_qplib_silent_double_64: $(DEPENDENCIES) $(QPLIBDEPS)
$(package)_qplib_silent_quadruple_64: $(DEPENDENCIES) $(QPLIBDEPS)

#  QPLIB packages

$(package)_qplib: $(package)_qplib_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_QPLIB)"
$(package)_qplib_single: $(DEPENDENCIES) $(QPLIBDEPS)
	$(RANLIB) $(LGS)
$(package)_qplib_double: $(DEPENDENCIES) $(QPLIBDEPS)
	$(RANLIB) $(LGD)
$(package)_qplib_quadruple: $(DEPENDENCIES) $(QPLIBDEPS)
	$(RANLIB) $(LGQ)
$(package)_qplib_single_64: $(DEPENDENCIES) $(QPLIBDEPS)
	$(RANLIB) $(LGS64)
$(package)_qplib_double_64: $(DEPENDENCIES) $(QPLIBDEPS)
	$(RANLIB) $(LGQ64)
$(package)_qplib_quadruple_64: $(DEPENDENCIES) $(QPLIBDEPS)
	$(RANLIB) $(LGQ64)

#  book keeping

clean:
	@printf ' %-9s\t\t' "Removing $(package) files"
	$(RMARFILES) $(PACKAGES)
	@printf '[ OK ]\n'

cleanall:
	@printf ' %-14s\t\t' \
          "Removing all $(PRECIS) precision object and module files"
	$(RM) -r $(OBJ)/* $(MOD)/*
	@printf '[ OK ]\n'

#  include required package intermediaries

include $(GALAHAD)/src/makedefs/intermediaries

#  CUTEst specific interfaces

make_blls_cutest:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) blls_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_cutest:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bllsb_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_cutest:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bqp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_cutest:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bqpb_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_cutest:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) clls_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_cutest:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cdqp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_cutest:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_cutest:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqps_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_cutest:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dlp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_cutest:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_cutest:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) eqp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_cutest:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) l1qp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_cutest:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lls_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_cutest:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lpa_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_cutest:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lpb_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_presolve_cutest:
	( cd $(GALAHAD)/src/presolve ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) presolve_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/presolve )

make_qp_cutest:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_cutest:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_cutest:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_cutest:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_pdqp_cutest:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) pdqp_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

make_slls_cutest:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) slls_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_sllsb_cutest:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) sllsb_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )

make_nodend_cutest:
	( cd $(GALAHAD)/src/nodend ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) nodend_cutest_silent \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/nodend )

make_sls_cutest:
	( cd $(GALAHAD)/src/sls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) sls_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sls )

make_sbls_cutest:
	( cd $(GALAHAD)/src/sbls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) sbls_cutest_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sbls )

#  AMPL specific interfaces

make_blls_ampl:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) blls_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_ampl:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bllsb_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_ampl:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bqp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_ampl:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bqpb_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_ampl:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) clls_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_ampl:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cdqp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_ampl:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_ampl:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqps_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_ampl:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dlp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_ampl:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_ampl:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) eqp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_ampl:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) l1qp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_ampl:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lls_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_ampl:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lpa_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_ampl:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lpb_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_qp_ampl:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_ampl:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_ampl:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_ampl:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_pdqp_ampl:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) pdqp_ampl_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

#  QPLIB specific interfaces

make_blls_qplib:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) blls_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_qplib:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bllsb_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_qplib:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bqp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_qplib:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bqpb_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_qplib:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) clls_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_qplib:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cdqp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_qplib:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_qplib:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqps_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_qplib:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dlp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_qplib:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_qplib:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) eqp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_qplib:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) l1qp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_qplib:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lls_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_qplib:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lpa_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_qplib:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lpb_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_qp_qplib:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_qplib:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_qplib:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_qplib:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_pdqp_qplib:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) pdqp_qplib_addon \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

#  comprehensive tests

make_blls_test:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_test:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_test:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_test:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_test:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_test:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_test:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_test:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_test:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_test:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_test:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_test:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_test:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_test:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_test:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_lsp_test:
	( cd $(GALAHAD)/src/lsp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lsp )

make_pdqp_test:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

make_qp_test:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_test:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_test:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_test:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_rpd_test:
	( cd $(GALAHAD)/src/rpd ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/rpd )

make_slls_test:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_sllsb_test:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )

#  comprehensive and CUTEst tests

make_blls_tests:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_tests:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_tests:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_tests:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_tests:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_tests:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_tests:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_tests:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_tests:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_tests:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_tests:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_tests:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_tests:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_tests:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_tests:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_pdqp_tests:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

make_qp_tests:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_tests:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_tests:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_tests:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_rpd_tests:
	( cd $(GALAHAD)/src/rpd ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/rpd )

make_slls_tests:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_sllsb_tests:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )

#  all tests except CUTEst and QPLIB ones

make_blls_test_full:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_test_full:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_test_full:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_test_full:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_test_full:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_test_full:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_test_full:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_test_full:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_test_full:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_test_full:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_test_full:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_test_full:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_test_full:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_test_full:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_test_full:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_qp_test_full:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_test_full:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_test_full:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_test_full:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_pdqp_test_full:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

make_slls_test_full:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_sllsb_test_full:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_full \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )

#  specification documentation tests

make_blls_test_spec:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_bllsb_test_spec:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_bqp_test_spec:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_bqpb_test_spec:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_clls_test_spec:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_cdqp_test_spec:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_cqp_test_spec:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_cqps_test_spec:
	( cd $(GALAHAD)/src/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqps )

make_dlp_test_spec:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_dqp_test_spec:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_eqp_test_spec:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_l1qp_test_spec:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_lls_test_spec:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_lpa_test_spec:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_lpb_test_spec:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_lsp_test_spec:
	( cd $(GALAHAD)/src/lsp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lsp )

make_pdqp_test_spec:
	( cd $(GALAHAD)/src/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/pdqp )

make_qp_test_spec:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_qpa_test_spec:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_qpb_test_spec:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_qpc_test_spec:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_rpd_test_spec:
	( cd $(GALAHAD)/src/rpd ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/rpd )

make_slls_test_spec:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_sllsb_test_spec:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )

#  comprehensive C interface tests

make_ciface_blls_test:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_ciface_bllsb_test:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_ciface_bqp_test:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_ciface_bqpb_test:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_ciface_clls_test:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_ciface_cdqp_test:
	( cd $(GALAHAD)/src/cdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cdqp )

make_ciface_cqp_test:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_ciface_cqps_test:
	( cd $(GALAHAD)/src/oblivion/cqps ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/oblivion/cqps )

make_ciface_dlp_test:
	( cd $(GALAHAD)/src/dlp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dlp )

make_ciface_dqp_test:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_ciface_eqp_test:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_ciface_l1qp_test:
	( cd $(GALAHAD)/src/l1qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/l1qp )

make_ciface_lsqp_test:
	( cd $(GALAHAD)/src/lsqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lsqp )

make_ciface_lls_test:
	( cd $(GALAHAD)/src/lls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lls )

make_ciface_lpa_test:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_ciface_lpb_test:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_ciface_qp_test:
	( cd $(GALAHAD)/src/qp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qp )

make_ciface_qpa_test:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_ciface_qpb_test:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_ciface_qpc_test:
	( cd $(GALAHAD)/src/qpc ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpc )

make_ciface_pdqp_test:
	( cd $(GALAHAD)/src/forthcoming/pdqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) \
          PWD=$(GALAHAD)/src/forthcoming/pdqp )

make_ciface_rpd_test:
	( cd $(GALAHAD)/src/rpd ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/rpd )

make_ciface_slls_test:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_ciface_sllsb_test:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_cifaces \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )

#  comprehensive python interface tests

make_pyiface_blls_test:
	( cd $(GALAHAD)/src/blls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/blls )

make_pyiface_bllsb_test:
	( cd $(GALAHAD)/src/bllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bllsb )

make_pyiface_bqp_test:
	( cd $(GALAHAD)/src/bqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqp )

make_pyiface_bqpb_test:
	( cd $(GALAHAD)/src/bqpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/bqpb )

make_pyiface_clls_test:
	( cd $(GALAHAD)/src/clls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/clls )

make_pyiface_cqp_test:
	( cd $(GALAHAD)/src/cqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cqp )

make_pyiface_cro_test:
	( cd $(GALAHAD)/src/cro ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/cro )

make_pyiface_dqp_test:
	( cd $(GALAHAD)/src/dqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/dqp )

make_pyiface_eqp_test:
	( cd $(GALAHAD)/src/eqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/eqp )

make_pyiface_lpa_test:
	( cd $(GALAHAD)/src/lpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpa )

make_pyiface_lpb_test:
	( cd $(GALAHAD)/src/lpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lpb )

make_pyiface_lsqp_test:
	( cd $(GALAHAD)/src/lsqp ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/lsqp )

make_pyiface_qpa_test:
	( cd $(GALAHAD)/src/qpa ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpa )

make_pyiface_qpb_test:
	( cd $(GALAHAD)/src/qpb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/qpb )

make_pyiface_presolve_test:
	( cd $(GALAHAD)/src/presolve ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/presolve )

make_pyiface_rpd_test:
	( cd $(GALAHAD)/src/rpd ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/rpd )

make_pyiface_slls_test:
	( cd $(GALAHAD)/src/slls ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/slls )

make_pyiface_sllsb_test:
	( cd $(GALAHAD)/src/sllsb ; \
          $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_pyiface \
          PRECIS=$(PRECIS) PWD=$(GALAHAD)/src/sllsb )
