#  Main body of the installation makefile for the GALAHAD library

#  N. Gould, D. Orban and Ph. L. Toint.
#  This version: 2026-04-15

SHELL = /bin/$(BINSHELL)

#  shorthands for real precision and integer lengths control

S32 = PRECIS=single
D32 = PRECIS=double
Q32 = PRECIS=quadruple
S64 = PRECIS=single_64 INTEGER=64bit
D64 = PRECIS=double_64 INTEGER=64bit
Q64 = PRECIS=quadruple_64 INTEGER=64bit

#  main compilations and runs

#  -------------------------------
#  everything with CUTEst not AMPL
#  -------------------------------

all_cutest: all_cutest_$(PRECIS)

all_cutest_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb_sif $(S32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_cutest all_qplib $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest $(S32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         filtrane_cutest $(S32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_cutest $(S32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bsc $(S32) PWD=$(PWD)/bsc )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls $(S32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         fdh_cutest $(S32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_cutest $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_cutest $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_cutest $(S32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_cutest $(S32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_cutest $(S32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_cutest $(S32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest $(S32) PWD=$(PWD)/all_go )

all_cutest_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         lancelotb_sif $(D32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest all_qplib $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(D32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(D32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_cutest $(D32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(D32) PWD=$(PWD)/bsc )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(D32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh_cutest $(D32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_cutest $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_cutest $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_cutest $(D32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_cutest $(D32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_cutest $(D32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_cutest $(D32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(D32) PWD=$(PWD)/all_go )

all_cutest_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         lancelotb_sif $(Q32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest all_qplib $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(Q32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(Q32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_cutest $(Q32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(Q32) PWD=$(PWD)/bsc )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(Q32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh_cutest $(Q32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_cutest $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_cutest $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_cutest $(Q32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_cutest $(Q32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_cutest $(Q32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_cutest $(Q32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(Q32) PWD=$(PWD)/all_go )

all_cutest_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb_sif $(S64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_cutest all_qplib $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest $(S64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         filtrane_cutest $(S64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_cutest $(S64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bsc $(S64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls $(S64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         fdh_cutest $(S64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_cutest $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_cutest $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_cutest $(S64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_cutest $(S64) PWD=$(PWD)/nls )
	( cd bnls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_cutest $(S64) PWD=$(PWD)/bnls )
	( cd snls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_cutest $(S64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest $(S64) PWD=$(PWD)/all_go )

all_cutest_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         lancelotb_sif $(D64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest all_qplib $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(D64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(D64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_cutest $(D64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(D64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(D64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh_cutest $(D64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_cutest $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_cutest $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_cutest $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_cutest $(D64) PWD=$(PWD)/nls )
	( cd bnls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_cutest $(D64) PWD=$(PWD)/bnls )
	( cd snls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_cutest $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(D64) PWD=$(PWD)/all_go )

all_cutest_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         lancelotb_sif $(Q64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_cutest all_qplib $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(Q64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(Q64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_cutest $(Q64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(Q64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(Q64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh_cutest $(Q64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_cutest $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_cutest $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_cutest $(Q64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_cutest $(Q64) PWD=$(PWD)/nls )
	( cd bnls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_cutest $(Q64) PWD=$(PWD)/bnls )
	( cd snls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_cutest $(Q64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_cutest $(Q64) PWD=$(PWD)/all_go )

#  -------------------------------
#  everything with AMPL not CUTEst
#  -------------------------------

all_ampl: all_ampl_$(PRECIS)

all_ampl_single:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    galahad_ampl_single $(S32) PWD=$(PWD)/ampl \
                      AMPLDIR=$(AMPLDIR) \
                      CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC \
                                         -DPRESOLVE -DFILTRANE -DLANCELOT" )

all_ampl_double:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    galahad_ampl_double $(D32) PWD=$(PWD)/ampl \
                      AMPLDIR=$(AMPLDIR) \
                      CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC \
                                         -DPRESOLVE -DFILTRANE -DLANCELOT" )

all_ampl_quadruple:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    galahad_ampl_double $(Q32) PWD=$(PWD)/ampl \
                      AMPLDIR=$(AMPLDIR) \
                      CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC \
                                         -DPRESOLVE -DFILTRANE -DLANCELOT" )

all_ampl_single_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    galahad_ampl_single $(S32)_64 PWD=$(PWD)/ampl \
                      AMPLDIR=$(AMPLDIR) \
                      CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC \
                                         -DPRESOLVE -DFILTRANE -DLANCELOT" )

all_ampl_double_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    galahad_ampl_double $(D32)_64 PWD=$(PWD)/ampl \
                      AMPLDIR=$(AMPLDIR) \
                      CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC \
                                         -DPRESOLVE -DFILTRANE -DLANCELOT" )

all_ampl_quadruple_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    galahad_ampl_double $(Q32)_64 PWD=$(PWD)/ampl \
                      AMPLDIR=$(AMPLDIR) \
                      CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC \
                                         -DPRESOLVE -DFILTRANE -DLANCELOT" )

#  ----------------------------
#  everything with C interfaces
#  ----------------------------

all_ciface: all_ciface_$(PRECIS)

all_ciface_single:
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(S32) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_ciface $(S32) PWD=$(PWD)/wcp )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_ciface $(S32) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_ciface $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_ciface $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_ciface $(S32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_ciface $(S32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_ciface $(S32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_ciface $(S32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(S32) PWD=$(PWD)/all_go )

all_ciface_double:
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_ciface $(D32) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_ciface $(D32) PWD=$(PWD)/wcp )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls_ciface $(D32) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_ciface $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_ciface $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_ciface $(D32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_ciface $(D32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_ciface $(D32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_ciface $(D32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_ciface $(D32) PWD=$(PWD)/all_go )

all_ciface_quadruple:
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_ciface $(Q32) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_ciface $(Q32) PWD=$(PWD)/wcp )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls_ciface $(Q32) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_ciface $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_ciface $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_ciface $(Q32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_ciface $(Q32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_ciface $(Q32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_ciface $(Q32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_ciface $(Q32) PWD=$(PWD)/all_go )

all_ciface_single_64:
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(S64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_ciface $(S64) PWD=$(PWD)/wcp )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_ciface $(S64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_ciface $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_ciface $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_ciface $(S64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_ciface $(S64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_ciface $(S64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_ciface $(S64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(S64) PWD=$(PWD)/all_go )

all_ciface_double_64:
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_ciface $(D64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_ciface $(D64) PWD=$(PWD)/wcp )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls_ciface $(D64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_ciface $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_ciface $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_ciface $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_ciface $(D64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_ciface $(D64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_ciface $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_ciface $(D64) PWD=$(PWD)/all_go )

all_ciface_quadruple_64:
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_ciface $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        all_ciface $(Q64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp_ciface $(Q64) PWD=$(PWD)/wcp )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls_ciface $(Q64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru_ciface $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc_ciface $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb_ciface $(Q64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls_ciface $(Q64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls_ciface $(Q64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls_ciface $(Q64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_ciface $(Q64) PWD=$(PWD)/all_go )

#  ---------------------------------
#  everything with python interfaces
#  ---------------------------------

all_pyiface: all_pyiface_$(PRECIS)

all_pyiface_single: all_ciface_single
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_qp_pyiface $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_rq_pyiface $(S32) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_pyiface $(S32) PWD=$(PWD)/wcp )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_pyiface $(S32) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_pyiface $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_pyiface $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_pyiface $(S32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_pyiface $(S32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_pyiface $(S32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_pyiface $(S32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_pyiface $(S32) PWD=$(PWD)/all_go )

all_pyiface_double: all_ciface_double
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_qp_pyiface $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_rq_pyiface $(D32) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_pyiface $(D32) PWD=$(PWD)/wcp )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_pyiface $(D32) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_pyiface $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_pyiface $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_pyiface $(D32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_pyiface $(D32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_pyiface $(D32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_pyiface $(D32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_pyiface $(D32) PWD=$(PWD)/all_go )

all_pyiface_quadruple: all_ciface_quadruple
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_qp_pyiface $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_rq_pyiface $(D64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_pyiface $(D64) PWD=$(PWD)/wcp )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_pyiface $(D64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_pyiface $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_pyiface $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_pyiface $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_pyiface $(D64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_pyiface $(D64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_pyiface $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_pyiface $(D64) PWD=$(PWD)/all_go )

all_pyiface_single_64: all_ciface_single_64
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_qp_pyiface $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_rq_pyiface $(S64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_pyiface $(S64) PWD=$(PWD)/wcp )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_pyiface $(S64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_pyiface $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_pyiface $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_pyiface $(S64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_pyiface $(S64) PWD=$(PWD)/nls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_pyiface $(S64) PWD=$(PWD)/snls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_pyiface $(S64) PWD=$(PWD)/bnls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_pyiface $(S64) PWD=$(PWD)/all_go )

all_pyiface_double_64: all_ciface_double_64
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_qp_pyiface $(D64)_64 PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_rq_pyiface $(D64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_pyiface $(D64) PWD=$(PWD)/wcp )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_pyiface $(D64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_pyiface $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_pyiface $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_pyiface $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_pyiface $(D64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_pyiface $(D64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_pyiface $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_pyiface $(D64) PWD=$(PWD)/all_go )

all_pyiface_quadruple_64: all_ciface_quadruple_64
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_qp_pyiface $(Q64)_64 PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all_rq_pyiface $(Q64) PWD=$(PWD)/all_rq )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         wcp_pyiface $(Q64) PWD=$(PWD)/wcp )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         ssls_pyiface $(Q64) PWD=$(PWD)/ssls )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         tru_pyiface $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         arc_pyiface $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         trb_pyiface $(Q64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         nls_pyiface $(Q64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         bnls_pyiface $(Q64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         snls_pyiface $(Q64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all_pyiface $(Q64) PWD=$(PWD)/all_go )

#  ------------------------------------------------------------
#  everything with julia interfaces (not yet fully functional!)
#  ------------------------------------------------------------

all_juiface: all_juiface_$(PRECIS)

all_juiface_single: all_ciface_single build_julia_shared
all_juiface_double: all_ciface_double build_julia_shared
all_juiface_quadruple: all_ciface_quadruple build_julia_shared
all_juiface_single_64: all_ciface_single_64 build_julia_shared_64
all_juiface_double_64: all_ciface_double_64 build_julia_shared_64
all_juiface_quadruple_64: all_ciface_quadruple_64 build_julia_shared_64

#  ---------------------------
#  everything for distribution
#  ---------------------------

all: all_$(PRECIS)

all_single: all_cutest_single all_ampl_single
all_double: all_cutest_double all_ampl_double
all_quadruple: all_cutest_quadruple all_ampl_quadruple
all_single_64: all_cutest_single_64 all_ampl_single_64
all_double_64: all_cutest_double_64 all_ampl_double_64
all_quadruple_64: all_cutest_quadruple_64 all_ampl_quadruple_64

#  ----------------------
#  everything stand-alone
#  ----------------------

all_standalone: all_standalone_$(PRECIS)

all_standalone_single:
	( cd lancelot  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb $(S32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(S32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          filtrane $(S32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp $(S32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(S32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(S32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh $(S32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb $(S32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls $(S32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls $(S32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls $(S32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(S32) PWD=$(PWD)/all_go )

all_standalone_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb $(D32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all $(D32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          filtrane $(D32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp $(D32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(D32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(D32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh $(D32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb $(D32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls $(D32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls $(D32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls $(D32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(D32) PWD=$(PWD)/all_go )

all_standalone_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb $(Q32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all $(Q32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          filtrane $(Q32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp $(Q32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(Q32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(Q32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh $(Q32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb $(Q32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls $(Q32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls $(Q32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls $(Q32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(Q32) PWD=$(PWD)/all_go )

all_standalone_single_64:
	( cd lancelot  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb $(S64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(S64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          filtrane $(S64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp $(S64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(S64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(S64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh $(S64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb $(S64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls $(S64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls $(S64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls $(S64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(S64) PWD=$(PWD)/all_go )

all_standalone_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb $(D64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all $(D64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          filtrane $(D64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp $(D64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(D64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(D64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh $(D64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls $(D64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls $(D64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(D64) PWD=$(PWD)/all_go )

all_standalone_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          lancelotb $(Q64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         all $(Q64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          filtrane $(Q64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          wcp $(Q64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bsc $(Q64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          ssls $(Q64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          fdh $(Q64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          tru $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          arc $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          trb $(Q64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          nls $(Q64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          bnls $(Q64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          snls $(Q64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          all $(Q64) PWD=$(PWD)/all_go )

#  --------------------------------------------------------
#  everything including current developments excluding s2qp
#  --------------------------------------------------------

all_current_without_s2qp: all_current_without_s2qp_$(PRECIS)

all_current_without_s2qp_single: all_cutest_single
#	( cd qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                     qp_cutest_current $(S32) PWD=$(PWD)/qp )
	( cd oblivion/lpsqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lpsqp_cutest $(S32) PWD=$(PWD)/oblivion/lpsqp )
	( cd oblivion/superb   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     superb_cutest $(S32) PWD=$(PWD)/oblivion/superb )
	( cd oblivion/fastr   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fastr_cutest $(S32) PWD=$(PWD)/oblivion/fastr )
	( cd oblivion/sqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     sqp_cutest $(S32) PWD=$(PWD)/oblivion/sqp )
	( cd oblivion/lcf   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lcf_cutest $(S32) PWD=$(PWD)/oblivion/lcf )
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     funnel_cutest $(S32) PWD=$(PWD)/ oblivion/funnel )
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ism_cutest $(S32) PWD=$(PWD)/oblivion/ism )
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ermo_cutest $(S32) PWD=$(PWD)/oblivion/ermo )
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     barc_cutest $(S32) PWD=$(PWD)/forthcoming/barc )
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fisqp_cutest $(S32) PWD=$(PWD)/forthcoming/fisqp )
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     colt_cutest $(S32) PWD=$(PWD)/forthcoming/colt )

all_current_without_s2qp_double: all_cutest_double
#	( cd qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                     qp_cutest_current $(D32) PWD=$(PWD)/qp )
	( cd oblivion/lpsqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lpsqp_cutest $(D32) PWD=$(PWD)/oblivion/lpsqp )
	( cd oblivion/superb   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     superb_cutest $(D32) PWD=$(PWD)/oblivion/superb )
	( cd oblivion/fastr   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fastr_cutest $(D32) PWD=$(PWD)/oblivion/fastr )
	( cd oblivion/sqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     sqp_cutest $(D32) PWD=$(PWD)/oblivion/sqp )
	( cd oblivion/lcf   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lcf_cutest $(D32) PWD=$(PWD)/oblivion/lcf )
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     funnel_cutest $(D32) PWD=$(PWD)/oblivion/funnel )
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ism_cutest $(D32) PWD=$(PWD)/oblivion/ism )
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ermo_cutest $(D32) PWD=$(PWD)/oblivion/ermo )
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     barc_cutest $(D32) PWD=$(PWD)/forthcoming/barc )
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fisqp_cutest $(D32) PWD=$(PWD)/forthcoming/fisqp )
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     colt_cutest $(D32) PWD=$(PWD)/forthcoming/colt )

all_current_without_s2qp_quadruple: all_cutest_quadruple
#	( cd qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                     qp_cutest_current $(Q32) PWD=$(PWD)/qp )
	( cd oblivion/lpsqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lpsqp_cutest $(Q32) PWD=$(PWD)/oblivion/lpsqp )
	( cd oblivion/superb   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     superb_cutest $(Q32) PWD=$(PWD)/oblivion/superb )
	( cd oblivion/fastr   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fastr_cutest $(Q32) PWD=$(PWD)/oblivion/fastr )
	( cd oblivion/sqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     sqp_cutest $(Q32) PWD=$(PWD)/oblivion/sqp )
	( cd oblivion/lcf   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lcf_cutest $(Q32) PWD=$(PWD)/oblivion/lcf )
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     funnel_cutest $(Q32) PWD=$(PWD)/oblivion/funnel )
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ism_cutest $(Q32) PWD=$(PWD)/oblivion/ism )
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ermo_cutest $(Q32) PWD=$(PWD)/oblivion/ermo )
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     barc_cutest $(Q32) PWD=$(PWD)/forthcoming/barc )
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fisqp_cutest $(Q32) PWD=$(PWD)/forthcoming/fisqp )
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     colt_cutest $(Q32) PWD=$(PWD)/forthcoming/colt )

all_current_without_s2qp_single_64: all_cutest_single_64
#	( cd qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                     qp_cutest_current $(S64) PWD=$(PWD)/qp )
	( cd oblivion/lpsqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lpsqp_cutest $(S64) PWD=$(PWD)/oblivion/lpsqp )
	( cd oblivion/superb   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     superb_cutest $(S64) PWD=$(PWD)/oblivion/superb )
	( cd oblivion/fastr   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fastr_cutest $(S64) PWD=$(PWD)/oblivion/fastr )
	( cd oblivion/sqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     sqp_cutest $(S64) PWD=$(PWD)/oblivion/sqp )
	( cd oblivion/lcf   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lcf_cutest $(S64) PWD=$(PWD)/oblivion/lcf )
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     funnel_cutest $(S64) PWD=$(PWD)/oblivion/funnel )
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ism_cutest $(S64) PWD=$(PWD)/oblivion/ism )
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ermo_cutest $(S64) PWD=$(PWD)/oblivion/ermo )
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     barc_cutest $(S64) PWD=$(PWD)/forthcoming/barc )
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    fisqp_cutest $(S64) PWD=$(PWD)/forthcoming/fisqp )
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     colt_cutest $(S64) PWD=$(PWD)/forthcoming/colt )

all_current_without_s2qp_double_64: all_cutest_double_64
#	( cd qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                     qp_cutest_current $(D64) PWD=$(PWD)/qp )
	( cd oblivion/lpsqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lpsqp_cutest $(D64) PWD=$(PWD)/oblivion/lpsqp )
	( cd oblivion/superb   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     superb_cutest $(D64) PWD=$(PWD)/oblivion/superb )
	( cd oblivion/fastr   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fastr_cutest $(D64) PWD=$(PWD)/oblivion/fastr )
	( cd oblivion/sqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     sqp_cutest $(D64) PWD=$(PWD)/oblivion/sqp )
	( cd oblivion/lcf   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lcf_cutest $(D64) PWD=$(PWD)/oblivion/lcf )
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     funnel_cutest $(D64) PWD=$(PWD)/oblivion/funnel )
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ism_cutest $(D64) PWD=$(PWD)/oblivion/ism )
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ermo_cutest $(D64) PWD=$(PWD)/oblivion/ermo )
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     barc_cutest $(D64) PWD=$(PWD)/forthcoming/barc )
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    fisqp_cutest $(D64) PWD=$(PWD)/forthcoming/fisqp )
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     colt_cutest $(D64) PWD=$(PWD)/forthcoming/colt )

all_current_without_s2qp_quadruple_64: all_cutest_quadruple_64
#	( cd qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                     qp_cutest_current $(Q64) PWD=$(PWD)/qp )
	( cd oblivion/lpsqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lpsqp_cutest $(Q64) PWD=$(PWD)/oblivion/lpsqp )
	( cd oblivion/superb   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     superb_cutest $(Q64) PWD=$(PWD)/oblivion/superb )
	( cd oblivion/fastr   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     fastr_cutest $(Q64) PWD=$(PWD)/oblivion/fastr )
	( cd oblivion/sqp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     sqp_cutest $(Q64) PWD=$(PWD)/oblivion/sqp )
	( cd oblivion/lcf   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     lcf_cutest $(Q64) PWD=$(PWD)/oblivion/lcf )
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     funnel_cutest $(Q64) PWD=$(PWD)/oblivion/funnel )
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ism_cutest $(Q64) PWD=$(PWD)/oblivion/ism )
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ermo_cutest $(Q64) PWD=$(PWD)/oblivion/ermo )
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     barc_cutest $(Q64) PWD=$(PWD)/forthcoming/barc )
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    fisqp_cutest $(Q64) PWD=$(PWD)/forthcoming/fisqp )
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     colt_cutest $(Q64) PWD=$(PWD)/forthcoming/colt )

#  -----------------------------------------
#  everything including current developments
#  -----------------------------------------

all_current: all_current_$(PRECIS)

all_current_single: all_current_without_s2qp_single
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     s2qp_cutest $(S32) PWD=$(PWD)oblivion//s2qp )
all_current_double: all_current_without_s2qp_double
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     s2qp_cutest $(D32) PWD=$(PWD)/oblivion/s2qp )
all_current_quadruple: all_current_without_s2qp_quadruple
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     s2qp_cutest $(Q32) PWD=$(PWD)/oblivion/s2qp )
all_current_single_64: all_current_without_s2qp_single_64
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     s2qp_cutest $(S64) PWD=$(PWD)oblivion//s2qp )
all_current_double_64: all_current_without_s2qp_double_64
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     s2qp_cutest $(D64) PWD=$(PWD)/oblivion/s2qp )
all_current_quadruple_64: all_current_without_s2qp_quadruple_64
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     s2qp_cutest $(Q64) PWD=$(PWD)/oblivion/s2qp )

#  -------- -----------------------------------------
#  everything including current developments and AMPL
#  -------- -----------------------------------------

all_current_with_ampl: all_current_with_ampl_$(PRECIS)

all_current_with_ampl_single: all_current_single
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(S32) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
all_current_with_ampl_double: all_current_double
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(D32) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
all_current_with_ampl_quadruple: all_current_quadruple
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(Q32) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
all_current_with_ampl_single_64: all_current_single_64
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(S64) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
all_current_with_ampl_double_64: all_current_double_64
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(D64) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
all_current_with_ampl_quadruple_64: all_current_quadruple_64
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(Q64) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )

#  -------------------------------------------------------------
#  everything including current developments and AMPL and Matlab
#  -------------------------------------------------------------

all_current_with_ampl_and_matlab: all_current_with_ampl_and_matlab_$(PRECIS)

all_current_with_ampl_and_matlab_single: all_current_single
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(S32) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_current $(S32) PWD=$(PWD)/matlab )
all_current_with_ampl_and_matlab_double: all_current_double
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(D32) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_current $(D32) PWD=$(PWD)/matlab )
all_current_with_ampl_and_matlab_quadruple: all_current_quadruple
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(Q32) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_current $(D32) PWD=$(PWD)/matlab )
all_current_with_ampl_and_matlab_single_64: all_current_single_64
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(S64) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_current $(Q64) PWD=$(PWD)/matlab )
all_current_with_ampl_and_matlab_double_64: all_current_double_64
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(D64) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_current $(D64) PWD=$(PWD)/matlab )
all_current_with_ampl_and_matlab_quadruple_64: all_current_quadruple_64
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     ampl $(Q64) PWD=$(PWD)/ampl \
            CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB \
                               -DQPC -DPRESOLVE -DFILTRANE -DLANCELOT" )
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_current $(Q64) PWD=$(PWD)/matlab )

#  ----------------------------------------------------
#  everything including current developments and Matlab
#  ----------------------------------------------------

all_current_and_matlab: all_current_and_matlab_$(PRECIS)

all_current_and_matlab_single: all_current_single
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(S32) PWD=$(PWD)/matlab )
all_current_and_matlab_double: all_current_double
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(D32) PWD=$(PWD)/matlab )
all_current_and_matlab_quadruple: all_current_quadruple
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(Q32) PWD=$(PWD)/matlab )
all_current_and_matlab_single_64: all_current_single_64
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(S64) PWD=$(PWD)/matlab )
all_current_and_matlab_double_64: all_current_double_64
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(D64) PWD=$(PWD)/matlab )
all_current_and_matlab_quadruple_64: all_current_quadruple_64
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(Q64) PWD=$(PWD)/matlab )

#  ---------------------
#  everything for Matlab
#  ---------------------

all_matlab: all_matlab_$(PRECIS)

all_matlab_single:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(S32) PWD=$(PWD)/matlab )
all_matlab_double:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(D32) PWD=$(PWD)/matlab )
all_matlab_quadruple:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(Q32) PWD=$(PWD)/matlab )
all_matlab_single_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(S64) PWD=$(PWD)/matlab )
all_matlab_double_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(D64) PWD=$(PWD)/matlab )
all_matlab_quadruple_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all $(Q64) PWD=$(PWD)/matlab )

#  ------------------
#  comprehensive test
#  ------------------

test: test_$(PRECIS)
test_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
#                      $(S32) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S32) PWD=$(PWD)/sbls )
test_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
#                      $(D32) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D32) PWD=$(PWD)/sbls )
test_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
#                      $(Q32) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/sbls )
test_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
#                      $(S64) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(S64) PWD=$(PWD)/sbls )
test_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
#                      $(D64) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(D64) PWD=$(PWD)/sbls )
test_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
#                      $(Q64) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test \
                      $(Q64) PWD=$(PWD)/sbls )


#  ---------------
#  test everything
#  ---------------

tests: tests_$(PRECIS)
tests_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/all_rq )
	( cd filtrane   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
#                      $(S32) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S32) PWD=$(PWD)/sbls )
tests_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
#                      $(D32) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D32) PWD=$(PWD)/sbls )
tests_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
#                      $(Q32) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q32) PWD=$(PWD)/sbls )
tests_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/all_rq )
	( cd filtrane   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
#                      $(S64) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(S64) PWD=$(PWD)/sbls )
tests_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
#                      $(D64) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/sbls )
tests_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/lancelot )
	( cd all_qp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/filtrane )
	( cd wcp  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/wcp )
	( cd bsc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/bsc )
	( cd ssls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/ssls )
#	( cd fdh  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
#                      $(Q64) PWD=$(PWD)/fdh )
	( cd tru  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/tru )
	( cd arc  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/arc )
	( cd trb  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/trb )
	( cd all_go  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/all_go )
	( cd lms  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/lms )
	( cd sls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/sls )
	( cd uls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(Q64) PWD=$(PWD)/uls )
	( cd sbls  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tests \
                      $(D64) PWD=$(PWD)/sbls )

#  ------------------------------------------------------
#  test everything except SIF/CUTEst and QPLIB interfaces
#  ------------------------------------------------------

tests_full: tests_full_$(PRECIS)
test_full: tests_full
test_all: tests_full

tests_full_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S32) PWD=$(PWD)all_/qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/ssls )
#	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                           test_full   $(S32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S32) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full  $(S32) PWD=$(PWD)/sbls )
tests_full_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(D32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(D32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(D32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/ssls )
#	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                           test_full  $(D32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(D32) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_full  $(D32) PWD=$(PWD)/sbls )
tests_full_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(Q32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(Q32) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(Q32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/ssls )
#	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                           test_full  $(Q32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(Q32) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_full  $(Q32) PWD=$(PWD)/sbls )
tests_full_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S64) PWD=$(PWD)all_/qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/ssls )
#	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                           test_full   $(S64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(S64) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(S64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full  $(S64) PWD=$(PWD)/sbls )
tests_full_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(D64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(D64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(D64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/ssls )
#	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                           test_full  $(D64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(D64) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(D64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_full  $(D64) PWD=$(PWD)/sbls )
tests_full_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_full $(Q64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(Q64) PWD=$(PWD)/all_rq )
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_full $(Q64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/ssls )
#	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
#                           test_full  $(Q64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                           test_full $(Q64) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                            test_full  $(Q64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_full  $(Q64) PWD=$(PWD)/sbls )

#  -------------------------
#  spec tests for everything
#  -------------------------

test_spec: test_spec_$(PRECIS)

test_spec_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/uls )
	( cd sils     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/sils )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S32) PWD=$(PWD)/psls )
test_spec_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D32) PWD=$(PWD)/uls )
	( cd sils     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(D32) PWD=$(PWD)/sils )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(D32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(D32) PWD=$(PWD)/psls )
test_spec_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q32) PWD=$(PWD)/uls )
	( cd sils     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(Q32) PWD=$(PWD)/sils )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(Q32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(Q32) PWD=$(PWD)/psls )
test_spec_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/uls )
	( cd sils     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/sils )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(S64) PWD=$(PWD)/psls )
test_spec_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(D64) PWD=$(PWD)/uls )
	( cd sils     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(D64) PWD=$(PWD)/sils )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(D64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(D64) PWD=$(PWD)/psls )
test_spec_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/lancelot )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/all_rq )
	( cd filtrane  ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/filtrane )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/wcp )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/bsc )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/ssls )
	( cd fdh      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/fdh )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/trb )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/all_go )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/lms )
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                          $(Q64) PWD=$(PWD)/uls )
	( cd sils     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(Q64) PWD=$(PWD)/sils )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(Q64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) test_spec \
                         $(Q64) PWD=$(PWD)/psls )

#  ---------------------------------
#  test everything with C interfaces
#  ---------------------------------

test_all_ciface: test_all_ciface_$(PRECIS)

test_all_ciface_single:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S32) PWD=$(PWD)/psls )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S32) PWD=$(PWD)/ssls )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(S32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(S32) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S32) PWD=$(PWD)/nls )
	( cd bnls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_cifaces $(S32) PWD=$(PWD)/bnls )
	( cd snls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_cifaces $(S32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(S32) PWD=$(PWD)/all_go )
test_all_ciface_double:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/psls )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/ssls )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(D32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_ciface $(D32) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_ciface $(D32) PWD=$(PWD)/all_go )
test_all_ciface_quadruple:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/psls )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/ssls )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(Q32) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_ciface $(Q32) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_ciface $(Q32) PWD=$(PWD)/all_go )
test_all_ciface_single_64:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S64) PWD=$(PWD)/psls )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(S64) PWD=$(PWD)/ssls )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(S64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(S64) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_cifaces $(S64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(S64) PWD=$(PWD)/all_go )
test_all_ciface_double_64:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/psls )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/ssls )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(D64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_ciface $(D64) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_ciface $(D64) PWD=$(PWD)/all_go )
test_all_ciface_quadruple_64:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/psls )
	( cd ssls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/ssls )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         test_ciface $(Q64) PWD=$(PWD)/all_qp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        test_ciface $(Q64) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_cifaces $(Q64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_ciface $(Q64) PWD=$(PWD)/all_go )

#  --------------------------------------
#  test everything with python interfaces
#  --------------------------------------

test_all_pyiface: test_all_pyiface_$(PRECIS)

test_all_pyiface_single:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/psls )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/ssls )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/bsc )
	( cd convert   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/convert )
	( cd fit      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/fit )
	( cd hash     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/hash )
	( cd ir       ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/ir )
	( cd lhs      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/lhs )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/lms )
	( cd roots    ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/roots )
	( cd scu      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/scu )
	( cd sec      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/sec )
	( cd sha      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/sha )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/all_qp )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/wcp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S32) PWD=$(PWD)/all_go )
test_all_pyiface_double:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/psls )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/ssls )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/bsc )
	( cd convert   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/convert )
	( cd fit      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/fit )
	( cd hash     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/hash )
	( cd ir       ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/ir )
	( cd lhs      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/lhs )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/lms )
	( cd roots    ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/roots )
	( cd scu      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/scu )
	( cd sec      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/sec )
	( cd sha      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/sha )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/all_qp )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/wcp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D32) PWD=$(PWD)/all_go )
test_all_pyiface_quadruple:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/psls )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/ssls )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/bsc )
	( cd convert   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/convert )
	( cd fit      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/fit )
	( cd hash     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/hash )
	( cd ir       ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/ir )
	( cd lhs      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/lhs )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/lms )
	( cd roots    ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/roots )
	( cd scu      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/scu )
	( cd sec      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/sec )
	( cd sha      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/sha )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/all_qp )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/wcp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q32) PWD=$(PWD)/all_go )
test_all_pyiface_single_64:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/psls )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/ssls )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/bsc )
	( cd convert   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/convert )
	( cd fit      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/fit )
	( cd hash     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/hash )
	( cd ir       ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/ir )
	( cd lhs      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/lhs )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/lms )
	( cd roots    ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/roots )
	( cd scu      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/scu )
	( cd sec      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/sec )
	( cd sha      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/sha )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/all_qp )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/wcp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(S64) PWD=$(PWD)/all_go )
test_all_pyiface_double_64:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/psls )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/ssls )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/bsc )
	( cd convert   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/convert )
	( cd fit      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/fit )
	( cd hash     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/hash )
	( cd ir       ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/ir )
	( cd lhs      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/lhs )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/lms )
	( cd roots    ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/roots )
	( cd scu      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/scu )
	( cd sec      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/sec )
	( cd sha      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/sha )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/all_qp )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/wcp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(D64) PWD=$(PWD)/all_go )
test_all_pyiface_quadruple_64:
	( cd sls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/sls )
	( cd uls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/uls )
	( cd sbls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/sbls )
	( cd psls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/psls )
	( cd ssls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/ssls )
	( cd bsc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/bsc )
	( cd convert   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/convert )
	( cd fit      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/fit )
	( cd hash     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/hash )
	( cd ir       ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/ir )
	( cd lhs      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/lhs )
	( cd lms      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/lms )
	( cd roots    ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/roots )
	( cd scu      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/scu )
	( cd sec      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/sec )
	( cd sha      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/sha )
	( cd all_qp   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/all_qp )
	( cd wcp      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/wcp )
	( cd all_rq   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/all_rq )
	( cd tru      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/tru )
	( cd arc      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/arc )
	( cd trb      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/trb )
	( cd nls      ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/nls )
	( cd bnls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/bnls )
	( cd snls     ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/snls )
	( cd all_go   ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          test_pyiface $(Q64) PWD=$(PWD)/all_go )

#  ----------
#  LANCELOT B
#  ----------

lancelotb: lancelotb_$(PRECIS)

lancelotb_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb \
                      $(S32) PWD=$(PWD)/lancelot )
lancelotb_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb \
                      $(D32) PWD=$(PWD)/lancelot )
lancelotb_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb \
                      $(Q32) PWD=$(PWD)/lancelot )
lancelotb_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb \
                      $(S64) PWD=$(PWD)/lancelot )
lancelotb_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb \
                      $(D64) PWD=$(PWD)/lancelot )
lancelotb_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb \
                      $(Q64) PWD=$(PWD)/lancelot )

lancelotb_sif: lancelotb_sif_$(PRECIS)

lancelotb_sif_single:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
             lancelotb_sif $(S32) PWD=$(PWD)/lancelot )
lancelotb_sif_double:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lancelotb_sif $(D32) PWD=$(PWD)/lancelot )
lancelotb_sif_quadruple:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lancelotb_sif $(Q32) PWD=$(PWD)/lancelot )
lancelotb_sif_single_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
             lancelotb_sif $(S64) PWD=$(PWD)/lancelot )
lancelotb_sif_double_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lancelotb_sif $(D64) PWD=$(PWD)/lancelot )
lancelotb_sif_quadruple_64:
	( cd lancelot ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lancelotb_sif $(Q64) PWD=$(PWD)/lancelot )

lancelotb_ampl: lancelotb_ampl_$(PRECIS)

lancelotb_ampl_single:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb_ampl \
                $(S32) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DLANCELOT" )
lancelotb_ampl_double:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb_ampl \
                $(D32) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DLANCELOT" )
lancelotb_ampl_quadruple:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb_ampl \
                $(Q32) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DLANCELOT" )
lancelotb_ampl_single_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb_ampl \
                $(S64) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DLANCELOT" )
lancelotb_ampl_double_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb_ampl \
                $(D64) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DLANCELOT" )
lancelotb_ampl_quadruple_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) lancelotb_ampl \
                $(Q64) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DLANCELOT" )

#  -----------------------------------------------------------
#  all the regularized quadratic sub-problem solution packages
#  -----------------------------------------------------------

rq_cutest: rq_cutest_$(PRECIS)

rq_cutest_single:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S32) PWD=$(PWD)/all_rq )
rq_cutest_double:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D32) PWD=$(PWD)/all_rq )
rq_cutest_quadruple:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q32) PWD=$(PWD)/all_rq )
rq_cutest_single_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S64) PWD=$(PWD)/all_rq )
rq_cutest_double_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D64) PWD=$(PWD)/all_rq )
rq_cutest_quadruple_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q64) PWD=$(PWD)/all_rq )

rq: rq_$(PRECIS)

rq_single:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S32) PWD=$(PWD)/all_rq )
rq_double:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D32) PWD=$(PWD)/all_rq )
rq_quadruple:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q32) PWD=$(PWD)/all_rq )
rq_single_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S64) PWD=$(PWD)/all_rq )
rq_double_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D64) PWD=$(PWD)/all_rq )
rq_quadruple_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q64) PWD=$(PWD)/all_rq )

rq_matlab: rq_matlab_$(PRECIS)

rq_matlab_single:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allrq $(S32) PWD=$(PWD)/matlab )
rq_matlab_double:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allrq $(D32) PWD=$(PWD)/matlab )
rq_matlab_quadruple:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allrq $(Q32) PWD=$(PWD)/matlab )
rq_matlab_single_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allrq $(S64) PWD=$(PWD)/matlab )
rq_matlab_double_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allrq $(D64) PWD=$(PWD)/matlab )
rq_matlab_quadruple_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allrq $(Q64) PWD=$(PWD)/matlab )

rq_ciface: rq_ciface_$(PRECIS)

rq_ciface_single:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(S32) PWD=$(PWD)/all_rq )
rq_ciface_double:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(D32) PWD=$(PWD)/all_rq )
rq_ciface_quadruple:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(Q32) PWD=$(PWD)/all_rq )
rq_ciface_single_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(S64) PWD=$(PWD)/all_rq )
rq_ciface_double_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(D64) PWD=$(PWD)/all_rq )
rq_ciface_quadruple_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(Q64) PWD=$(PWD)/all_rq )

rq_pyiface: rq_pyiface_$(PRECIS)

rq_pyiface_single:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(S32) PWD=$(PWD)/all_rq )
rq_pyiface_double:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(D32) PWD=$(PWD)/all_rq )
rq_pyiface_quadruple:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(Q32) PWD=$(PWD)/all_rq )
rq_pyiface_single_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(S64) PWD=$(PWD)/all_rq )
rq_pyiface_double_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(D64) PWD=$(PWD)/all_rq )
rq_pyiface_quadruple_64:
	( cd all_rq ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(Q64) PWD=$(PWD)/all_rq )

#  -------------------
#  all the QP packages
#  -------------------

qp_cutest: qp_cutest_$(PRECIS)

qp_cutest_single:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S32) PWD=$(PWD)/all_qp )
qp_cutest_double:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D32) PWD=$(PWD)/all_qp )
qp_cutest_quadruple:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q32) PWD=$(PWD)/all_qp )
qp_cutest_single_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S64) PWD=$(PWD)/all_qp )
qp_cutest_double_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D64) PWD=$(PWD)/all_qp )
qp_cutest_quadruple_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q64) PWD=$(PWD)/all_qp )

qp_ampl: qp_ampl_$(PRECIS)

qp_ampl_single:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl \
                  $(S32) PWD=$(PWD)/ampl \
                  CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC -DPRESOLVE" )
qp_ampl_double:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl \
                  $(D32) PWD=$(PWD)/ampl \
                  CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC -DPRESOLVE" )
qp_ampl_quadruple:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl \
                  $(Q32) PWD=$(PWD)/ampl \
                  CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC -DPRESOLVE" )
qp_ampl_single_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl \
                  $(S64) PWD=$(PWD)/ampl \
                  CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC -DPRESOLVE" )
qp_ampl_double_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl \
                  $(D64) PWD=$(PWD)/ampl \
                  CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC -DPRESOLVE" )
qp_ampl_quadruple_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qp_ampl \
                  $(Q64) PWD=$(PWD)/ampl \
                  CUSTOM_AMPL_FLAGS="-DQP -DCQP -DQPA -DQPB -DQPC -DPRESOLVE" )

qp: qp_$(PRECIS)

qp_single:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S32) PWD=$(PWD)/all_qp )
qp_double:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D32) PWD=$(PWD)/all_qp )
qp_quadruple:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q32) PWD=$(PWD)/all_qp )
qp_single_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S64) PWD=$(PWD)/all_qp )
qp_double_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D64) PWD=$(PWD)/all_qp )
qp_quadruple_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q64) PWD=$(PWD)/all_qp )

qp_matlab: qp_matlab_$(PRECIS)

qp_matlab_single:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allqp $(S32) PWD=$(PWD)/matlab )
qp_matlab_double:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allqp $(D32) PWD=$(PWD)/matlab )
qp_matlab_quadruple:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allqp $(Q32) PWD=$(PWD)/matlab )
qp_matlab_single_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allqp $(S64) PWD=$(PWD)/matlab )
qp_matlab_double_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allqp $(D64) PWD=$(PWD)/matlab )
qp_matlab_quadruple_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allqp $(Q64) PWD=$(PWD)/matlab )

qp_ciface: qp_ciface_$(PRECIS)

qp_ciface_single:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface all_qplib $(S32) PWD=$(PWD)/all_qp )
qp_ciface_double:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface all_qplib $(D32) PWD=$(PWD)/all_qp )
qp_ciface_quadruple:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface all_qplib $(Q32) PWD=$(PWD)/all_qp )
qp_ciface_single_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface all_qplib $(S64) PWD=$(PWD)/all_qp )
qp_ciface_double_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface all_qplib $(D64) PWD=$(PWD)/all_qp )
qp_ciface_quadruple_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface all_qplib $(Q64) PWD=$(PWD)/all_qp )

qp_pyiface: qp_pyiface_$(PRECIS)

qp_pyiface_single:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface all_qplib $(S32) PWD=$(PWD)/all_qp )
qp_pyiface_double:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface all_qplib $(D32) PWD=$(PWD)/all_qp )
qp_pyiface_quadruple:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface all_qplib $(Q32) PWD=$(PWD)/all_qp )
qp_pyiface_single_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface all_qplib $(S64) PWD=$(PWD)/all_qp )
qp_pyiface_double_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface all_qplib $(D64) PWD=$(PWD)/all_qp )
qp_pyiface_quadruple_64:
	( cd all_qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface all_qplib $(Q64) PWD=$(PWD)/all_qp )

#  ------------------------------------------------
#  all the unconstrained/bound-constrained packages
#  ------------------------------------------------

ucbc_cutest: ucbc_cutest_$(PRECIS)

ucbc_cutest_single:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    tru_cutest $(S32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    arc_cutest $(S32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    trb_cutest $(S32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    nls_cutest $(S32) PWD=$(PWD)/nls )
ucbc_cutest_double:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_cutest $(D32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_cutest $(D32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_cutest $(D32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_cutest $(D32) PWD=$(PWD)/nls )
ucbc_cutest_quadruple:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_cutest $(Q32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_cutest $(Q32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_cutest $(Q32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_cutest $(Q32) PWD=$(PWD)/nls )
ucbc_cutest_single_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    tru_cutest $(S64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    arc_cutest $(S64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    trb_cutest $(S64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    nls_cutest $(S64) PWD=$(PWD)/nls )
ucbc_cutest_double_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_cutest $(D64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_cutest $(D64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_cutest $(D64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_cutest $(D64) PWD=$(PWD)/nls )
ucbc_cutest_quadruple_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_cutest $(Q64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_cutest $(Q64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_cutest $(Q64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_cutest $(Q64) PWD=$(PWD)/nls )

ucbc: ucbc_$(PRECIS)

ucbc_single: ucbc_cutest_single
ucbc_double: ucbc_cutest_double
ucbc_quadruple: ucbc_cutest_quadruple
ucbc_single_64: ucbc_cutest_single_64
ucbc_double_64: ucbc_cutest_double_64
ucbc_quadruple_64: ucbc_cutest_quadruple_64

ucbc_matlab: ucbc_matlab_$(PRECIS)

ucbc_matlab_single:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allucbc $(S32) PWD=$(PWD)/matlab )
ucbc_matlab_double:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allucbc $(D32) PWD=$(PWD)/matlab )
ucbc_matlab_quadruple:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allucbc $(Q32) PWD=$(PWD)/matlab )
ucbc_matlab_single_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allucbc $(S64) PWD=$(PWD)/matlab )
ucbc_matlab_double_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allucbc $(D64) PWD=$(PWD)/matlab )
ucbc_matlab_quadruple_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allucbc $(Q64) PWD=$(PWD)/matlab )

ucbc_ciface: ucbc_ciface_$(PRECIS)

ucbc_ciface_single:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    tru_ciface $(S32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    arc_ciface $(S32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    trb_ciface $(S32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    nls_ciface $(S32) PWD=$(PWD)/nls )
ucbc_ciface_double:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_ciface $(D32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_ciface $(D32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_ciface $(D32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_ciface $(D32) PWD=$(PWD)/nls )
ucbc_ciface_quadruple:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_ciface $(Q32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_ciface $(Q32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_ciface $(Q32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_ciface $(Q32) PWD=$(PWD)/nls )
ucbc_ciface_single_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    tru_ciface $(S64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    arc_ciface $(S64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    trb_ciface $(S64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    nls_ciface $(S64) PWD=$(PWD)/nls )
ucbc_ciface_double_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_ciface $(D64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_ciface $(D64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_ciface $(D64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_ciface $(D64) PWD=$(PWD)/nls )
ucbc_ciface_quadruple_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_ciface $(Q64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_ciface $(Q64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_ciface $(Q64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_ciface $(Q64) PWD=$(PWD)/nls )

ucbc_pyiface: ucbc_pyiface_$(PRECIS)

ucbc_pyiface_single:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    tru_pyiface $(S32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    arc_pyiface $(S32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    trb_pyiface $(S32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    nls_pyiface $(S32) PWD=$(PWD)/nls )
ucbc_pyiface_double:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_pyiface $(D32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_pyiface $(D32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_pyiface $(D32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_pyiface $(D32) PWD=$(PWD)/nls )
ucbc_pyiface_quadruple:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_pyiface $(Q32) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_pyiface $(Q32) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_pyiface $(Q32) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_pyiface $(Q32) PWD=$(PWD)/nls )
ucbc_pyiface_single_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    tru_pyiface $(S64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    arc_pyiface $(S64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    trb_pyiface $(S64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                    nls_pyiface $(S64) PWD=$(PWD)/nls )
ucbc_pyiface_double_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_pyiface $(D64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_pyiface $(D64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_pyiface $(D64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_pyiface $(D64) PWD=$(PWD)/nls )
ucbc_pyiface_quadruple_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     tru_pyiface $(Q64) PWD=$(PWD)/tru )
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     arc_pyiface $(Q64) PWD=$(PWD)/arc )
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     trb_pyiface $(Q64) PWD=$(PWD)/trb )
	( cd nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     nls_pyiface $(Q64) PWD=$(PWD)/nls )

#  ----------------------------------------
#  all the nonlinear least-squares packages
#  ----------------------------------------

nls_cutest: nls_cutest_$(PRECIS)

nls_cutest_single:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S32) PWD=$(PWD)/all_nls )
nls_cutest_double:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D32) PWD=$(PWD)/all_nls )
nls_cutest_quadruple:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q32) PWD=$(PWD)/all_nls )
nls_cutest_single_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S64) PWD=$(PWD)/all_nls )
nls_cutest_double_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D64) PWD=$(PWD)/all_nls )
nls_cutest_quadruple_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q64) PWD=$(PWD)/all_nls )

nls: nls_$(PRECIS)

nls_single:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S32) PWD=$(PWD)/all_nls )
nls_double:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D32) PWD=$(PWD)/all_nls )
nls_quadruple:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q32) PWD=$(PWD)/all_nls )
nls_single_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S64) PWD=$(PWD)/all_nls )
nls_double_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D64) PWD=$(PWD)/all_nls )
nls_quadruple_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q64) PWD=$(PWD)/all_nls )

nls_matlab: nls_matlab_$(PRECIS)

nls_matlab_single:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allnls $(S32) PWD=$(PWD)/matlab )
nls_matlab_double:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allnls $(D32) PWD=$(PWD)/matlab )
nls_matlab_quadruple:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allnls $(Q32) PWD=$(PWD)/matlab )
nls_matlab_single_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allnls $(S64) PWD=$(PWD)/matlab )
nls_matlab_double_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allnls $(D64) PWD=$(PWD)/matlab )
nls_matlab_quadruple_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allnls $(Q64) PWD=$(PWD)/matlab )

nls_ciface: nls_ciface_$(PRECIS)

nls_ciface_single:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(S32) PWD=$(PWD)/all_nls )
nls_ciface_double:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(D32) PWD=$(PWD)/all_nls )
nls_ciface_quadruple:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(Q32) PWD=$(PWD)/all_nls )
nls_ciface_single_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(S64) PWD=$(PWD)/all_nls )
nls_ciface_double_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(D64) PWD=$(PWD)/all_nls )
nls_ciface_quadruple_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(Q64) PWD=$(PWD)/all_nls )

nls_pyiface: nls_pyiface_$(PRECIS)

nls_pyiface_single:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(S32) PWD=$(PWD)/all_nls )
nls_pyiface_double:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(D32) PWD=$(PWD)/all_nls )
nls_pyiface_quadruple:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(Q32) PWD=$(PWD)/all_nls )
nls_pyiface_single_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(S64) PWD=$(PWD)/all_nls )
nls_pyiface_double_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(D64) PWD=$(PWD)/all_nls )
nls_pyiface_quadruple_64:
	( cd all_nls ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(Q64) PWD=$(PWD)/all_nls )

#  ------------------------------------
#  all the global optimization packages
#  ------------------------------------

go_cutest: go_cutest_$(PRECIS)

go_cutest_single:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S32) PWD=$(PWD)/all_go )
go_cutest_double:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D32) PWD=$(PWD)/all_go )
go_cutest_quadruple:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q32) PWD=$(PWD)/all_go )
go_cutest_single_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(S64) PWD=$(PWD)/all_go )
go_cutest_double_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(D64) PWD=$(PWD)/all_go )
go_cutest_quadruple_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all_cutest \
                    $(Q64) PWD=$(PWD)/all_go )

go: go_$(PRECIS)

go_single:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S32) PWD=$(PWD)/all_go )
go_double:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D32) PWD=$(PWD)/all_go )
go_quadruple:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q32) PWD=$(PWD)/all_go )
go_single_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(S64) PWD=$(PWD)/all_go )
go_double_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(D64) PWD=$(PWD)/all_go )
go_quadruple_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) all \
                    $(Q64) PWD=$(PWD)/all_go )

go_matlab: go_matlab_$(PRECIS)

go_matlab_single:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allgo $(S32) PWD=$(PWD)/matlab )
go_matlab_double:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allgo $(D32) PWD=$(PWD)/matlab )
go_matlab_quadruple:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allgo $(Q32) PWD=$(PWD)/matlab )
go_matlab_single_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allgo $(S64) PWD=$(PWD)/matlab )
go_matlab_double_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allgo $(D64) PWD=$(PWD)/matlab )
go_matlab_quadruple_64:
	( cd matlab ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     allgo $(Q64) PWD=$(PWD)/matlab )

go_ciface: go_ciface_$(PRECIS)

go_ciface_single:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(S32) PWD=$(PWD)/all_go )
go_ciface_double:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(D32) PWD=$(PWD)/all_go )
go_ciface_quadruple:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(Q32) PWD=$(PWD)/all_go )
go_ciface_single_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(S64) PWD=$(PWD)/all_go )
go_ciface_double_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(D64) PWD=$(PWD)/all_go )
go_ciface_quadruple_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_ciface $(Q64) PWD=$(PWD)/all_go )

go_pyiface: go_pyiface_$(PRECIS)

go_pyiface_single:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(S32) PWD=$(PWD)/all_go )
go_pyiface_double:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(D32) PWD=$(PWD)/all_go )
go_pyiface_quadruple:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(Q32) PWD=$(PWD)/all_go )
go_pyiface_single_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(S64) PWD=$(PWD)/all_go )
go_pyiface_double_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(D64) PWD=$(PWD)/all_go )
go_pyiface_quadruple_64:
	( cd all_go ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                     all_pyiface $(Q64) PWD=$(PWD)/all_go )

#  ---
#  qpa
#  ---

qpa_cutest: qpa_cutest_$(PRECIS)

qpa_cutest_single:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest \
                    $(S32) PWD=$(PWD)/qpa )
qpa_cutest_double:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest \
                    $(D32) PWD=$(PWD)/qpa )
qpa_cutest_quadruple:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest \
                    $(Q32) PWD=$(PWD)/qpa )
qpa_cutest_single_64:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest \
                    $(S64) PWD=$(PWD)/qpa )
qpa_cutest_double_64:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest \
                    $(D64) PWD=$(PWD)/qpa )
qpa_cutest_quadruple_64:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa_cutest \
                    $(Q64) PWD=$(PWD)/qpa )

qpa: qpa_$(PRECIS)

qpa_single:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa \
                    $(S32) PWD=$(PWD)/qpa )
qpa_double:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa \
                    $(D32) PWD=$(PWD)/qpa )
qpa_quadruple:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa \
                    $(Q32) PWD=$(PWD)/qpa )
qpa_single_64:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa \
                    $(S64) PWD=$(PWD)/qpa )
qpa_double_64:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa \
                    $(D64) PWD=$(PWD)/qpa )
qpa_quadruple_64:
	( cd qpa ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpa \
                    $(Q64) PWD=$(PWD)/qpa )

#  ---
#  qpb
#  ---

qpb_cutest: qpb_cutest_$(PRECIS)

qpb_cutest_single:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest \
                    $(S32) PWD=$(PWD)/qpb )
qpb_cutest_double:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest \
                    $(D32) PWD=$(PWD)/qpb )
qpb_cutest_quadruple:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest \
                    $(Q32) PWD=$(PWD)/qpb )
qpb_cutest_single_64:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest \
                    $(S64) PWD=$(PWD)/qpb )
qpb_cutest_double_64:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest \
                    $(D64) PWD=$(PWD)/qpb )
qpb_cutest_quadruple_64:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb_cutest \
                    $(Q64) PWD=$(PWD)/qpb )

qpb: qpb_$(PRECIS)

qpb_single:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb \
                    $(S32) PWD=$(PWD)/qpb )
qpb_double:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb \
                    $(D32) PWD=$(PWD)/qpb )
qpb_quadruple:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb \
                    $(Q32) PWD=$(PWD)/qpb )
qpb_single_64:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb \
                    $(S64) PWD=$(PWD)/qpb )
qpb_double_64:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb \
                    $(D64) PWD=$(PWD)/qpb )
qpb_quadruple_64:
	( cd qpb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpb \
                    $(Q64) PWD=$(PWD)/qpb )

#  ---
#  qpc
#  ---

qpc_cutest: qpc_cutest_$(PRECIS)

qpc_cutest_single:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest \
                    $(S32) PWD=$(PWD)/qpc )
qpc_cutest_double:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest \
                    $(D32) PWD=$(PWD)/qpc )
qpc_cutest_quadruple:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest \
                    $(Q32) PWD=$(PWD)/qpc )
qpc_cutest_single_64:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest \
                    $(S64) PWD=$(PWD)/qpc )
qpc_cutest_double_64:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest \
                    $(D64) PWD=$(PWD)/qpc )
qpc_cutest_quadruple_64:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc_cutest \
                    $(Q64) PWD=$(PWD)/qpc )

qpc: qpc_$(PRECIS)

qpc_single:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc \
                    $(S32) PWD=$(PWD)/qpc )
qpc_double:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc \
                    $(D32) PWD=$(PWD)/qpc )
qpc_quadruple:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc \
                    $(Q32) PWD=$(PWD)/qpc )
qpc_single_64:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc \
                    $(S64) PWD=$(PWD)/qpc )
qpc_double_64:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc \
                    $(D64) PWD=$(PWD)/qpc )
qpc_quadruple_64:
	( cd qpc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) qpc \
                    $(Q64) PWD=$(PWD)/qpc )

#  ---
#  cqp
#  ---

cqp_cutest: cqp_cutest_$(PRECIS)

cqp_cutest_single:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest \
                    $(S32) PWD=$(PWD)/cqp )
cqp_cutest_double:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest \
                    $(D32) PWD=$(PWD)/cqp )
cqp_cutest_quadruple:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest \
                    $(Q32) PWD=$(PWD)/cqp )
cqp_cutest_single_64:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest \
                    $(S64) PWD=$(PWD)/cqp )
cqp_cutest_double_64:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest \
                    $(D64) PWD=$(PWD)/cqp )
cqp_cutest_quadruple_64:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp_cutest \
                    $(Q64) PWD=$(PWD)/cqp )

cqp: cqp_$(PRECIS)

cqp_single:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp \
                    $(S32) PWD=$(PWD)/cqp )
cqp_double:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp \
                    $(D32) PWD=$(PWD)/cqp )
cqp_quadruple:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp \
                    $(Q32) PWD=$(PWD)/cqp )
cqp_single_64:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp \
                    $(S64) PWD=$(PWD)/cqp )
cqp_double_64:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp \
                    $(D64) PWD=$(PWD)/cqp )
cqp_quadruple_64:
	( cd cqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) cqp \
                    $(Q64) PWD=$(PWD)/cqp )

#  ---
#  dqp
#  ---

dqp_cutest: dqp_cutest_$(PRECIS)

dqp_cutest_single:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest \
                    $(S32) PWD=$(PWD)/dqp )
dqp_cutest_double:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest \
                    $(D32) PWD=$(PWD)/dqp )
dqp_cutest_quadruple:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest \
                    $(Q32) PWD=$(PWD)/dqp )
dqp_cutest_single_64:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest \
                    $(S64) PWD=$(PWD)/dqp )
dqp_cutest_double_64:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest \
                    $(D64) PWD=$(PWD)/dqp )
dqp_cutest_quadruple_64:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp_cutest \
                    $(Q64) PWD=$(PWD)/dqp )

dqp: dqp_$(PRECIS)

dqp_single:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp \
                    $(S32) PWD=$(PWD)/dqp )
dqp_double:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp \
                    $(D32) PWD=$(PWD)/dqp )
dqp_quadruple:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp \
                    $(Q32) PWD=$(PWD)/dqp )
dqp_single_64:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp \
                    $(S64) PWD=$(PWD)/dqp )
dqp_double_64:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp \
                    $(D64) PWD=$(PWD)/dqp )
dqp_quadruple_64:
	( cd dqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) dqp \
                    $(Q64) PWD=$(PWD)/dqp )

#  --------
#  presolve
#  --------

pre_cutest: pre_cutest_$(PRECIS)

pre_cutest_single:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         presolve_cutest $(S32) PWD=$(PWD)/presolve )
pre_cutest_double:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         presolve_cutest $(D32) PWD=$(PWD)/presolve )
pre_cutest_quadruple:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         presolve_cutest $(Q32) PWD=$(PWD)/presolve )
pre_cutest_single_64:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         presolve_cutest $(S64) PWD=$(PWD)/presolve )
pre_cutest_double_64:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         presolve_cutest $(D64) PWD=$(PWD)/presolve )
pre_cutest_quadruple_64:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                         presolve_cutest $(Q64) PWD=$(PWD)/presolve )

pre: pre_$(PRECIS)

pre_single:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          presolve $(S32) PWD=$(PWD)/presolve )
pre_double:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          presolve $(D32) PWD=$(PWD)/presolve )
pre_quadruple:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          presolve $(Q32) PWD=$(PWD)/presolve )
pre_single_64:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          presolve $(S64) PWD=$(PWD)/presolve )
pre_double_64:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          presolve $(D64) PWD=$(PWD)/presolve )
pre_quadruple_64:
	( cd presolve ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                          presolve $(Q64) PWD=$(PWD)/presolve )

#  --------
#  FILTRANE
#  --------

filtrane_cutest: filtrane_cutest_$(PRECIS)

filtrane_cutest_single:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(S32) PWD=$(PWD)/filtrane )
filtrane_cutest_double:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(D32) PWD=$(PWD)/filtrane )
filtrane_cutest_quadruple:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(Q32) PWD=$(PWD)/filtrane )
filtrane_cutest_single_64:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(S64) PWD=$(PWD)/filtrane )
filtrane_cutest_double_64:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(D64) PWD=$(PWD)/filtrane )
filtrane_cutest_quadruple_64:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
                        filtrane_cutest $(Q64) PWD=$(PWD)/filtrane )

filtrane_ampl: filtrane_ampl_$(PRECIS)

filtrane_ampl_single:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane_ampl \
              $(S32) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DFILTRANE")
filtrane_ampl_double:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane_ampl \
              $(D32) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DFILTRANE")
filtrane_ampl_quadruple:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane_ampl \
              $(Q32) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DFILTRANE")
filtrane_ampl_single_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane_ampl \
              $(S64) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DFILTRANE")
filtrane_ampl_double_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane_ampl \
              $(D64) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DFILTRANE")
filtrane_ampl_quadruple_64:
	( cd ampl ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane_ampl \
              $(Q64) PWD=$(PWD)/ampl CUSTOM_AMPL_FLAGS="-DFILTRANE")

filtrane: filtrane_$(PRECIS)

filtrane_single:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane \
                      $(S32) PWD=$(PWD)/filtrane )
filtrane_double:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane \
                      $(D32) PWD=$(PWD)/filtrane )
filtrane_quadruple:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane \
                      $(Q32) PWD=$(PWD)/filtrane )
filtrane_single_64:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane \
                      $(S64) PWD=$(PWD)/filtrane )
filtrane_double_64:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane \
                      $(D64) PWD=$(PWD)/filtrane )
filtrane_quadruple_64:
	( cd filtrane ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) filtrane \
                      $(Q64) PWD=$(PWD)/filtrane )

#  ------
#  superb
#  ------

superb_cutest: superb_cutest_$(PRECIS)

superb_cutest_single:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb_cutest $(S32) PWD=$(PWD)/oblivion/superb )
superb_cutest_double:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb_cutest $(D32) PWD=$(PWD)/oblivion/superb )
superb_cutest_quadruple:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb_cutest $(Q32) PWD=$(PWD)/oblivion/superb )
superb_cutest_single_64:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb_cutest $(S64) PWD=$(PWD)/oblivion/superb )
superb_cutest_double_64:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb_cutest $(D64) PWD=$(PWD)/oblivion/superb )
superb_cutest_quadruple_64:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb_cutest $(Q64) PWD=$(PWD)/oblivion/superb )

superb: superb_$(PRECIS)

superb_single:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb $(S32) PWD=$(PWD)/oblivion/superb )
superb_double:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb $(D32) PWD=$(PWD)/oblivion/superb )
superb_quadruple:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb $(Q32) PWD=$(PWD)/oblivion/superb )
superb_single_64:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb $(S64) PWD=$(PWD)/oblivion/superb )
superb_double_64:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb $(D64) PWD=$(PWD)/oblivion/superb )
superb_quadruple_64:
	( cd oblivion/superb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            superb $(Q64) PWD=$(PWD)/oblivion/superb )

#  -----
#  fastr
#  -----

fastr_cutest: fastr_cutest_$(PRECIS)

fastr_cutest_single:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr_cutest $(S32) PWD=$(PWD)/oblivion/fastr )
fastr_cutest_double:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr_cutest $(D32) PWD=$(PWD)/oblivion/fastr )
fastr_cutest_quadruple:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr_cutest $(Q32) PWD=$(PWD)/oblivion/fastr )
fastr_cutest_single_64:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr_cutest $(S64) PWD=$(PWD)/oblivion/fastr )
fastr_cutest_double_64:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr_cutest $(D64) PWD=$(PWD)/oblivion/fastr )
fastr_cutest_quadruple_64:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr_cutest $(Q64) PWD=$(PWD)/oblivion/fastr )

fastr: fastr_$(PRECIS)

fastr_single:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr $(S32) PWD=$(PWD)/oblivion/fastr )
fastr_double:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr $(D32) PWD=$(PWD)/oblivion/fastr )
fastr_quadruple:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr $(Q32) PWD=$(PWD)/oblivion/fastr )
fastr_single_64:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr $(S64) PWD=$(PWD)/oblivion/fastr )
fastr_double_64:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr $(D64) PWD=$(PWD)/oblivion/fastr )
fastr_quadruple_64:
	( cd oblivion/fastr ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            fastr $(Q64) PWD=$(PWD)/oblivion/fastr )

#  -----
#  fisqp
#  -----

fisqp_cutest: fisqp_cutest_$(PRECIS)

fisqp_cutest_single:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp_cutest $(S32) PWD=$(PWD)/forthcoming/fisqp )
fisqp_cutest_double:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp_cutest $(D32) PWD=$(PWD)/forthcoming/fisqp )
fisqp_cutest_quadruple:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp_cutest $(Q32) PWD=$(PWD)/forthcoming/fisqp )
fisqp_cutest_single_64:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp_cutest $(S64) PWD=$(PWD)/forthcoming/fisqp )
fisqp_cutest_double_64:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp_cutest $(D64) PWD=$(PWD)/forthcoming/fisqp )
fisqp_cutest_quadruple_64:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp_cutest $(Q64) PWD=$(PWD)/forthcoming/fisqp )

fisqp: fisqp_$(PRECIS)

fisqp_single:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp $(S32) PWD=$(PWD)/forthcoming/fisqp )
fisqp_double:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp $(D32) PWD=$(PWD)/forthcoming/fisqp )
fisqp_quadruple:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp $(Q32) PWD=$(PWD)/forthcoming/fisqp )
fisqp_single_64:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp $(S64) PWD=$(PWD)/forthcoming/fisqp )
fisqp_double_64:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp $(D64) PWD=$(PWD)/forthcoming/fisqp )
fisqp_quadruple_64:
	( cd forthcoming/fisqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               fisqp $(Q64) PWD=$(PWD)/forthcoming/fisqp )

#  ----
#  colt
#  ----

colt_cutest: colt_cutest_$(PRECIS)

colt_cutest_single:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt_cutest $(S32) PWD=$(PWD)/forthcoming/colt )
colt_cutest_double:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt_cutest $(D32) PWD=$(PWD)/forthcoming/colt )
colt_cutest_quadruple:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt_cutest $(Q32) PWD=$(PWD)/forthcoming/colt )
colt_cutest_single_64:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt_cutest $(S64) PWD=$(PWD)/forthcoming/colt )
colt_cutest_double_64:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt_cutest $(D64) PWD=$(PWD)/forthcoming/colt )
colt_cutest_quadruple_64:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt_cutest $(Q64) PWD=$(PWD)/forthcoming/colt )

colt: colt_$(PRECIS)

colt_single:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt $(S32) PWD=$(PWD)/forthcoming/colt )
colt_double:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt $(D32) PWD=$(PWD)/forthcoming/colt )
colt_quadruple:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt $(Q32) PWD=$(PWD)/forthcoming/colt )
colt_single_64:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt $(S64) PWD=$(PWD)/forthcoming/colt )
colt_double_64:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt $(D64) PWD=$(PWD)/forthcoming/colt )
colt_quadruple_64:
	( cd forthcoming/colt ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
               colt $(Q64) PWD=$(PWD)/forthcoming/colt )

#  ---
#  sqp
#  ---

sqp_cutest: sqp_cutest_$(PRECIS)

sqp_cutest_single:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp_cutest $(S32) PWD=$(PWD)/oblivion/sqp )
sqp_cutest_double:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp_cutest $(D32) PWD=$(PWD)/oblivion/sqp )
sqp_cutest_quadruple:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp_cutest $(Q32) PWD=$(PWD)/oblivion/sqp )
sqp_cutest_single_64:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp_cutest $(S64) PWD=$(PWD)/oblivion/sqp )
sqp_cutest_double_64:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp_cutest $(D64) PWD=$(PWD)/oblivion/sqp )
sqp_cutest_quadruple_64:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp_cutest $(Q64) PWD=$(PWD)/oblivion/sqp )

sqp: sqp_$(PRECIS)

sqp_single:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp $(S32) PWD=$(PWD)/oblivion/sqp )
sqp_double:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp $(D32) PWD=$(PWD)/oblivion/sqp )
sqp_quadruple:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp $(Q32) PWD=$(PWD)/oblivion/sqp )
sqp_single_64:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp $(S64) PWD=$(PWD)/oblivion/sqp )
sqp_double_64:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp $(D64) PWD=$(PWD)/oblivion/sqp )
sqp_quadruple_64:
	( cd oblivion/sqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            sqp $(Q64) PWD=$(PWD)/oblivion/sqp )

#  -----
#  lpsqp
#  -----

lpsqp_cutest: lpsqp_cutest_$(PRECIS)

lpsqp_cutest_single:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp_cutest $(S32) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_cutest_double:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp_cutest $(D32) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_cutest_quadruple:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp_cutest $(Q32) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_cutest_single_64:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp_cutest $(S64) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_cutest_double_64:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp_cutest $(D64) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_cutest_quadruple_64:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp_cutest $(Q64) PWD=$(PWD)/oblivion/lpsqp )

lpsqp: lpsqp_$(PRECIS)

lpsqp_single:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp $(S32) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_double:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp $(D32) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_quadruple:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp $(Q32) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_single_64:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp $(S64) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_double_64:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp $(D64) PWD=$(PWD)/oblivion/lpsqp )
lpsqp_quadruple_64:
	( cd oblivion/lpsqp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lpsqp $(Q64) PWD=$(PWD)/oblivion/lpsqp )

#  ----
#  s2qp
#  ----

s2qp_cutest: s2qp_cutest_$(PRECIS)

s2qp_cutest_single:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp_cutest $(S32) PWD=$(PWD)/oblivion/s2qp )
s2qp_cutest_double:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp_cutest $(D32) PWD=$(PWD)/oblivion/s2qp )
s2qp_cutest_quadruple:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp_cutest $(Q32) PWD=$(PWD)/oblivion/s2qp )
s2qp_cutest_single_64:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp_cutest $(S64) PWD=$(PWD)/oblivion/s2qp )
s2qp_cutest_double_64:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp_cutest $(D64) PWD=$(PWD)/oblivion/s2qp )
s2qp_cutest_quadruple_64:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp_cutest $(Q64) PWD=$(PWD)/oblivion/s2qp )

s2qp: s2qp_$(PRECIS)

s2qp_single:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp $(S32) PWD=$(PWD)/oblivion/s2qp )
s2qp_double:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp $(D32) PWD=$(PWD)/oblivion/s2qp )
s2qp_quadruple:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp $(Q32) PWD=$(PWD)/oblivion/s2qp )
s2qp_single_64:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp $(S64) PWD=$(PWD)/oblivion/s2qp )
s2qp_double_64:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp $(D64) PWD=$(PWD)/oblivion/s2qp )
s2qp_quadruple_64:
	( cd oblivion/s2qp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            s2qp $(Q64) PWD=$(PWD)/oblivion/s2qp )

#  ---
#  ism
#  ---

ism_cutest: ism_cutest_$(PRECIS)

ism_cutest_single:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism_cutest $(S32) PWD=$(PWD)/oblivion/ism )
ism_cutest_double:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism_cutest $(D32) PWD=$(PWD)/oblivion/ism )
ism_cutest_quadruple:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism_cutest $(Q32) PWD=$(PWD)/oblivion/ism )
ism_cutest_single_64:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism_cutest $(S64) PWD=$(PWD)/oblivion/ism )
ism_cutest_double_64:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism_cutest $(D64) PWD=$(PWD)/oblivion/ism )
ism_cutest_quadruple_64:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism_cutest $(Q64) PWD=$(PWD)/oblivion/ism )

ism: ism_$(PRECIS)

ism_single:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism $(S32) PWD=$(PWD)/oblivion/ism )
ism_double:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism $(D32) PWD=$(PWD)/oblivion/ism )
ism_quadruple:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism $(Q32) PWD=$(PWD)/oblivion/ism )
ism_single_64:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism $(S64) PWD=$(PWD)/oblivion/ism )
ism_double_64:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism $(D64) PWD=$(PWD)/oblivion/ism )
ism_quadruple_64:
	( cd oblivion/ism ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ism $(Q64) PWD=$(PWD)/oblivion/ism )

#  ----
#  ermo
#  ----

ermo_cutest: ermo_cutest_$(PRECIS)

ermo_cutest_single:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo_cutest $(S32) PWD=$(PWD)/oblivion/ermo )
ermo_cutest_double:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo_cutest $(D32) PWD=$(PWD)/oblivion/ermo )
ermo_cutest_quadruple:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo_cutest $(Q32) PWD=$(PWD)/oblivion/ermo )
ermo_cutest_single_64:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo_cutest $(S64) PWD=$(PWD)/oblivion/ermo )
ermo_cutest_double_64:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo_cutest $(D64) PWD=$(PWD)/oblivion/ermo )
ermo_cutest_quadruple_64:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo_cutest $(Q64) PWD=$(PWD)/oblivion/ermo )

ermo: ermo_$(PRECIS)

ermo_single:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo $(S32) PWD=$(PWD)/oblivion/ermo )
ermo_double:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo $(D32) PWD=$(PWD)/oblivion/ermo )
ermo_quadruple:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo $(Q32) PWD=$(PWD)/oblivion/ermo )
ermo_single_64:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo $(S64) PWD=$(PWD)/oblivion/ermo )
ermo_double_64:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo $(D64) PWD=$(PWD)/oblivion/ermo )
ermo_quadruple_64:
	( cd oblivion/ermo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            ermo $(Q64) PWD=$(PWD)/oblivion/ermo )

#  ---
#  arc
#  ---

arc_cutest: arc_cutest_$(PRECIS)

arc_cutest_single:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc_cutest \
                    $(S32) PWD=$(PWD)/arc )
arc_cutest_double:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc_cutest \
                    $(D32) PWD=$(PWD)/arc )
arc_cutest_quadruple:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc_cutest \
                    $(Q32) PWD=$(PWD)/arc )
arc_cutest_single_64:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc_cutest \
                    $(S64) PWD=$(PWD)/arc )
arc_cutest_double_64:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc_cutest \
                    $(D64) PWD=$(PWD)/arc )
arc_cutest_quadruple_64:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc_cutest \
                    $(Q64) PWD=$(PWD)/arc )

arc: arc_$(PRECIS)

arc_single:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc \
                    $(S32) PWD=$(PWD)/arc )
arc_double:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc \
                    $(D32) PWD=$(PWD)/arc )
arc_quadruple:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc \
                    $(Q32) PWD=$(PWD)/arc )
arc_single_64:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc \
                    $(S64) PWD=$(PWD)/arc )
arc_double_64:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc \
                    $(D64) PWD=$(PWD)/arc )
arc_quadruple_64:
	( cd arc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) arc \
                    $(Q64) PWD=$(PWD)/arc )

#  ----
#  barc
#  ----

barc_cutest: barc_cutest_$(PRECIS)

barc_cutest_single:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc_cutest $(S32) PWD=$(PWD)/forthcoming/barc )
barc_cutest_double:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc_cutest $(D32) PWD=$(PWD)/forthcoming/barc )
barc_cutest_quadruple:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc_cutest $(Q32) PWD=$(PWD)/forthcoming/barc )
barc_cutest_single_64:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc_cutest $(S64) PWD=$(PWD)/forthcoming/barc )
barc_cutest_double_64:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc_cutest $(D64) PWD=$(PWD)/forthcoming/barc )
barc_cutest_quadruple_64:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc_cutest $(Q64) PWD=$(PWD)/forthcoming/barc )

barc: barc_$(PRECIS)

barc_single:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc $(S32) PWD=$(PWD)/forthcoming/barc )
barc_double:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc $(D32) PWD=$(PWD)/forthcoming/barc )
barc_quadruple:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc $(Q32) PWD=$(PWD)/forthcoming/barc )
barc_single_64:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc $(S64) PWD=$(PWD)/forthcoming/barc )
barc_double_64:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc $(D64) PWD=$(PWD)/forthcoming/barc )
barc_quadruple_64:
	( cd forthcoming/barc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            barc $(Q64) PWD=$(PWD)/forthcoming/barc )

#  ---
#  tru
#  ---

tru_cutest: tru_cutest_$(PRECIS)

tru_cutest_single:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru_cutest \
                    $(S32) PWD=$(PWD)/tru )
tru_cutest_double:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru_cutest \
                    $(D32) PWD=$(PWD)/tru )
tru_cutest_quadruple:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru_cutest \
                    $(Q32) PWD=$(PWD)/tru )
tru_cutest_single_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru_cutest \
                    $(S64) PWD=$(PWD)/tru )
tru_cutest_double_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru_cutest \
                    $(D64) PWD=$(PWD)/tru )
tru_cutest_quadruple_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru_cutest \
                    $(Q64) PWD=$(PWD)/tru )

tru: tru_$(PRECIS)

tru_single:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru \
                    $(S32) PWD=$(PWD)/tru )
tru_double:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru \
                    $(D32) PWD=$(PWD)/tru )
tru_quadruple:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru \
                    $(Q32) PWD=$(PWD)/tru )
tru_single_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru \
                    $(S64) PWD=$(PWD)/tru )
tru_double_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru \
                    $(D64) PWD=$(PWD)/tru )
tru_quadruple_64:
	( cd tru ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) tru \
                    $(Q64) PWD=$(PWD)/tru )

#  ---
#  trb
#  ---

trb_cutest: trb_cutest_$(PRECIS)

trb_cutest_single:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb_cutest $(S32) PWD=$(PWD)/trb )
trb_cutest_double:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb_cutest $(D32) PWD=$(PWD)/trb )
trb_cutest_quadruple:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb_cutest $(Q32) PWD=$(PWD)/trb )
trb_cutest_single_64:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb_cutest $(S64) PWD=$(PWD)/trb )
trb_cutest_double_64:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb_cutest $(D64) PWD=$(PWD)/trb )
trb_cutest_quadruple_64:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb_cutest $(Q64) PWD=$(PWD)/trb )

trb: trb_$(PRECIS)

trb_single:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb $(S32) PWD=$(PWD)/trb )
trb_double:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb $(D32) PWD=$(PWD)/trb )
trb_quadruple:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb $(Q32) PWD=$(PWD)/trb )
trb_single_64:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb $(S64) PWD=$(PWD)/trb )
trb_double_64:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb $(D64) PWD=$(PWD)/trb )
trb_quadruple_64:
	( cd trb ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            trb $(Q64) PWD=$(PWD)/trb )

#  ------
#  funnel
#  ------

funnel_cutest: funnel_cutest_$(PRECIS)

funnel_cutest_single:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel_cutest $(S32) PWD=$(PWD)/oblivion/funnel )
funnel_cutest_double:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel_cutest $(D32) PWD=$(PWD)/oblivion/funnel )
funnel_cutest_quadruple:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel_cutest $(Q32) PWD=$(PWD)/oblivion/funnel )
funnel_cutest_single_64:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel_cutest $(S64) PWD=$(PWD)/oblivion/funnel )
funnel_cutest_double_64:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel_cutest $(D64) PWD=$(PWD)/oblivion/funnel )
funnel_cutest_quadruple_64:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel_cutest $(Q64) PWD=$(PWD)/oblivion/funnel )

funnel: funnel_$(PRECIS)

funnel_single:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel $(S32) PWD=$(PWD)/oblivion/funnel )
funnel_double:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel $(D32) PWD=$(PWD)/oblivion/funnel )
funnel_quadruple:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel $(Q32) PWD=$(PWD)/oblivion/funnel )
funnel_single_64:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel $(S64) PWD=$(PWD)/oblivion/funnel )
funnel_double_64:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel $(D64) PWD=$(PWD)/oblivion/funnel )
funnel_quadruple_64:
	( cd oblivion/funnel ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            funnel $(Q64) PWD=$(PWD)/oblivion/funnel )

#  ---
#  wcp
#  ---

wcp_cutest: wcp_cutest_$(PRECIS)

wcp_cutest_single:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp_cutest \
                    $(S32) PWD=$(PWD)/wcp )
wcp_cutest_double:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp_cutest \
                    $(D32) PWD=$(PWD)/wcp )
wcp_cutest_quadruple:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp_cutest \
                    $(Q32) PWD=$(PWD)/wcp )
wcp_cutest_single_64:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp_cutest \
                    $(S64) PWD=$(PWD)/wcp )
wcp_cutest_double_64:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp_cutest \
                    $(D64) PWD=$(PWD)/wcp )
wcp_cutest_quadruple_64:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp_cutest \
                    $(Q64) PWD=$(PWD)/wcp )

wcp: wcp_$(PRECIS)

wcp_single:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp \
                    $(S32) PWD=$(PWD)/wcp )
wcp_double:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp \
                    $(D32) PWD=$(PWD)/wcp )
wcp_quadruple:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp \
                    $(Q32) PWD=$(PWD)/wcp )
wcp_single_64:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp \
                    $(S64) PWD=$(PWD)/wcp )
wcp_double_64:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp \
                    $(D64) PWD=$(PWD)/wcp )
wcp_quadruple_64:
	( cd wcp ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) wcp \
                    $(Q64) PWD=$(PWD)/wcp )

#  ---
#  lcf
#  ---

lcf_cutest: lcf_cutest_$(PRECIS)

lcf_cutest_single:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf_cutest $(S32) PWD=$(PWD)/oblivion/lcf )
lcf_cutest_double:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf_cutest $(D32) PWD=$(PWD)/oblivion/lcf )
lcf_cutest_quadruple:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf_cutest $(Q32) PWD=$(PWD)/oblivion/lcf )
lcf_cutest_single_64:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf_cutest $(S64) PWD=$(PWD)/oblivion/lcf )
lcf_cutest_double_64:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf_cutest $(D64) PWD=$(PWD)/oblivion/lcf )
lcf_cutest_quadruple_64:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf_cutest $(Q64) PWD=$(PWD)/oblivion/lcf )

lcf: lcf_$(PRECIS)

lcf_single:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf $(S32) PWD=$(PWD)/oblivion/lcf )
lcf_double:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf $(D32) PWD=$(PWD)/oblivion/lcf )
lcf_quadruple:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf $(Q32) PWD=$(PWD)/oblivion/lcf )
lcf_single_64:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf $(S64) PWD=$(PWD)/oblivion/lcf )
lcf_double_64:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf $(D64) PWD=$(PWD)/oblivion/lcf )
lcf_quadruple_64:
	( cd oblivion/lcf ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            lcf $(Q64) PWD=$(PWD)/oblivion/lcf )

#  ---
#  fdh
#  ---

fdh_cutest: fdh_cutest_$(PRECIS)

fdh_cutest_single:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh_cutest \
                    $(S32) PWD=$(PWD)/fdh )
fdh_cutest_double:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh_cutest \
                    $(D32) PWD=$(PWD)/fdh )
fdh_cutest_quadruple:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh_cutest \
                    $(Q32) PWD=$(PWD)/fdh )
fdh_cutest_single_64:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh_cutest \
                    $(S64) PWD=$(PWD)/fdh )
fdh_cutest_double_64:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh_cutest \
                    $(D64) PWD=$(PWD)/fdh )
fdh_cutest_quadruple_64:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh_cutest \
                    $(Q64) PWD=$(PWD)/fdh )

fdh: fdh_$(PRECIS)

fdh_single:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh \
                    $(S32) PWD=$(PWD)/fdh )
fdh_double:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh \
                    $(D32) PWD=$(PWD)/fdh )
fdh_quadruple:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh \
                    $(Q32) PWD=$(PWD)/fdh )
fdh_single_64:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh \
                    $(S64) PWD=$(PWD)/fdh )
fdh_double_64:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh \
                    $(D64) PWD=$(PWD)/fdh )
fdh_quadruple_64:
	( cd fdh ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) fdh \
                    $(Q64) PWD=$(PWD)/fdh )

#  ---
#  bsc
#  ---

bsc_cutest: bsc_cutest_$(PRECIS)

bsc_cutest_single:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc_cutest \
                    $(S32) PWD=$(PWD)/bsc )
bsc_cutest_double:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc_cutest \
                    $(D32) PWD=$(PWD)/bsc )
bsc_cutest_quadruple:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc_cutest \
                    $(Q32) PWD=$(PWD)/bsc )
bsc_cutest_single_64:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc_cutest \
                    $(S64) PWD=$(PWD)/bsc )
bsc_cutest_double_64:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc_cutest \
                    $(D64) PWD=$(PWD)/bsc )
bsc_cutest_quadruple_64:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc_cutest \
                    $(Q64) PWD=$(PWD)/bsc )

bsc: bsc_$(PRECIS)

bsc_single:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc \
                    $(S32) PWD=$(PWD)/bsc )
bsc_double:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc \
                    $(D32) PWD=$(PWD)/bsc )
bsc_quadruple:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc \
                    $(Q32) PWD=$(PWD)/bsc )
bsc_single_64:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc \
                    $(S64) PWD=$(PWD)/bsc )
bsc_double_64:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc \
                    $(D64) PWD=$(PWD)/bsc )
bsc_quadruple_64:
	( cd bsc ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) bsc \
                    $(Q64) PWD=$(PWD)/bsc )

#  ---
#  bgo
#  ---

bgo_cutest: bgo_cutest_$(PRECIS)

bgo_cutest_single:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo_cutest $(S32) PWD=$(PWD)/bgo )
bgo_cutest_double:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo_cutest $(D32) PWD=$(PWD)/bgo )
bgo_cutest_quadruple:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo_cutest $(Q32) PWD=$(PWD)/bgo )
bgo_cutest_single_64:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo_cutest $(S64) PWD=$(PWD)/bgo )
bgo_cutest_double_64:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo_cutest $(D64) PWD=$(PWD)/bgo )
bgo_cutest_quadruple_64:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo_cutest $(Q64) PWD=$(PWD)/bgo )

bgo: bgo_$(PRECIS)

bgo_single:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo $(S32) PWD=$(PWD)/bgo )
bgo_double:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo $(D32) PWD=$(PWD)/bgo )
bgo_quadruple:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo $(Q32) PWD=$(PWD)/bgo )
bgo_single_64:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo $(S64) PWD=$(PWD)/bgo )
bgo_double_64:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo $(D64) PWD=$(PWD)/bgo )
bgo_quadruple_64:
	( cd bgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            bgo $(Q64) PWD=$(PWD)/bgo )

#  ---
#  dgo
#  ---

dgo_cutest: dgo_cutest_$(PRECIS)

dgo_cutest_single:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo_cutest $(S32) PWD=$(PWD)/dgo )
dgo_cutest_double:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo_cutest $(D32) PWD=$(PWD)/dgo )
dgo_cutest_quadruple:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo_cutest $(Q32) PWD=$(PWD)/dgo )
dgo_cutest_single_64:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo_cutest $(S64) PWD=$(PWD)/dgo )
dgo_cutest_double_64:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo_cutest $(D64) PWD=$(PWD)/dgo )
dgo_cutest_quadruple_64:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo_cutest $(Q64) PWD=$(PWD)/dgo )

dgo: dgo_$(PRECIS)

dgo_single:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo $(S32) PWD=$(PWD)/dgo )
dgo_double:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo $(D32) PWD=$(PWD)/dgo )
dgo_quadruple:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo $(Q32) PWD=$(PWD)/dgo )
dgo_single_64:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo $(S64) PWD=$(PWD)/dgo )
dgo_double_64:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo $(D64) PWD=$(PWD)/dgo )
dgo_quadruple_64:
	( cd dgo ; $(MAKE) -f $(GALAHAD)/makefiles/$(VERSION) \
            dgo $(Q64) PWD=$(PWD)/dgo )

#  create shared libraries

create_shared:
	cd $(OBJ); CC=$(CC) FORTRAN=$(FORTRAN) OPTIMIZATION=$(OPTIMIZATION) \
                   SHARED=$(SHARED) DLEXT=$(DLEXT) LOADALL=$(LOADALL) \
                   LOADNONE=$(LOADNONE) \
                   $(BINSHELL) $(GALAHAD)/bin/create_shared

create_one_shared:
	cd $(OBJ); CC=$(CC) FORTRAN=$(FORTRAN) OPTIMIZATION=$(OPTIMIZATION) \
                   SHARED=$(SHARED) DLEXT=$(DLEXT) LOADALL=$(LOADALL) \
                   LOADNONE=$(LOADNONE) NOUNDEFINED=$(NOUNDEFINED)  \
                   $(BINSHELL) $(GALAHAD)/bin/create_one_shared

build_one_shared:
	cd $(OBJ); CC=$(CC) FORTRAN=$(FORTRAN) OPTIMIZATION=$(OPTIMIZATION) \
                   SHARED=$(SHARED) DLEXT=$(DLEXT) AR=$(AR) \
                   $(BINSHELL) $(GALAHAD)/bin/build_one_shared

build_julia_shared:
	cd $(OBJ); $(FORTRAN) $(OPTIMIZATION) $(SHARED) \
          -o shared/libgalahad_julia.$(DLEXT) \
          $(LOADALL) libgalahad_c.a $(LOADNONE) -L$(OBJ) \
          -lgalahad -l_hsl_c $(HSL) \
          $(MKL_PARDISO) $(PARDISO) $(WSMP) $(METIS4ND) $(METIS5ND) \
          $(PASTIX) $(MUMPS) $(MPI) $(UMFPACK) $(LAPACK) $(BLAS) $(MOMP) \
          $(NOUNDEFINED)

#  book keeping

clean:
	@printf ' %-9s\t\t' "Cleaning"
	$(RM) $(OBJ)/*
	@printf '[ OK ]\n'

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