https://github.com/janverschelde/PHCpack
Raw File
Tip revision: 07e6c4e3b874a571748aa86dfb4ee0ec5dd7c714 authored by Jan Verschelde on 31 October 2014, 23:51:27 UTC
updated documentation of PHCpy for version 0.2.4
Tip revision: 07e6c4e
makefile_mac
# This makefile starts off with the general directory structure
# of the library of PHCpack, then comes the MPI set up, followed
# by a listing of all the targets, grouped by library.

# This makefile is specific for Mac OS X, mainly because of the
# Python bindings and the use of MPI.

PYTHON=/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
MPI_HOME=/usr/local

PHCLib=../Lib
PHCAda=../Ada
MPILib=../MPI
BIN=../bin
INCLULIBS=-I$(PHCAda)/System -I$(PHCAda)/System/Unix_Timer \
 -I$(PHCAda)/Math_Lib/Numbers -I$(PHCAda)/Math_Lib/QD \
 -I$(PHCAda)/Math_Lib/Vectors -I$(PHCAda)/Math_Lib/Matrices \
 -I$(PHCAda)/Math_Lib/Divisors -I$(PHCAda)/Math_Lib/Reduction \
 -I$(PHCAda)/Math_Lib/Polynomials -I$(PHCAda)/Math_Lib/Functions \
 -I$(PHCAda)/Math_Lib/Supports \
 -I$(PHCAda)/Deformations/Solutions -I$(PHCAda)/Deformations/Homotopy \
 -I$(PHCAda)/Deformations/Newton -I$(PHCAda)/Deformations/Curves \
 -I$(PHCAda)/Deformations/End_Games -I$(PHCAda)/Deformations/Sweep \
 -I$(PHCAda)/Deformations/Trackers -I$(PHCAda)/Deformations/Continuation \
 -I$(PHCAda)/Root_Counts/Product -I$(PHCAda)/Root_Counts/Binomials \
 -I$(PHCAda)/Root_Counts/Implift -I$(PHCAda)/Root_Counts/Stalift \
 -I$(PHCAda)/Root_Counts/Dynlift -I$(PHCAda)/Root_Counts/Symmetry \
 -I$(PHCAda)/Root_Counts/MixedVol -I$(PHCAda)/Root_Counts/Puiseux \
 -I$(PHCAda)/Schubert/SAGBI -I$(PHCAda)/Schubert/Pieri \
 -I$(PHCAda)/Schubert/Induction \
 -I$(PHCAda)/Components/Samplers -I$(PHCAda)/Components/Interpolators \
 -I$(PHCAda)/Components/Factorization -I$(PHCAda)/Components/Decomposition \
 -I$(PHCAda)/Components/Solver -I$(PHCAda)/Components/Tropical \
 -I$(PHCAda)/CtoPHC/Funky -I$(PHCAda)/CtoPHC/State -I$(MPILib) \
 -I$(PHCAda)/PHCtoC -I$(PHCAda)/Tasking -I$(PHCAda)/Main
# flags with full optimization
GNATOPTFLAGS=-gnatv -O3 -gnatp -gnatf --GNATBIND="gnatbind -static"
# flag with gnat95 restriction for CtoPHC 
GNATOPT95FLAGS=-gnat95 -gnatv -O3 -gnatp -gnatf --GNATBIND="gnatbind -static"
# flags to turn on all warnings and validity checks
# GNATOPTFLAGS=-gnatv -gnatwa -gnatVa
# GNATNOPFLAGS=-gnatv -gnatwa -gnatVa
# GNATFLAGS=-gnatv --GNATBIND="gnatbind -static"

COFLAGS = -O2

# the main executable 

phc: lib.a feedback.o get_clock.o get_clocks_per_sec.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) pieri_solver.adb
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) dispatch.adb
	gnatmake -o $(BIN)/phc $(INCLULIBS) $(GNATOPTFLAGS) dispatch.adb \
                 -largs lib.a pieri_solver.o feedback.o \
                        get_clock.o get_clocks_per_sec.o -lm

# Very likely the value for MPIR_HOME needs adjusting :

MCC = /usr/bin/gcc

CC          = $(MPI_HOME)/bin/mpicc
CLINKER     = $(CC)
CCC         = $(MPI_HOME)/bin/mpiCC
CCLINKER    = $(CCC)

# Test program to see if compiler works, "hello world" :

hello:
	gnatmake -o $(BIN)/hello $(INCLULIBS) $(GNATOPTFLAGS) hello.adb

# Test programs for the System library :

ts_time:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_time.adb -o $(BIN)/ts_time

ts_clock:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_clock.adb -o $(BIN)/ts_clock

ts_stamps:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_stamps.adb -o $(BIN)/ts_stamps

ts_timer:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_timer.adb -o $(BIN)/ts_timer

get_clock.o:
	gcc -c $(PHCAda)/System/Basic_Timer/get_clock.c

get_clocks_per_sec.o:
	gcc -c $(PHCAda)/System/Basic_Timer/get_clocks_per_sec.c

ts_ctimer: get_clock.o get_clocks_per_sec.o
	gnatmake -o $(BIN)/ts_ctimer $(INCLULIBS) ts_ctimer.adb \
                 -largs get_clock.o get_clocks_per_sec.o

ts_wintimer: get_clock.o get_clocks_per_sec.o
	gnatmake -o $(BIN)/ts_wintimer $(INCLULIBS) ts_wintimer.adb \
                 -largs get_clock.o get_clocks_per_sec.o

ts_syscall:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_syscall.adb \
                 -o $(BIN)/ts_syscall

ts_mach:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mach.adb -o $(BIN)/ts_mach

ts_cmdline:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cmdline.adb \
                 -o $(BIN)/ts_cmdline

ts_byemess:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_byemess.adb \
                 -o $(BIN)/ts_byemess

ts_strsplit:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_strsplit.adb \
                 -o $(BIN)/ts_strsplit

ts_commuser:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_commuser.adb \
                 -o $(BIN)/ts_commuser

ts_filescan:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_filescan.adb \
                 -o $(BIN)/ts_filescan

ts_striscan:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_striscan.adb \
                 -o $(BIN)/ts_striscan

ts_threads:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_threads.adb \
                 -o $(BIN)/ts_threads

# Test programs for the library Math_Lib/Numbers :

ts_strnum:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_strnum.adb -o $(BIN)/ts_strnum

ts_printf:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_printf.adb -o $(BIN)/ts_printf

ts_intnum:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intnum.adb -o $(BIN)/ts_intnum

ts_natnum:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_natnum.adb -o $(BIN)/ts_natnum

ts_natdiv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_natdiv.adb -o $(BIN)/ts_natdiv

ts_longflt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_longflt.adb \
                 -o $(BIN)/ts_longflt

ts_fltnum:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fltnum.adb -o $(BIN)/ts_fltnum

ts_cmpnum:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cmpnum.adb -o $(BIN)/ts_cmpnum

ts_plrexp:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_plrexp.adb -o $(BIN)/ts_plrexp

ts_random:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_random.adb -o $(BIN)/ts_random

ts_extran:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_extran.adb -o $(BIN)/ts_extran

ts_matfun:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_matfun.adb -o $(BIN)/ts_matfun

ts_intval:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intval.adb -o $(BIN)/ts_intval

ts_mpcst:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mpcst.adb -o $(BIN)/ts_mpcst

ts_numbio:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_numbio.adb -o $(BIN)/ts_numbio

# Test programs for QD :

ts_dbldbl:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_dbldbl.adb -o $(BIN)/ts_dbldbl

ts_qddbl:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qddbl.adb -o $(BIN)/ts_qddbl

ts_ddcmplx:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddcmplx.adb \
                 -o $(BIN)/ts_ddcmplx

ts_qdcmplx:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdcmplx.adb \
                 -o $(BIN)/ts_qdcmplx

ts_mpddcv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mpddcv.adb -o $(BIN)/ts_mpddcv

ts_mpqdcv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mpqdcv.adb -o $(BIN)/ts_mpqdcv

ts_ddfun:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddfun.adb -o $(BIN)/ts_ddfun

ts_qdfun:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdfun.adb -o $(BIN)/ts_qdfun

ts_cmpexp:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cmpexp.adb -o $(BIN)/ts_cmpexp

# Test programs for Math_Lib/Vectors :

ts_natvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_natvec.adb -o $(BIN)/ts_natvec

ts_intvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intvec.adb -o $(BIN)/ts_intvec

ts_fltvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fltvec.adb -o $(BIN)/ts_fltvec

ts_cmpvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cmpvec.adb -o $(BIN)/ts_cmpvec

ts_ddvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddvec.adb -o $(BIN)/ts_ddvec

ts_qdvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdvec.adb -o $(BIN)/ts_qdvec

ts_nesvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_nesvec.adb -o $(BIN)/ts_nesvec

# Test programs for Math_Lib/Matrices :

ts_natmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_natmat.adb -o $(BIN)/ts_natmat

ts_intmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intmat.adb -o $(BIN)/ts_intmat

ts_fltmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fltmat.adb -o $(BIN)/ts_fltmat

ts_fltdls:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fltdls.adb -o $(BIN)/ts_fltdls

ts_cmpmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cmpmat.adb -o $(BIN)/ts_cmpmat

ts_ddmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddmat.adb -o $(BIN)/ts_ddmat

ts_qdmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdmat.adb -o $(BIN)/ts_qdmat

# Test programs for Math_Lib/Divisors :

ts_gcd:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_gcd.adb -o $(BIN)/ts_gcd

ts_intlina:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intlina.adb \
              -o $(BIN)/ts_intlina

ts_smith:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_smith.adb -o $(BIN)/ts_smith

ts_intinv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intinv.adb -o $(BIN)/ts_intinv

ts_circuit:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_circuit.adb \
              -o $(BIN)/ts_circuit

# Test programs for Math_Lib/Reduction :

ts_fltlu:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fltlu.adb -o $(BIN)/ts_fltlu

ts_cmplu:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cmplu.adb -o $(BIN)/ts_cmplu

ts_ddlu:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddlu.adb -o $(BIN)/ts_ddlu

ts_qdlu:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdlu.adb -o $(BIN)/ts_qdlu

ts_qrd:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qrd.adb -o $(BIN)/ts_qrd

ts_svd:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_svd.adb -o $(BIN)/ts_svd

ts_rowred:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rowred.adb -o $(BIN)/ts_rowred

ts_eigval:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_eigval.adb -o $(BIN)/ts_eigval

ts_mgs:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mgs.adb -o $(BIN)/ts_mgs

ts_mgsrnk:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mgsrnk.adb -o $(BIN)/ts_mgsrnk

ts_backsubs:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_backsubs.adb \
              -o $(BIN)/ts_backsubs

ts_perflu:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_perflu.adb -o $(BIN)/ts_perflu

# Test programs for Math_Lib/Polynomials :

ts_poly:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_poly.adb -o $(BIN)/ts_poly

ts_laurpoly:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_laurpoly.adb \
                 -o $(BIN)/ts_laurpoly

ts_laurlist:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_laurlist.adb \
                 -o $(BIN)/ts_laurlist

ts_rpol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rpol.adb -o $(BIN)/ts_rpol

ts_ddpol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddpol.adb -o $(BIN)/ts_ddpol

ts_qdpol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdpol.adb -o $(BIN)/ts_qdpol

ts_polmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_polmat.adb -o $(BIN)/ts_polmat

ts_jaco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_jaco.adb -o $(BIN)/ts_jaco

ts_parse:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_parse.adb -o $(BIN)/ts_parse

ts_subs:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_subs -o $(BIN)/ts_subs

ts_tabform:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_tabform -o $(BIN)/ts_tabform

ts_randpoly:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_randpoly -o $(BIN)/ts_randpoly

ts_str2pol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_str2pol -o $(BIN)/ts_str2pol

# Test programs for Math_Lib/Functions :

ts_evaline:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_evaline.adb \
                 -o $(BIN)/ts_evaline

ts_evalpoly:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_evalpoly.adb \
                 -o $(BIN)/ts_evalpoly

ts_evalform:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_evalform.adb \
                 -o $(BIN)/ts_evalform

ts_lineva:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_lineva.adb -o $(BIN)/ts_lineva

ts_polyflat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_polyflat.adb \
                 -o $(BIN)/ts_polyflat
ts_perfeval:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_perfeval.adb \
                 -o $(BIN)/ts_perfeval

ts_expvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_expvec.adb -o $(BIN)/ts_expvec

ts_cffsup:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cffsup -o $(BIN)/ts_cffsup

ts_speel:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_speel -o $(BIN)/ts_speel

ts_speelsys:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_speelsys.adb \
                 -o $(BIN)/ts_speelsys

ts_cycfun:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cycfun.adb -o $(BIN)/ts_cycfun

# Test programs for Math_Lib/Supports :

ts_basex:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_basex.adb -o $(BIN)/ts_basex

ts_feasi:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_feasi.adb -o $(BIN)/ts_feasi

ts_enurs:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_enurs.adb -o $(BIN)/ts_enurs

ts_diclp:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_diclp.adb -o $(BIN)/ts_diclp

ts_givrot:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_givrot.adb -o $(BIN)/ts_givrot

ts_lstvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_lstvec.adb -o $(BIN)/ts_lstvec

ts_fvector:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fvector.adb \
                 -o $(BIN)/ts_fvector

ts_giftwrap:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_giftwrap.adb \
                 -o $(BIN)/ts_giftwrap

ts_giftwcon:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_giftwcon.adb \
                 -o $(BIN)/ts_giftwcon

# Test programs for the Deformations/Solutions library :

ts_solfilt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_solfilt.adb \
                 -o $(BIN)/ts_solfilt

ts_sols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_sols.adb -o $(BIN)/ts_sols

ts_ddsols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddsols.adb -o $(BIN)/ts_ddsols

ts_qdsols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdsols.adb -o $(BIN)/ts_qdsols

ts_solar:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_solar.adb -o $(BIN)/ts_solar

ts_mapsols_io:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mapsols_io.adb \
                 -o $(BIN)/ts_mapsols_io

ts_dicsols_io:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_dicsols_io.adb \
                 -o $(BIN)/ts_dicsols_io

ts_grepsols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_grepsols.adb \
                 -o $(BIN)/ts_grepsols

mergesols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) mergesols.adb -o $(BIN)/mergesols

ts_contab:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_contab.adb -o $(BIN)/ts_contab

ts_selsol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_selsol.adb -o $(BIN)/ts_selsol

ts_solstr:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_solstr.adb -o $(BIN)/ts_solstr

ts_quad:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_quad.adb -o $(BIN)/ts_quad

ts_soldrop:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_soldrop.adb \
              -o $(BIN)/ts_soldrop

ts_ptlists:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ptlists.adb \
              -o $(BIN)/ts_ptlists

# Test programs for the Deformations/Homotopy library :

ts_drivscal:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivscal -o $(BIN)/ts_drivscal

ts_scal:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_scal.adb -o $(BIN)/ts_scal

ts_drivred:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivred.adb \
                 -o $(BIN)/ts_drivred

ts_homotopy:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_homotopy.adb \
                 -o $(BIN)/ts_homotopy

ts_homline:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_homline.adb \
                 -o $(BIN)/ts_homline

ts_linsol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_linsol.adb -o $(BIN)/ts_linsol

ts_qdhom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdhom.adb -o $(BIN)/ts_qdhom

ts_poldrop:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_poldrop.adb \
              -o $(BIN)/ts_poldrop

ts_evalhomt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_evalhomt.adb \
              -o $(BIN)/ts_evalhomt

# Test programs for the Deformations/Newton library :

ts_mreseva:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mreseva.adb \
                 -o $(BIN)/ts_mreseva

ts_rootrefi:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rootrefi.adb \
                 -o $(BIN)/ts_rootrefi

ts_newton:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_newton.adb -o $(BIN)/ts_newton

ts_realnewt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_realnewt.adb \
                 -o $(BIN)/ts_realnewt

ts_numdif:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_numdif.adb -o $(BIN)/ts_numdif

ts_jactrees:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_jactrees.adb \
                 -o $(BIN)/ts_jactrees

ts_deftrees:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_deftrees.adb \
                 -o $(BIN)/ts_deftrees

ts_deflate:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_deflate.adb \
                 -o $(BIN)/ts_deflate

ts_straight:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_straight.adb \
                 -o $(BIN)/ts_straight

ts_stair:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_stair.adb -o $(BIN)/ts_stair

ts_defmat:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_defmat.adb -o $(BIN)/ts_defmat

ts_multip:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_multip.adb -o $(BIN)/ts_multip

ts_muldef:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_muldef.adb -o $(BIN)/ts_muldef

ts_deflop:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_deflop.adb -o $(BIN)/ts_deflop

ts_ddnewt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddnewt.adb -o $(BIN)/ts_ddnewt

ts_qdnewt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_qdnewt.adb -o $(BIN)/ts_qdnewt

# Test programs for the Deformations/Curves library :

ts_durker:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_durker.adb \
                 -o $(BIN)/ts_durker

ts_extrapol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_extrapol.adb \
                 -o $(BIN)/ts_extrapol

ts_extrapts:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_extrapts.adb \
                 -o $(BIN)/ts_extrapts

# Test programs for the Deformations/End_Games library :

ts_vlprs:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_vlprs.adb -o $(BIN)/ts_vlprs

postpoco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) postpoco.adb -o $(BIN)/postpoco

valipoco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) valipoco.adb -o $(BIN)/valipoco

# Test programs for the Deformations/Sweep library :

ts_parcon:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_parcon.adb -o $(BIN)/ts_parcon

ts_realcont:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_realcont.adb \
                 -o $(BIN)/ts_realcont

# Test programs for the Deformations/Trackers library :

ts_preco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_preco.adb -o $(BIN)/ts_preco

ts_correct:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_correct.adb \
                 -o $(BIN)/ts_correct

ts_path:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_path.adb -o $(BIN)/ts_path

ts_track:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_track.adb -o $(BIN)/ts_track

ts_nxtsol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_nxtsol.adb -o $(BIN)/ts_nxtsol

# Test programs for the Deformations/Continuation library :

ts_pactun:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_pactun.adb -o $(BIN)/ts_pactun

ts_autotune:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_autotune.adb \
              -o $(BIN)/ts_autotune

ts_poco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_poco.adb -o $(BIN)/ts_poco

ts_exp:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_exp.adb -o $(BIN)/ts_exp

mypoco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) mypoco.adb -o $(BIN)/mypoco

# Test programs for the Root_Counts/Product homotopies library :

ts_startsys:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_startsys.adb \
                 -o $(BIN)/ts_startsys

ts_permanent:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_permanent \
                 -o $(BIN)/ts_permanent

ts_prodsys:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_prodsys.adb \
                 -o $(BIN)/ts_prodsys

ts_strpart:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_strpart.adb \
                 -o $(BIN)/ts_strpart

ts_drivmhom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivmhom.adb \
                 -o $(BIN)/ts_drivmhom

ts_drivmuho:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivmuho.adb \
                 -o $(BIN)/ts_drivmuho

ts_drivss:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivss.adb -o $(BIN)/ts_drivss

ts_strset:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_strset.adb -o $(BIN)/ts_strset

ts_permstar:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_permstar.adb \
              -o $(BIN)/ts_permstar

# Test programs in the Root_Counts/Binomials library :

ts_binsys:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_binsys.adb -o $(BIN)/ts_binsys

ts_kernel:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_kernel.adb -o $(BIN)/ts_kernel

ts_binset:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_binset.adb -o $(BIN)/ts_binset

ts_incols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_incols.adb -o $(BIN)/ts_incols

ts_monmap:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_monmap.adb -o $(BIN)/ts_monmap

ts_binsol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_binsol.adb -o $(BIN)/ts_binsol

ts_affpol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_affpol.adb -o $(BIN)/ts_affpol

ts_simsys:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_simsys.adb -o $(BIN)/ts_simsys

ts_simposol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_simposol.adb \
                 -o $(BIN)/ts_simposol

ts_powtrans:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_powtrans.adb \
                 -o $(BIN)/ts_powtrans

ts_binpser:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_binpser.adb \
                 -o $(BIN)/ts_binpser

ts_cspsol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cspsol.adb -o $(BIN)/ts_cspsol

ts_unimod:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_unimod.adb -o $(BIN)/ts_unimod

# Test programs for the Root_Counts/Implift library :

ts_supports:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_supports.adb \
                 -o $(BIN)/ts_supports

ts_supspan:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_supspan.adb \
                 -o $(BIN)/ts_supspan

ts_transfo:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_transfo.adb \
                 -o $(BIN)/ts_transfo

ts_drivpts:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivpts.adb \
                 -o $(BIN)/ts_drivpts

ts_impvol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_impvol.adb \
                 -o $(BIN)/ts_impvol

ts_drivimpl:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivimpl.adb \
                 -o $(BIN)/ts_drivimpl

# Test programs for the Root_Counts/Stalift library :

ts_rndcff:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rndcff.adb -o $(BIN)/ts_rndcff

ts_supsub:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_supsub.adb -o $(BIN)/ts_supsub

ts_conint:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_conint.adb -o $(BIN)/ts_conint

ts_mixture:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mixture.adb \
                 -o $(BIN)/ts_mixture

ts_mixvol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mixvol.adb -o $(BIN)/ts_mixvol

ts_mixlab:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mixlab.adb -o $(BIN)/ts_mixlab

ts_jpmix:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_jpmix.adb -o $(BIN)/ts_jpmix

ts_drivcrit:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivcrit.adb \
                 -o $(BIN)/ts_drivcrit

ts_drivstal:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivstal.adb \
                 -o $(BIN)/ts_drivstal

ts_mvasta:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mvasta.adb -o $(BIN)/ts_mvasta

ts_exptrack:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_exptrack.adb \
                 -o $(BIN)/ts_exptrack

ts_stable:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_stable.adb -o $(BIN)/ts_stable

ts_balance:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_balance.adb \
              -o $(BIN)/ts_balance

# Test programs for the Root_Counts/Dynlift library :

ts_dyntri:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_dyntri.adb -o $(BIN)/ts_dyntri

ts_drivmink:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivmink.adb \
                 -o $(BIN)/ts_drivmink

ts_drivdynl:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivdynl.adb \
                 -o $(BIN)/ts_drivdynl

# Test programs for the Root_Counts/Symmetry library :

ts_group:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_group.adb -o $(BIN)/ts_group

ts_equpol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_equpol.adb -o $(BIN)/ts_equpol

ts_drivsss:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivsss.adb \
                 -o $(BIN)/ts_drivsss

# Test programs for the Root_Counts/MixedVol library :

convsub:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) convsub.adb -o $(BIN)/convsub

ts_mv2c:
	gcc -c $(PHCAda)/Root_Counts/MixedVol/mv.c
	gcc -c $(PHCAda)/Root_Counts/MixedVol/cell_stack.c
	gcc -c $(PHCAda)/Root_Counts/MixedVol/form_lp.c 
	gcc -c $(PHCAda)/Root_Counts/MixedVol/index_tree_lp.c 
	gcc -c $(PHCAda)/Root_Counts/MixedVol/zero_index_tree.c
	gcc -c $(PHCAda)/Root_Counts/MixedVol/one_level_lp.c
	gcc -c $(PHCAda)/Root_Counts/MixedVol/mixed_volume.c
	gcc -c $(PHCAda)/Root_Counts/MixedVol/relation_table.c
	gcc -c $(PHCAda)/Root_Counts/MixedVol/prepare_for_mv.c
	gnatmake -o $(BIN)/ts_mv2c $(INCLULIBS) $(GNATOPTFLAGS) ts_mv2c.adb \
                 -largs mv.o cell_stack.o form_lp.o index_tree_lp.o \
                        zero_index_tree.o one_level_lp.o mixed_volume.o \
                        relation_table.o prepare_for_mv.o -lm

ts_mv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mv.adb -o $(BIN)/ts_mv 

ts_mva:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) ts_mva.adb -o $(BIN)/ts_mva

# Test programs for the Root_Counts/Puiseux library :

ts_degcurve:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_degcurve.adb \
                 -o $(BIN)/ts_degcurve

# Test programs for SAGBI library in numerical Schubert calculus :

ts_subsets:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_subsets.adb \
                 -o $(BIN)/ts_subsets

ts_brackets:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_brackets.adb \
                 -o $(BIN)/ts_brackets

ts_brackmons:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_brackmons.adb \
                 -o $(BIN)/ts_brackmons

ts_brackpols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_brackpols.adb \
                 -o $(BIN)/ts_brackpols

ts_straighten:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_straighten.adb \
                 -o $(BIN)/ts_straighten

ts_expand:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_expand.adb -o $(BIN)/ts_expand

ts_local:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_local.adb -o $(BIN)/ts_local

ts_mathom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mathom.adb -o $(BIN)/ts_mathom

ts_cheby:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cheby.adb -o $(BIN)/ts_cheby

ts_shapiro:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_shapiro.adb \
                 -o $(BIN)/ts_shapiro

ts_eremenko:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_eremenko.adb \
                 -o $(BIN)/ts_eremenko

ts_detrock:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_detrock.adb \
                 -o $(BIN)/ts_detrock

ts_sagbi:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_sagbi.adb -o $(BIN)/ts_sagbi

ts_topos:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_topos.adb -o $(BIN)/ts_topos

# Test programs for Pieri library in numerical Schubert calculus :

ts_org_pieri:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_org_pieri.adb \
                 -o $(BIN)/ts_org_pieri

ts_canocurv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_canocurv.adb \
                 -o $(BIN)/ts_canocurv

ts_matinv:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_matinv.adb -o $(BIN)/ts_matinv

ts_pieri:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_pieri.adb -o $(BIN)/ts_pieri

ts_posets:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_posets.adb -o $(BIN)/ts_posets

ts_detsys:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_detsys.adb -o $(BIN)/ts_detsys

ts_defpos:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_defpos.adb -o $(BIN)/ts_defpos

ts_piroco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_piroco.adb -o $(BIN)/ts_piroco

# Test programs for Induction library in numerical Schubert calculus :

ts_checkers:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_checkers.adb \
	         -o $(BIN)/ts_checkers

ts_induce:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_induce.adb \
	         -o $(BIN)/ts_induce

ts_flagcond:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_flagcond.adb \
	         -o $(BIN)/ts_flagcond

# Test programs for the Components/Samplers library :

ts_roots:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_roots.adb -o $(BIN)/ts_roots

ts_hypsam:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_hypsam.adb -o $(BIN)/ts_hypsam

ts_hyprts:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_hyprts.adb -o $(BIN)/ts_hyprts

ts_hyppts:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_hyppts.adb -o $(BIN)/ts_hyppts

ts_unisam:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_unisam.adb -o $(BIN)/ts_unisam

ts_planes:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_planes.adb -o $(BIN)/ts_planes

ts_flag:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_flag.adb -o $(BIN)/ts_flag

ts_coords:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_coords.adb -o $(BIN)/ts_coords

ts_itrack:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_itrack.adb -o $(BIN)/ts_itrack

ts_ispan:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ispan.adb -o $(BIN)/ts_ispan

ts_inewt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_inewt.adb -o $(BIN)/ts_inewt

ts_iddnewt:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_iddnewt.adb \
              -o $(BIN)/ts_iddnewt

ts_iwset:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_iwset.adb -o $(BIN)/ts_iwset

ts_ilocal:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ilocal.adb -o $(BIN)/ts_ilocal

ts_sampar:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_sampar.adb -o $(BIN)/ts_sampar

ts_sample:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_sample.adb -o $(BIN)/ts_sample

ts_mulsam:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mulsam.adb -o $(BIN)/ts_mulsam

ts_mulhom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mulhom.adb -o $(BIN)/ts_mulhom

ts_endgm:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_endgm.adb -o $(BIN)/ts_endgm

ts_locdim:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_locdim.adb -o $(BIN)/ts_locdim

ts_ddqdsam:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ddqdsam.adb \
              -o $(BIN)/ts_ddqdsam

# Test programs for the Components/Interpolators libary :

ts_stpolin:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_stpolin.adb \
                 -o $(BIN)/ts_stpolin

ts_mupolin:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mupolin.adb \
                 -o $(BIN)/ts_mupolin

ts_adpolin:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_adpolin.adb \
                 -o $(BIN)/ts_adpolin

ts_project:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_project.adb \
                 -o $(BIN)/ts_project

ts_span:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_span.adb -o $(BIN)/ts_span

ts_filter:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_filter.adb -o $(BIN)/ts_filter

ts_nbterms:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_nbterms.adb \
                 -o $(BIN)/ts_nbterms

ts_divdif:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_divdif.adb -o $(BIN)/ts_divdif

ts_dvdexp:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_dvdexp.adb -o $(BIN)/ts_dvdexp

ts_newint:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_newint.adb -o $(BIN)/ts_newint

ts_powtrc:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_powtrc.adb -o $(BIN)/ts_powtrc

ts_traces:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_traces.adb -o $(BIN)/ts_traces

ts_trapol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_trapol.adb -o $(BIN)/ts_trapol

ts_rewrite:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rewrite.adb \
                 -o $(BIN)/ts_rewrite

ts_elim:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_elim.adb -o $(BIN)/ts_elim

ts_embed:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_embed.adb -o $(BIN)/ts_embed

ts_square:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_square.adb -o $(BIN)/ts_square

ts_squemb:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_squemb.adb -o $(BIN)/ts_squemb

# Test programs in the Components/Factorization library :

ts_rwpoly:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rwpoly.adb -o $(BIN)/ts_rwpoly 

ts_irco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_irco.adb -o $(BIN)/ts_irco

ts_combfac:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_combfac.adb \
                 -o $(BIN)/ts_combfac

ts_newfac:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_newfac.adb -o $(BIN)/ts_newfac

ts_factor:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_factor.adb -o $(BIN)/ts_factor

ts_ifactor:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ifactor.adb \
                 -o $(BIN)/ts_ifactor

ts_hypfac:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_hypfac.adb -o $(BIN)/ts_hypfac

ts_monfac:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_monfac.adb -o $(BIN)/ts_monfac

# Test programs in the Components/Decomposition library :

ts_irdeco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_irdeco.adb -o $(BIN)/ts_irdeco

ts_breakup:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_breakup.adb \
                 -o $(BIN)/ts_breakup

ts_cascade:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cascade.adb \
                 -o $(BIN)/ts_cascade

ts_intcas:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intcas.adb -o $(BIN)/ts_intcas

ts_intdia:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intdia.adb -o $(BIN)/ts_intdia

ts_reorder:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_reorder.adb \
                 -o $(BIN)/ts_reorder

ts_filfac:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_filfac.adb -o $(BIN)/ts_filfac

ts_squeeze:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_squeeze.adb \
                 -o $(BIN)/ts_squeeze

ts_dimred:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_dimred.adb -o $(BIN)/ts_dimred 

ts_mbthom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mbthom.adb -o $(BIN)/ts_mbthom

ts_diahom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_diahom.adb -o $(BIN)/ts_diahom

ts_fillit:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_fillit.adb -o $(BIN)/ts_fillit

ts_jmpdia:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_jmpdia.adb -o $(BIN)/ts_jmpdia

# Test programs in the Components/Solver library :

ts_hypwit:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_hypwit.adb -o $(BIN)/ts_hypwit

ts_solver:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_solver.adb -o $(BIN)/ts_solver

ts_rdisol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_rdisol.adb -o $(BIN)/ts_rdisol

testnine:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) testnine.adb -o $(BIN)/testnine

# Test programs in the Components/Tropical library :

ts_tropawit:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_tropawit.adb \
              -o $(BIN)/ts_tropawit

ts_tropisms:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_tropisms.adb \
              -o $(BIN)/ts_tropisms

ts_inform:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_inform.adb -o $(BIN)/ts_inform

ts_comfac:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_comfac.adb -o $(BIN)/ts_comfac

ts_intorto:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_intorto.adb \
              -o $(BIN)/ts_intorto

ts_convhull:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_convhull.adb \
              -o $(BIN)/ts_convhull

ts_ptlstr:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_ptlstr.adb \
              -o $(BIN)/ts_ptlstr

ts_sumtope:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_sumtope.adb \
              -o $(BIN)/ts_sumtope

ts_pretrop:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_pretrop.adb \
              -o $(BIN)/ts_pretrop

# Test programs in the Differentials library :

ts_prolong:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_prolong.adb \
                 -o $(BIN)/ts_prolong

ts_dae:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_dae.adb -o $(BIN)/ts_dae

# test programs for CtoPHC/Funky directory :

ts_arrays:
	gnatmake -o $(BIN)/ts_arrays $(INCLULIBS) $(GNATOPTFLAGS) ts_arrays.adb

pass_poly:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) print_poly.adb
	gcc -c $(PHCAda)/CtoPHC/Funky/pass_poly.c
	gnatbind -n print_poly
	gnatlink -C print_poly pass_poly.o -o $(BIN)/pass_poly

ts_cosup:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cosup.adb -o $(BIN)/ts_cosup

ts_cosupoly:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) cosupoly.adb
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_cosupoly.c
	gnatbind -n cosupoly
	gnatlink -C cosupoly ts_cosupoly.o -o $(BIN)/ts_cosupoly

ts_cosupsys:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) cosupsys.adb
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_cosupsys.c
	gnatbind -n cosupsys
	gnatlink -C cosupsys ts_cosupsys.o -o $(BIN)/ts_cosupsys

cosupoly_to_c.o:
	gcc -c $(PHCAda)/CtoPHC/Funky/cosupoly_to_c.c

cosupsys_to_c.o:
	gcc -c $(PHCAda)/CtoPHC/Funky/cosupsys_to_c.c

ts_cosuptoc: cosupoly_to_c.o cosupsys_to_c.o
	gnatmake -o $(BIN)/ts_cosuptoc $(INCLULIBS) $(GNATOPTFLAGS) \
                  ts_cosuptoc.adb -largs cosupoly_to_c.o cosupsys_to_c.o

ts_getsys:
	gcc -c $(PHCAda)/CtoPHC/Funky/getsys2.c
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_getsys.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) getsys1.adb
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) getsys3.adb
	gnatbind -n getsys1 getsys3
	gnatlink -C getsys3 ts_getsys.o getsys2.o -o $(BIN)/ts_getsys

ts_phc_sys_rw:
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_phc_sys_rw.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) phc_sys_rw.adb
	gnatbind -n phc_sys_rw
	gnatlink -C phc_sys_rw ts_phc_sys_rw.o -o $(BIN)/ts_phc_sys_rw

ts_phc_sol_rw:
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_phc_sol_rw.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) phc_sol_rw.adb
	gnatbind -n phc_sol_rw
	gnatlink -C phc_sol_rw ts_phc_sol_rw.o -o $(BIN)/ts_phc_sol_rw

ts_cpm:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_cpm.adb -o $(BIN)/ts_cpm

ts_pieri_count:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) pieri_count.adb
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_pieri_count.c
	gnatbind -n pieri_count
	gnatlink -C pieri_count ts_pieri_count.o -o $(BIN)/ts_pieri_count

ts_pieri_solver:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) pieri_solver.adb
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_pieri_solver.c
	gcc -c $(PHCAda)/CtoPHC/Funky/pieri_sols.c
	gnatbind -n pieri_solver
	gnatlink -C pieri_solver ts_pieri_solver.o pieri_sols.o \
                 -o $(BIN)/ts_pieri_solver -lm

ts_phc_solver:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) phc_solver.adb
	gcc -c $(PHCAda)/CtoPHC/Funky/ts_phc_solver.c
	gcc -c $(PHCAda)/CtoPHC/Funky/phc_sols.c
	gnatbind -n phc_solver
	gnatlink -C phc_solver ts_phc_solver.o phc_sols.o \
                 -o $(BIN)/ts_phc_solver

ts_csols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_csols.adb -o $(BIN)/ts_csols

# test programs for the CtoPHC/State directory :

standard_solutions_container.o:
	gnatmake $(INCLULIBS) $(GNATOPT95FLAGS) standard_solutions_container.adb

ts_solcon: standard_solutions_container.o
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_solcon.adb -o $(BIN)/ts_solcon

ts_solpool: standard_solutions_container.o
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_solpool.adb \
                 -o $(BIN)/ts_solpool

ts_use_solcon: standard_solutions_container.o
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_solcon.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_solcon.adb
	gnatbind -n use_solcon
	gnatlink -C use_solcon ts_use_solcon.o -o $(BIN)/ts_use_solcon

ts_use_solpool: standard_solutions_container.o
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_solpool.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_solpool.adb
	gnatbind -n use_solpool
	gnatlink -C use_solpool ts_use_solpool.o -o $(BIN)/ts_use_solpool

ts_syscon:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_syscon.adb -o $(BIN)/ts_syscon

ts_syspool:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_syspool.adb \
                 -o $(BIN)/ts_syspool

ts_use_syscon:
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_syscon.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_syscon.adb
	gnatbind -n use_syscon
	gnatlink -C use_syscon ts_use_syscon.o -o $(BIN)/ts_use_syscon

ts_use_syspool:
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_syspool.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_syspool.adb
	gnatbind -n use_syspool
	gnatlink -C use_syspool ts_use_syspool.o -o $(BIN)/ts_use_syspool

ts_c2phc:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) c_to_phcpack.adb
	gcc -c $(PHCAda)/CtoPHC/State/ts_c2phc.c
	gnatbind -n c_to_phcpack
	gnatlink -C c_to_phcpack ts_c2phc.o -o $(BIN)/ts_c2phc

ts_c2str:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCAda)/CtoPHC/State/ts_c2str.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc ts_c2str.o -o $(BIN)/ts_c2str

ts_use_c2phc:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_c2phc.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc ts_use_c2phc.o -o $(BIN)/ts_use_c2phc

ts_pirhom:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_pirhom.adb -o $(BIN)/ts_pirhom

ts_use_c2pieri:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2pieri.adb
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_c2pieri.c
	gnatbind -n use_c2pieri
	gnatlink -C use_c2pieri ts_use_c2pieri.o -o $(BIN)/ts_use_c2pieri

ts_use_c2fac:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2fac.adb
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_c2fac.c
	gnatbind -n use_c2fac
	gnatlink -C use_c2fac ts_use_c2fac.o -o $(BIN)/ts_use_c2fac

ts_celcon:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_celcon.adb -o $(BIN)/ts_celcon

ts_use_celcon:
	gcc -c $(PHCAda)/CtoPHC/State/ts_use_celcon.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_celcon.adb
	gnatbind -n use_celcon
	gnatlink -C use_celcon ts_use_celcon.o -o $(BIN)/ts_use_celcon

ts_unisolve:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_unisolve.adb \
              -o $(BIN)/ts_unisolve

ts_use_giftwrap:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_use_giftwrap.adb \
              -o $(BIN)/ts_use_giftwrap

# files in feedback :

lib.a:$(PHCAda)/../Feedback/*.c $(PHCAda)/../Feedback/*.h
	gcc -c $(PHCAda)/../Feedback/*.c
	ar ruv lib.a    dc_interpolation.o  dcmplx.o       poly_matrix.o\
       append_dcmatrix.o    dc_inverse.o        pieri_sols.o   poly_smith.o\
       c2ada_dc_matrix.o    dc_matrix.o         poly_dcmplx.o  realization.o\
       c2ada_poly_matrix.o  dc_roots.o          poly_gcd.o     ts_feedback.o\
       poly_hermite.o       append_polymatrix.o timer.o
	ranlib lib.a

ts_feedback: lib.a get_clock.o get_clocks_per_sec.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) pieri_solver.adb
	gnatbind -n -C pieri_solver
	gnatlink -C pieri_solver lib.a \
                 -o $(BIN)/ts_feedback  -lm \
                 get_clock.o get_clocks_per_sec.o

feedback.o:
	gcc -c $(PHCAda)/../Feedback/feedback.c

# Test program to test the C interface to GPU acceleration :

ts_cpu2norm_d:
	gcc -c $(PHCAda)/PHCtoC/cpu2norm_d_in_c.c -o cpu2norm_d_in_c.o
	gnatmake $(INCLULIBS) $(GNATFLAGS) ts_cpu2norm_d.adb \
              -o $(BIN)/ts_cpu2norm_d -largs cpu2norm_d_in_c.o -lm

ts_cpu2norm_dd:
	gcc -I $(PHCAda)/Math_Lib/QD \
            -c $(PHCAda)/Math_Lib/QD/double_double.c -o double_double.o
	gcc -I $(PHCAda)/Math_Lib/QD \
            -c $(PHCAda)/PHCtoC/cpu2norm_dd_in_c.c \
            -o cpu2norm_dd_in_c.o
	gnatmake $(INCLULIBS) $(GNATFLAGS) ts_cpu2norm_dd.adb \
              -o $(BIN)/ts_cpu2norm_dd \
              -largs double_double.o cpu2norm_dd_in_c.o -lm

ts_cpu2norm_qd:
	gcc -I $(PHCAda)/Math_Lib/QD \
            -c $(PHCAda)/Math_Lib/QD/double_double.c -o double_double.o
	gcc -I $(PHCAda)/Math_Lib/QD \
            -c $(PHCAda)/Math_Lib/QD/quad_double.c -o quad_double.o
	gcc -I $(PHCAda)/Math_Lib/QD \
            -c $(PHCAda)/PHCtoC/cpu2norm_qd_in_c.c \
            -o cpu2norm_qd_in_c.o
	gnatmake $(INCLULIBS) $(GNATFLAGS) ts_cpu2norm_qd.adb \
              -o $(BIN)/ts_cpu2norm_qd \
              -largs double_double.o quad_double.o cpu2norm_qd_in_c.o -lm

ts_gpu2norm_Cmain:
	g++ -c $(PHCAda)/PHCtoC/callGPUnorm.cpp -o callGPUnorm.o
	gcc $(PHCAda)/PHCtoC/ts_gpu2norm_Cmain.c callGPUnorm.o \
         -o $(BIN)/ts_gpu2norm_Cmain -lm

# Test programs for the Tasking :

ts_mtmatvec:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtmatvec.adb \
                 -o $(BIN)/ts_mtmatvec

ts_mtpolval:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtpolval.adb \
                 -o $(BIN)/ts_mtpolval

ts_mtlinsol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtlinsol.adb \
                 -o $(BIN)/ts_mtlinsol

ts_mtlinsolV0:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtlinsolV0.adb \
                 -o $(BIN)/ts_mtlinsolV0

ts_mtlinsolV1:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtlinsolV1.adb \
                 -o $(BIN)/ts_mtlinsolV1

ts_mtlinsolV2:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtlinsolV2.adb \
                 -o $(BIN)/ts_mtlinsolV2

ts_tasking:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_tasking.adb \
                 -o $(BIN)/ts_tasking

ts_protect:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_protect.adb \
              -o $(BIN)/ts_protect

ts_access:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_access.adb \
              -o $(BIN)/ts_access

ts_mutex:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mutex.adb -o $(BIN)/ts_mutex

ts_jobs:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_jobs.adb -o $(BIN)/ts_jobs

ts_mtsols:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtsols.adb -o $(BIN)/ts_mtsols

ts_mtcont:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtcont.adb -o $(BIN)/ts_mtcont

ts_mtstref:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtstref.adb \
                 -o $(BIN)/ts_mtstref

ts_mtddref:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtddref.adb \
                 -o $(BIN)/ts_mtddref

ts_mtqdref:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtqdref.adb \
                 -o $(BIN)/ts_mtqdref

ts_mtsharp:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtsharp.adb \
                 -o $(BIN)/ts_mtsharp

ts_mtpolco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtpolco.adb \
                 -o $(BIN)/ts_mtpolco

ts_mtsam:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtsam.adb -o $(BIN)/ts_mtsam

ts_mtvol:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtvol.adb -o $(BIN)/ts_mtvol

ts_mtvolcon:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_mtvolcon.adb \
              -o $(BIN)/ts_mtvolcon

ts_mtverify:
	gnatmake $(INCLULIBS) $(GNATFLAGS) ts_mtverify.adb \
              -o $(BIN)/ts_mtverify

# Test programs for the Main interactive drivers :

ts_drivroco:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_drivroco.adb \
              -o $(BIN)/ts_drivroco

use_phc:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_phc.adb -o $(BIN)/use_phc

ts_greet:
	gnatmake $(INCLULIBS) $(GNATOPTFLAGS) ts_greet.adb \
              -o $(BIN)/ts_greet

# Test programs for the Library Lib :

phcpack.o:
	gcc -c $(PHCLib)/phcpack.c

use_c2phc.o:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb

ts_list2str:
	gcc -c $(PHCLib)/lists_and_strings.c
	gcc -c $(PHCLib)/ts_list2str.c
	gcc -o /tmp/ts_list2str lists_and_strings.o ts_list2str.o

lib_read:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/lib_read.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o lib_read.o -o ../bin/lib_read

lib_syscon:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/lib_syscon.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc syscon.o lib_syscon.o -o ../bin/lib_syscon

lib_solcon: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/lib_solcon.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc solcon.o lib_solcon.o -o ../bin/lib_solcon

lib_newton:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/lib_newton.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o syscon.o solcon.o lib_newton.o \
                 -o ../bin/lib_newton

lib_roco: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/product.c
	gcc -c $(PHCLib)/lib_roco.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o syscon.o solcon.o product.o \
                    lib_roco.o -o ../bin/lib_roco

lib_celcon: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/celcon.c
	gcc -c $(PHCLib)/lib_celcon.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o syscon.o solcon.o celcon.o \
                    lib_celcon.o -o ../bin/lib_celcon

lib_conpar:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/lib_conpar.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o lib_conpar.o -o ../bin/lib_conpar

lib_track: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/lib_track.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o witset.o \
                    jump_track.o lib_track.o -o ../bin/lib_track

lib_nxtsol: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(PHCLib)/next_track.c
	gcc -c $(PHCLib)/lib_nxtsol.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o jump_track.o \
                    next_track.o lib_nxtsol.o -o ../bin/lib_nxtsol

lib_poco:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/lib_poco.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o lib_poco.o -o ../bin/lib_poco

lib_factor: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/lib_factor.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o witset.o lib_factor.o \
                 -o ../bin/lib_factor

lib_witset: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/lib_witset.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc syscon.o solcon.o witset.o lib_witset.o \
                 -o ../bin/lib_witset

ts_pieri_tree:
	gcc -c $(PHCLib)/pieri_tree.c $(PHCLib)/ts_pieri_tree.c
	gcc pieri_tree.o ts_pieri_tree.o -o ../bin/ts_pieri_tree

lib_pieri:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2pieri.adb
	gcc -c -O2 $(PHCLib)/lib_pieri.c
	gnatbind -n use_c2pieri
	gnatlink -C use_c2pieri lib_pieri.o -o ../bin/lib_pieri

lib_lrhom:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c -O2 $(PHCLib)/lib_lrhom.c
	gcc -c -O2 $(PHCLib)/schubert.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc schubert.o lib_lrhom.o -o $(BIN)/lib_lrhom

lib_usolve: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/unisolvers.c
	gcc -c $(PHCLib)/lib_usolve.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc syscon.o solcon.o unisolvers.o lib_usolve.o \
                 -o ../bin/lib_usolve -lm

lib_giftwrap:
	gnatmake -c $(INCLULIBS) $(GNATFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/giftwrappers.c
	gcc -c $(PHCLib)/lib_giftwrap.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc giftwrappers.o lib_giftwrap.o \
                 -o ../bin/lib_giftwrap -lm

phc_solve: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/phc_solve.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc syscon.o solcon.o phcpack.o phc_solve.o \
                 -o ../bin/phc_solve

phcpy2c.so: standard_solutions_container.o
	gcc -c -O2 $(PHCLib)/syscon.c
	gcc -c -O2 $(PHCLib)/solcon.c
	gcc -c -O2 $(PHCLib)/product.c
	gcc -c -O2 $(PHCLib)/lists_and_strings.c
	gcc -c -O2 $(PHCLib)/celcon.c
	gcc -c -O2 $(PHCLib)/witset.c
	gcc -c -O2 $(PHCLib)/schubert.c
	gcc -c -O2 $(PHCLib)/unisolvers.c
	gcc -c -O2 $(PHCLib)/giftwrappers.c
	gcc -c -O2 $(PHCLib)/phcpack.c
	gcc -c -O2 $(PHCLib)/mapcon.c
	gcc -c -O2 $(PHCLib)/next_track.c
	$(MCC) -c -I$(PYTHON) -I$(PYTHON)/Include $(PHCLib)/phcpy2c.c
	#gcc -c -I$(PYTHON) -I$(PYTHON)/Include $(PHCLib)/phcpy2c.c
	gnatmake -c -static $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gnatbind -n use_c2phc
	gnatlink -dynamiclib -C use_c2phc phcpy2c.o phcpack.o syscon.o \
            witset.o mapcon.o next_track.o unisolvers.o giftwrappers.o \
            solcon.o product.o lists_and_strings.o celcon.o schubert.o \
                 -o ../Python/PHCpy/phcpy/phcpy2c.so -framework Python

# how to make the executables with MPI:

adatest:
	$(CC) -c $(MPILib)/call_hello.c
	$(CC) -c $(MPILib)/adatest.c
	gnatmake -c $(MPILib)/hello.adb
	gnatbind -n hello
	gnatlink -C hello call_hello.o adatest.o -o ../bin/adatest \
                 --LINK=$(CLINKER)

mpi2sys:
	gcc -c $(MPILib)/mpi2sys.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_syscon.adb
	gnatbind -n use_syscon
	gnatlink -C use_syscon mpi2sys.o -o ../bin/mpi2sys \
                 --LINK=$(CLINKER)

mpi2sol:
	gcc -c $(MPILib)/mpi2sol.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_solcon.adb
	gnatbind -n use_solcon
	gnatlink -C use_solcon mpi2sol.o -o ../bin/mpi2sol \
                 --LINK=$(CLINKER)

mpi2hom:
	gcc -c $(MPILib)/mpi2hom.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc mpi2hom.o -o ../bin/mpi2hom \
                 --LINK=$(CLINKER)

mpi2phc_s:
	gcc -c $(MPILib)/mpi2phc_s.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc mpi2phc_s.o -o ../bin/mpi2phc_s \
                 --LINK=$(CLINKER)

mpi2phc_d2: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(MPILib)/mpi2phc_d2.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o \
                    mpi2phc_d2.o -o ../bin/mpi2phc_d2 \
                 --LINK=$(CLINKER)

double_double.o:
	gcc -c -I$(PHCAda)/Math_Lib/QD $(PHCAda)/Math_Lib/QD/double_double.c \
            -o double_double.o

quad_double.o:
	gcc -c -I$(PHCAda)/Math_Lib/QD $(PHCAda)/Math_Lib/QD/quad_double.c \
            -o quad_double.o

mpi2phc_dd: standard_solutions_container.o double_double.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c -I$(PHCAda)/Math_Lib/QD $(MPILib)/mpi2phc_dd.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o double_double.o \
                    mpi2phc_dd.o -o ../bin/mpi2phc_dd \
                 --LINK=$(CLINKER) -lm

mpi2phc_qd: standard_solutions_container.o double_double.o quad_double.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(MPILib)/mpi2phc_qd.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o double_double.o \
                    quad_double.o mpi2phc_qd.o -o ../bin/mpi2phc_qd \
                 --LINK=$(CLINKER)

mpi2track: standard_solutions_container.o
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(COFLAGS) $(PHCLib)/phcpack.c
	gcc -c $(COFLAGS) $(PHCLib)/syscon.c
	gcc -c $(COFLAGS) $(PHCLib)/solcon.c
	gcc -c $(COFLAGS) $(PHCLib)/witset.c
	gcc -c $(COFLAGS) $(PHCLib)/jump_track.c
	gcc -c $(COFLAGS) $(MPILib)/parallel_phcpack.c
	gcc -c $(COFLAGS) $(MPILib)/mpi2track.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o witset.o \
                    jump_track.o parallel_phcpack.o mpi2track.o \
                 -o ../bin/mpi2track \
                 --LINK=$(CLINKER)

parallel_pieri:
	gcc -c $(MPILib)/parallel_pieri.c $(MPILib)/parallel_tree.c \
	       $(MPILib)/queue.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2pieri.adb
	gnatbind -n use_c2pieri
	gnatlink -C use_c2pieri parallel_pieri.o parallel_tree.o queue.o \
                 -o $(BIN)/parallel_pieri --LINK=$(CLINKER)

parallel_subsystem:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(MPILib)/parallel_subsystem.c
	gcc -c $(MPILib)/job_queue.c
	gcc -c $(MPILib)/idle_queue.c
	gcc -c $(MPILib)/parallel_phcpack.c
	gcc -c $(MPILib)/from_mpi2track.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o witset.o \
                    jump_track.o from_mpi2track.o parallel_phcpack.o \
                    job_queue.o idle_queue.o parallel_subsystem.o \
                 -o ../bin/parallel_subsystem --LINK=$(CLINKER)

mpi2fac:
#	mpicc -c $(MPILib)/mpi2fac.c
	gcc -c $(MPILib)/mpi2fac.c
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc mpi2fac.o -o ../bin/mpi2fac \
                 --LINK=$(CLINKER)

mpi2fac_s:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(MPILib)/parallel_phcpack.c
	gcc -c $(MPILib)/parallel_monodromy.c
	gcc -c $(MPILib)/mpi2fac_s.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o witset.o \
                    jump_track.o parallel_phcpack.o parallel_monodromy.o \
                    mpi2fac_s.o \
                 -o ../bin/mpi2fac_s --LINK=$(CLINKER)

mpi2fac_d:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(MPILib)/parallel_phcpack.c
	gcc -c $(MPILib)/parallel_monodromy.c
	gcc -c $(MPILib)/manage_components.c
	gcc -c $(MPILib)/mpi2fac_d.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o witset.o \
                    jump_track.o parallel_phcpack.o parallel_monodromy.o \
		    manage_components.o mpi2fac_d.o \
                 -o ../bin/mpi2fac_d --LINK=$(CLINKER)

monodromyMPI:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/witset.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(MPILib)/parallel_phcpack.c
	gcc -c $(MPILib)/parallel_monodromy.c
	gcc -c $(MPILib)/manage_components.c
	gcc -c $(MPILib)/monodromyMPI.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o witset.o \
                    jump_track.o parallel_phcpack.o parallel_monodromy.o \
		    manage_components.o monodromyMPI.o \
                 -o ../bin/monodrom --LINK=$(CLINKER)

mpi2cell_s:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/celcon.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(MPILib)/parallel_phcpack.c
	gcc -c $(MPILib)/parallel_cells.c
	gcc -c $(MPILib)/mpi2cell_s.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o celcon.o \
                    jump_track.o parallel_phcpack.o parallel_cells.o \
                    mpi2cell_s.o \
		-o ../bin/mpi2cell_s --LINK=$(CLINKER)

mpi2cell_d:
	gnatmake -c $(INCLULIBS) $(GNATOPTFLAGS) use_c2phc.adb
	gcc -c $(PHCLib)/phcpack.c
	gcc -c $(PHCLib)/syscon.c
	gcc -c $(PHCLib)/solcon.c
	gcc -c $(PHCLib)/celcon.c
	gcc -c $(PHCLib)/jump_track.c
	gcc -c $(MPILib)/parallel_phcpack.c
	gcc -c $(MPILib)/parallel_cells.c
	gcc -c $(MPILib)/mpi2cell_d.c
	gnatbind -n use_c2phc
	gnatlink -C use_c2phc phcpack.o solcon.o syscon.o celcon.o \
                    jump_track.o parallel_phcpack.o parallel_cells.o \
                    mpi2cell_d.o \
		-o ../bin/mpi2cell_d --LINK=$(CLINKER)

# cleaning up the object files :

clean:
	/bin/rm -f  b* *.o *.ali lib.a
back to top