# Thi is a comment, and I want to say that the variable CC will be
# the compiler to use.
CC=gcc
# options I'll pass to the compiler.
CFLAGS= -O3 -ftree-vectorize 
#CFLAGS= -O
CDIR= $(CURDIR)
UNAME= $(shell uname)
RESERVED=no
#

all:	tpm otherstuff tpmutils tms utils pola carbognani wise vis  

ifeq ($(RESERVED),yes)
tpm:    	bin/runtpm bin/genobs bin/tstat bin/jdcnv bin/elem2pos bin/elem2v bin/earthv bin/genmesh
utils:		bin/h2d bin/h2pv bin/pv2a bin/jdcnv bin/caldat bin/damit2obj bin/skycalc bin/skycalendar bin/mpc2mag bin/rwo2mag bin/miri2eso bin/mpc2asteroid bin/asteroid2mpc bin/nmag2flux bin/kmodel
vis:		bin/vis2theta bin/theta2vis bin/glviewmesh
carbognani:	bin/mesh2ellips bin/mesh2ellips2
wise: 	 	bin/neatm2wisemag bin/wisemag2neatm bin/neatm2wiseisoflux bin/wisemag2neatm2v bin/unpro_wisemag2neatm2v
endif
ifeq ($(RESERVED),no)
tpm:    	bin/runtpm bin/genobs bin/tstat bin/jdcnv bin/elem2pos bin/elem2v bin/earthv
utils:		bin/h2d bin/h2pv bin/pv2a bin/jdcnv bin/caldat bin/damit2obj bin/skycalc bin/skycalendar bin/mpc2mag bin/rwo2mag bin/miri2eso bin/mpc2asteroid bin/asteroid2mpc bin/nmag2flux
vis:		bin/vis2theta bin/theta2vis bin/glviewmesh
wise: 	 	bin/neatm2wisemag bin/wisemag2neatm bin/neatm2wiseisoflux bin/wisemag2neatm2v bin/unpro_wisemag2neatm2v
carbognani:	#nothing to do
endif
otherstuff:	bin/dos2unix bin/unix2dos
tpmutils:	bin/skind bin/simpsextract bin/tsurf bin/tmul bin/gamma2theta bin/meshvolume bin/tmapbin2ascii bin/mesh2normals
tms:		bin/tmflux bin/ftm bin/fittm bin/tss bin/thermalp bin/wave2tmflux
pola:		bin/f2stokes bin/p2pr bin/f2stokesBen


# ============ MIRIADE interface =================================================
miri: eph/miridista  eph/mirieph    eph/miriflux   eph/mpctohdes
	cd bin; cp ../eph/miri* .; cp ../eph/mpctohdes .; chmod +x miri* mpctohdes

# ============ NUMERICAL RECIPES =================================================
bin/covsrt.o: nr/covsrt.c
	cd bin; $(CC) $(CFLAGS) -c ../nr/covsrt.c

bin/gaussj.o: nr/gaussj.c
	cd bin; $(CC) $(CFLAGS) -c ../nr/gaussj.c

bin/mrqcof.o: nr/mrqcof.c
	cd bin; $(CC) $(CFLAGS) -c ../nr/mrqcof.c

bin/mrqmin.o: nr/mrqmin.c
	cd bin; $(CC) $(CFLAGS) -c ../nr/mrqmin.c

bin/nrutil.o: nr/nrutil.c
	cd bin; $(CC) $(CFLAGS) -c ../nr/nrutil.c

# ============ SIMPLE THERMAL MODELS OBJs ========================================
bin/tm.o: tms/tm.c
	cd bin; $(CC) $(CFLAGS) -c ../tms/tm.c 
#=================================================================================

bin/ran1.o: nr/ran1.c
	cd bin;	$(CC) $(CFLAGS) -c ../nr/ran1.c

bin/gasdev.o: nr/gasdev.c
	cd bin; $(CC) $(CFLAGS) -c ../nr/gasdev.c

bin/bessj1.o: nr/bessj1.c
	cd bin;	$(CC) $(CFLAGS) -c ../nr/bessj1.c

#=========== TPM objs=======================================================
bin/colorcorrection.o: tpm/colorcorrection.c
	cd bin; $(CC) $(CFLAGS) -c ../tpm/colorcorrection.c

bin/craters.o: tpm/craters.c
	cd bin; $(CC) -fopenmp $(CFLAGS) -c ../tpm/craters.c

bin/mesh.o: tpm/mesh.c tpm/mesh.h 
	cd bin; $(CC) $(CFLAGS) -c ../tpm/mesh.c

bin/tpm.o: tpm/tpm.c tms/constants.h tms/macros.h tpm/tpm.h tpm/tstress.h
	cd bin; $(CC) $(CFLAGS) -c ../tpm/tpm.c

bin/obs.o: tpm/obs.c
	cd bin; $(CC) $(CFLAGS) -c ../tpm/obs.c

bin/ephems.o: tpm/ephems.c
	cd bin; $(CC) $(CFLAGS) -c ../tpm/ephems.c

bin/lc.o: tpm/lc.c tpm/lc.h
	cd bin; $(CC) $(CFLAGS) -c ../tpm/lc.c

bin/tstress.o: tpm/tstress.c tpm/tstress.h
	cd bin; $(CC) $(CFLAGS) -c ../tpm/tstress.c

bin/lmfit.o: tpm/lmfit.c 
	cd bin; $(CC) $(CFLAGS) -c ../tpm/lmfit.c
#===========================================================================

#========== UTILS OBJ=======================================================
bin/airmas.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/airmas.c

bin/cldj.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/cldj.c

bin/djcl.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/djcl.c

bin/caldj.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/caldj.c

bin/dd2tf.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/dd2tf.c

bin/evp.o: 
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/evp.c

bin/epj.o: 
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/epj.c

bin/prec.o: 
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/prec.c

bin/deuler.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/deuler.c

bin/altaz.o:
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/altaz.c

bin/gmst.o: utils/SLALIB/gmst.c
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/gmst.c

bin/dranrm.o: utils/SLALIB/dranrm.c
	cd bin; $(CC) $(CFLAGS) -c ../utils/SLALIB/dranrm.c

bin/kepler.o:  
	cd bin; $(CC) $(CFLAGS) -c ../utils/kepler.c

bin/MDBOrbit.o: bin/kepler.o bin/evp.o bin/cldj.o bin/epj.o  
	cd bin; $(CC) $(CFLAGS) -c ../utils/MDBOrbit.c

bin/ellips.o: utils/ellips.c bin/mesh.o
	cd bin; $(CC) $(CFLAGS) -c ../utils/ellips.c

bin/ellips2.o: utils/ellips2.c bin/mesh.o
	cd bin; $(CC) $(CFLAGS) -c ../utils/ellips2.c

#===========================================================================

# ======== THERMOPHYSICAL MODEL PLUGINS/UTILS===========================================================
bin/skind: tpm/skind.c
	cd bin; $(CC) $(CFLAGS) -o skind ../tpm/skind.c -lm

bin/tsurf: tpm/tsurf.c
	cd bin; $(CC) $(CFLAGS) -o tsurf ../tpm/tsurf.c -lm

bin/tmul: tpm/tmul.c
	cd bin; $(CC) $(CFLAGS) -o tmul ../tpm/tmul.c -lm

bin/gamma2theta: tpm/gamma2theta.c
	cd bin; $(CC) $(CFLAGS) -o gamma2theta ../tpm/gamma2theta.c -lm

bin/meshvolume: tpm/meshvolume.c bin/mesh.o
	cd bin; $(CC) $(CFLAGS) -o meshvolume ../tpm/meshvolume.c mesh.o -lm

bin/mesh2normals: tpm/mesh2normals.c bin/mesh.o
	cd bin; $(CC) $(CFLAGS) -o mesh2normals ../tpm/mesh2normals.c mesh.o -lm

bin/tmapbin2ascii:  tpm/tmapbin2ascii.c 
	cd bin; $(CC) $(CFLAGS) -o tmapbin2ascii ../tpm/tmapbin2ascii.c -lm

bin/tmap2stress:  tpm/tmap2stress.c 
	cd bin; $(CC) $(CFLAGS) -o tmap2stress ../tpm/tmap2stress.c -lm

# ========= THERMOPHYSICAL MODEL =======================================================================
#generate the runtmp executable: this the Thermophysical Model CODE!
bin/runtpm: bin/mesh.o bin/tpm.o bin/ephems.o bin/obs.o bin/craters.o bin/lc.o bin/tstress.o tpm/runtpm.c bin/colorcorrection.o bin/tm.o bin/lmfit.o
	cd bin; $(CC) $(CFLAGS) -o runtpm ../tpm/runtpm.c mesh.o tpm.o ephems.o obs.o craters.o lc.o tstress.o colorcorrection.o tm.o lmfit.o -lm

#generate the genobs executable
bin/genobs: tpm/genobs.c
	cd bin; $(CC) $(CFLAGS) -o genobs ../tpm/genobs.c -lm


#generate the refittpm executable
bin/refittpm: bin/obs.o
	cd bin; $(CC) $(CFLAGS) -o refittpm ../tpm/refittpm.c obs.o -lm

bin/tstat:
	cd bin; $(CC) $(CFLAGS) -o tstat ../tpm/tstat.c -lm

bin/glviewmesh: bin/mesh.o bin/obs.o bin/ephems.o gl/glviewmesh.c
ifeq ($(UNAME),Darwin)
	cd bin; $(CC) $(CFLAGS) -framework GLUT -framework OpenGL -framework Cocoa -lm -ltiff -o glviewmesh ../gl/glviewmesh.c ephems.o mesh.o obs.o
endif
ifeq ($(UNAME),Linux)
	cd bin; $(CC) $(CFLAGS) -o glviewmesh ../gl/glviewmesh.c ephems.o mesh.o obs.o -ltiff -lGL -lGLU -lglut -lm
endif
#=======================================================================================================

#========== IRAS plugin for TPM ========================================================================
#generate the simpsextract executable
bin/simpsextract: tpm/simpsextract.c bin/gasdev.o bin/ran1.o bin/caldj.o bin/MDBOrbit.o bin/kepler.o bin/cldj.o bin/evp.o bin/epj.o bin/prec.o bin/deuler.o
	cd bin; $(CC) $(CFLAGS) -o simpsextract ../tpm/simpsextract.c gasdev.o ran1.o caldj.o MDBOrbit.o kepler.o cldj.o evp.o epj.o prec.o deuler.o -lm

#=======================================================================================================


#========== ORBITAL ELEMENTS plugins for TPM ========================================================================
#generate the jdcnv executable
bin/jdcnv: bin/cldj.o utils/jdcnv.c
	cd bin; $(CC) $(CFLAGS) -o jdcnv ../utils/jdcnv.c cldj.o -lm

#generate the jdcnv executable
bin/caldat: bin/djcl.o bin/dd2tf.o utils/caldat.c
	cd bin; $(CC) $(CFLAGS) -o caldat ../utils/caldat.c djcl.o dd2tf.o -lm

#generate the elem2pos executable
bin/elem2pos: bin/caldj.o bin/cldj.o bin/epj.o bin/evp.o bin/prec.o bin/deuler.o bin/MDBOrbit.o bin/kepler.o 
	cd bin; $(CC) $(CFLAGS) -o elem2pos ../utils/elem2pos.c caldj.o MDBOrbit.o kepler.o cldj.o evp.o epj.o prec.o deuler.o -lm

#generate the elem2v executable
bin/elem2v: bin/caldj.o bin/cldj.o bin/epj.o bin/evp.o bin/prec.o bin/deuler.o bin/MDBOrbit.o bin/kepler.o  utils/elem2v.c
	cd bin; $(CC) $(CFLAGS) -o elem2v ../utils/elem2v.c caldj.o MDBOrbit.o kepler.o cldj.o evp.o epj.o prec.o deuler.o -lm

#generate the earthv executable
bin/earthv: bin/caldj.o bin/cldj.o bin/epj.o bin/evp.o bin/prec.o bin/deuler.o bin/MDBOrbit.o bin/kepler.o 
	cd bin; $(CC) $(CFLAGS) -o earthv ../utils/earthv.c caldj.o MDBOrbit.o kepler.o cldj.o evp.o epj.o prec.o deuler.o -lm


#========== SIMPLE THERMAL MODELS ===============================================================================
#generate the fittm executable
bin/fittm: tms/fitTM2.c bin/tm.o bin/gasdev.o bin/ran1.o bin/covsrt.o bin/gaussj.o bin/mrqcof.o bin/mrqmin.o bin/nrutil.o
	cd bin;	$(CC) $(CFLAGS) -o fittm ../tms/fitTM2.c tm.o gasdev.o ran1.o covsrt.o gaussj.o mrqcof.o mrqmin.o nrutil.o -lm

#generate the tmflux executable
bin/tmflux: bin/tm.o tms/TMflux2.c bin/covsrt.o bin/gaussj.o bin/mrqcof.o bin/mrqmin.o bin/nrutil.o
	cd bin;	$(CC) $(CFLAGS) -o tmflux ../tms/TMflux2.c tm.o covsrt.o gaussj.o mrqcof.o mrqmin.o nrutil.o -lm

#generate the tmflux executable
bin/wave2tmflux: bin/tm.o tms/wave2TMflux.c bin/covsrt.o bin/gaussj.o bin/mrqcof.o bin/mrqmin.o bin/nrutil.o
	cd bin;	$(CC) $(CFLAGS) -o wave2tmflux ../tms/wave2TMflux.c tm.o covsrt.o gaussj.o mrqcof.o mrqmin.o nrutil.o -lm

#generate the ftm executable (front end for ftm)
bin/ftm: tms/ftm.c
	cd bin;	$(CC) $(CFLAGS) -o ftm ../tms/ftm.c -lm

#generate the tss executable
bin/tss: tms/tss.c
	cd bin; $(CC) $(CFLAGS) -o tss ../tms/tss.c  -lm

#generate the thermalp executable
bin/thermalp: tms/thermalp.c
	cd bin; $(CC) $(CFLAGS) -o thermalp ../tms/thermalp.c  -lm

bin/filter.o: wise/filter.c
	cd bin; $(CC) $(CFLAGS) -c ../wise/filter.c

bin/neatm2wisemag: bin/tm.o wise/neatm2wisemag.c bin/covsrt.o bin/gaussj.o bin/mrqcof.o bin/mrqmin.o bin/nrutil.o bin/filter.o
	cd bin;	$(CC) $(CFLAGS) -o neatm2wisemag ../wise/neatm2wisemag.c tm.o covsrt.o gaussj.o mrqcof.o mrqmin.o nrutil.o filter.o -lm

bin/neatm2wiseisoflux: bin/tm.o wise/neatm2wiseisoflux.c  bin/filter.o
	cd bin;	$(CC) $(CFLAGS) -o neatm2wiseisoflux ../wise/neatm2wiseisoflux.c tm.o  filter.o -lm

bin/wisemag2neatm: bin/tm.o wise/wisemag2neatm.c bin/covsrt.o bin/gaussj.o bin/mrqcof.o bin/mrqmin.o bin/nrutil.o bin/filter.o
	cd bin;	$(CC) $(CFLAGS) -o wisemag2neatm ../wise/wisemag2neatm.c tm.o covsrt.o gaussj.o mrqcof.o mrqmin.o nrutil.o filter.o -lm

bin/wisemag2neatm2v: bin/tm.o wise/wisemag2neatm2v.c  bin/filter.o
	cd bin;	$(CC) $(CFLAGS) -o wisemag2neatm2v ../wise/wisemag2neatm2v.c tm.o filter.o -lm

bin/unpro_wisemag2neatm2v: bin/tm.o wise/unpro_wisemag2neatm2v.c  bin/filter.o
	cd bin;	$(CC) $(CFLAGS) -o unpro_wisemag2neatm2v ../wise/unpro_wisemag2neatm2v.c tm.o filter.o -lm

#====================================================================================================================

#generate the d2theta executable
d2theta: ftm.c bessj1.o
	$(CC) $(CFLAGS) -o d2theta d2theta.c -lm

#generate the h2d executable
bin/h2d:
	cd bin; $(CC) $(CFLAGS) -o h2d ../utils/h2d.c -lm

#generate the pV2A executable
bin/pv2a:
	cd bin; $(CC) $(CFLAGS) -o pv2a ../utils/pv2a.c  -lm

#generate the h2pv executable
bin/h2pv:
	cd bin; $(CC) $(CFLAGS) -o h2pv ../utils/h2pv.c  -lm

bin/damit2obj: 
	cd bin; $(CC) $(CFLAGS) -o damit2obj ../utils/damit2obj.c -lm

bin/nmag2flux:
	cd bin;  $(CC) $(CFLAGS) -o nmag2flux ../utils/nmag2flux.c -lm

bin/mpc2mag: utils/mpc2mag.c bin/cldj.o
	cd bin; $(CC) $(CFLAGS) -o mpc2mag ../utils/mpc2mag.c cldj.o -lm

bin/rwo2mag: utils/rwo2mag.c bin/cldj.o
	cd bin; $(CC) $(CFLAGS) -o rwo2mag ../utils/rwo2mag.c cldj.o -lm
#========== POLARIMETRY ======================================================
bin/f2stokes: pola/f2stokes.c
	cd bin; $(CC) $(CFLAGS) -o f2stokes ../pola/f2stokes.c -lm

bin/f2stokesBen: pola/f2stokesBen.c
	cd bin; $(CC) $(CFLAGS) -o f2stokesBen ../pola/f2stokesBen.c -lm

bin/p2pr: pola/p2pr.c
	cd bin; $(CC) $(CFLAGS) -o p2pr ../pola/p2pr.c -lm

# ======== INTERFEROMETRY =====================================================
#generate the vis2theta executable
bin/vis2theta: vis/vis2theta.c bin/bessj1.o bin/ran1.o bin/gasdev.o
	cd bin; $(CC) $(CFLAGS) -o vis2theta ../vis/vis2theta.c bessj1.o ran1.o gasdev.o -lm

#generate the theta2vis executable
bin/theta2vis: vis/theta2vis.c bin/bessj1.o 
	cd bin; $(CC) $(CFLAGS) -o theta2vis ../vis/theta2vis.c bessj1.o -lm

# ======== OTHER STUFF ========================================================
bin/dos2unix:
	cd bin; $(CC) -O3 -o dos2unix ../utils/dos2unix.c

bin/unix2dos: 
	cd bin; $(CC) -O3 -o unix2dos ../utils/unix2dos.c

# ======== SKYCALENDAR ========================================================
bin/skycalc:
	cd bin; $(CC) -O3 -o skycalc ../skycalV5/src/skycalc.v5.c -lm

bin/skycalendar: skycalV5/src/skycalendar.v5.c
	cd bin; $(CC) -O3 -o skycalendar ../skycalV5/src/skycalendar.v5.c -lm

# ========= Mesh2ellips Emile's code =========================================
bin/mesh2ellips: utils/mesh2ellips.c bin/mesh.o bin/ellips.o
	cd bin; $(CC) -O3 -o mesh2ellips ../utils/mesh2ellips.c mesh.o ellips.o	 -lm

# ========= Mesh2ellips2 Albino's code =========================================
# Passaggio dal convex model all'ellissoide con asse di rotazione parallelo a quello del modello 
bin/mesh2ellips2: utils/mesh2ellips2.c bin/mesh.o bin/ellips2.o
	cd bin; $(CC) -O3 -o mesh2ellips2 ../utils/mesh2ellips2.c mesh.o ellips2.o -lm

# ======== MIRIADE utils
bin/miri2eso: eph/miri2eso.c bin/gmst.o bin/dranrm.o bin/cldj.o bin/altaz.o bin/airmas.o
	cd bin; $(CC) -O3 -o miri2eso ../eph/miri2eso.c gmst.o dranrm.o cldj.o altaz.o airmas.o -lm

# ======== MPC2 ASTEROID =======================================================
bin/mpc2asteroid: utils/mpc2asteroid.c bin/caldj.o bin/cldj.o
	cd bin; $(CC) -O3 -o mpc2asteroid ../utils/mpc2asteroid.c caldj.o cldj.o -lm

# ======== ASTEROID 2MPC=======================================================
bin/asteroid2mpc: utils/asteroid2mpc.c bin/caldj.o bin/cldj.o
	cd bin; $(CC) -O3 -o asteroid2mpc ../utils/asteroid2mpc.c caldj.o cldj.o -lm

# ======== Gundlach and Bluem Conductivity model===============================
bin/kmodel: utils/kModel.cpp
	cd bin; g++ -std=c++11 -O3 -o kmodel ../utils/kModel.cpp

clean:
	cd bin; rm -f *.o*

cleanall:
	cd bin; rm -rf *

remove:
	rm -f /usr/local/bin/ftm
	rm -f /usr/local/bin/fittm
	rm -f /usr/local/bin/tmflux
	rm -f /usr/local/bin/vis2theta
	rm -f /usr/local/bin/theta2vis
	rm -f /usr/local/bin/simpsextract
	rm -f /usr/local/bin/pv2a
	rm -f /usr/local/bin/h2pv
	rm -f /usr/local/bin/h2d
	rm -f /usr/local/bin/tss
	rm -f /usr/local/bin/genobs
	rm -f /usr/local/bin/runtpm
	rm -f /usr/local/bin/skind
	rm -f /usr/local/bin/refittpm
	rm -f /usr/local/bin/tstat
	rm -f /usr/local/bin/jdcnv
	rm -f /usr/local/bin/caldat
	rm -f /usr/local/bin/elem2pos
	rm -f /usr/local/bin/elem2v
	rm -f /usr/local/bin/earthv
	rm -f /usr/local/bin/specpos
	rm -f /usr/local/bin/dos2unix
	rm -f /usr/local/bin/unix2dos
	rm -f /usr/local/bin/f2stokes
	rm -f /usr/local/bin/f2stokesBen
	rm -f /usr/local/bin/p2pr
	rm -f /usr/local/bin/thermalp
	rm -f /usr/local/bin/tsurf
	rm -f /usr/local/bin/tmul
	rm -f /usr/local/bin/gamma2theta
	rm -f /usr/local/bin/hor2vec
	rm -f /usr/local/bin/meshvolume
	rm -f /usr/local/bin/mirieph
	rm -f /usr/local/bin/mirivec
	rm -f /usr/local/bin/miriveclt
	rm -f /usr/local/bin/miridista
	rm -f /usr/local/bin/miriflux
	rm -f /usr/local/bin/damit2obj
	rm -f /usr/local/bin/getbestscalefactor
	rm -f /usr/local/bin/tmapbin2ascii
	rm -f /usr/local/bin/tmap2stress
	rm -f /usr/local/bin/mesh2ellips
	rm -f /usr/local/bin/getmpcorb
	rm -f /usr/local/bin/getpropelem
	rm -f /usr/local/bin/papers2bib
	rm -f /usr/local/bin/nmag2flux
	rm -f /usr/local/bin/mpc2mag
	rm -f /usr/local/bin/rwo2mag
	rm -f /usr/local/bin/mesh2ellips2
	rm -f /usr/local/bin/mesh2normals
	rm -f /usr/local/bin/nmag2flux
	rm -f /usr/local/bin/mpc2mag
	rm -f /usr/local/bin/rwo2mag
	rm -f /usr/local/bin/fitplot  
	rm -f /usr/local/bin/jy2w     
	rm -f /usr/local/bin/jdnow
	rm -f /usr/local/bin/miri2eso
	rm -f /usr/local/bin/mirieso
	rm -f /usr/local/bin/neatm2wisemag
	rm -f /usr/local/bin/neatm2wiseisoflux
	rm -f /usr/local/bin/wisemag2neatm
	rm -f /usr/local/bin/wisemag2neatm2v
	rm -f /usr/local/bin/unpro_wisemag2neatm2v
	rm -f /usr/local/bin/mpc2asteroid
	rm -f /usr/local/bin/asteroid2mpc
	rm -f /usr/local/bin/kmodel
	rm -f /usr/local/bin/wave2tmflux

install:
	cp  $(CDIR)/bin/fittm /usr/local/bin/fittm
	cp  $(CDIR)/bin/ftm /usr/local/bin/ftm
	cp  $(CDIR)/bin/tmflux /usr/local/bin/tmflux
	cp  $(CDIR)/bin/vis2theta /usr/local/bin/vis2theta
	cp  $(CDIR)/bin/theta2vis /usr/local/bin/theta2vis
	cp  $(CDIR)/bin/simpsextract /usr/local/bin/simpsextract
	cp  $(CDIR)/bin/pv2a /usr/local/bin/pv2a
	cp  $(CDIR)/bin/h2d  /usr/local/bin/h2d
	cp  $(CDIR)/bin/h2pv /usr/local/bin/h2pv
	cp  $(CDIR)/bin/tss /usr/local/bin/tss
	cp  $(CDIR)/bin/runtpm /usr/local/bin/runtpm
	cp  $(CDIR)/bin/genobs /usr/local/bin/genobs
	cp  $(CDIR)/bin/skind /usr/local/bin/skind
#	cp  $(CDIR)/bin/refittpm /usr/local/bin/refittpm
	cp  $(CDIR)/bin/tstat /usr/local/bin/tstat
	cp  $(CDIR)/bin/jdcnv /usr/local/bin/jdcnv
	cp  $(CDIR)/bin/caldat /usr/local/bin/caldat
	cp  $(CDIR)/bin/elem2pos /usr/local/bin/elem2pos
	cp  $(CDIR)/bin/elem2v /usr/local/bin/elem2v
	cp  $(CDIR)/bin/earthv /usr/local/bin/earthv
#	cp  $(CDIR)/bin/specpos /usr/local/bin/specpos
	cp  $(CDIR)/bin/dos2unix /usr/local/bin/dos2unix
	cp  $(CDIR)/bin/unix2dos /usr/local/bin/unix2dos
	cp  $(CDIR)/bin/f2stokes /usr/local/bin/f2stokes
	cp  $(CDIR)/bin/f2stokesBen /usr/local/bin/f2stokesBen
	cp  $(CDIR)/bin/p2pr /usr/local/bin/p2pr
	cp  $(CDIR)/bin/thermalp /usr/local/bin/thermalp
	cp  $(CDIR)/bin/tsurf /usr/local/bin/tsurf
	cp  $(CDIR)/bin/tmul /usr/local/bin/tmul
	cp  $(CDIR)/bin/gamma2theta /usr/local/bin/gamma2theta
	cp  $(CDIR)/tpm/hor2vec /usr/local/bin/hor2vec
	cp  $(CDIR)/bin/meshvolume /usr/local/bin/meshvolume
	cp  $(CDIR)/eph/mirieph /usr/local/bin/mirieph; chmod +x /usr/local/bin/mirieph
	cp  $(CDIR)/eph/mirieso /usr/local/bin/mirieso; chmod +x /usr/local/bin/mirieso
	cp  $(CDIR)/eph/mirivec /usr/local/bin/mirivec; chmod +x /usr/local/bin/mirivec
	cp  $(CDIR)/eph/mirivec /usr/local/bin/miriveclt; chmod +x /usr/local/bin/miriveclt
	cp  $(CDIR)/eph/miridista /usr/local/bin/miridista; chmod +x /usr/local/bin/miridista
	cp  $(CDIR)/eph/miriflux /usr/local/bin/miriflux
	cp  $(CDIR)/bin/damit2obj /usr/local/bin/damit2obj
	cp  $(CDIR)/vis/getbestscalefactor /usr/local/bin/getbestscalefactor; chmod +x /usr/local/bin/getbestscalefactor
	cp  $(CDIR)/utils/getmpcorb /usr/local/bin/getmpcorb; chmod +x /usr/local/bin/getmpcorb
	cp  $(CDIR)/utils/getpropelem /usr/local/bin/getpropelem; chmod +x /usr/local/bin/getpropelem
	cp  $(CDIR)/utils/papers2bib /usr/local/bin/papers2bib; chmod +x /usr/local/bin/papers2bib
	cp  $(CDIR)/utils/jdnow /usr/local/bin/jdnow; chmod +x /usr/local/bin/jdnow
	cp  $(CDIR)/bin/tmapbin2ascii /usr/local/bin/tmapbin2ascii
	cp  $(CDIR)/bin/tmap2stress /usr/local/bin/tmap2stress
	cp  $(CDIR)/bin/mesh2ellips /usr/local/bin/mesh2ellips
	cp  $(CDIR)/bin/mesh2ellips2 /usr/local/bin/mesh2ellips2
	cp  $(CDIR)/bin/mesh2normals /usr/local/bin/mesh2normals
	cp  $(CDIR)/bin/nmag2flux /usr/local/bin/nmag2flux
	cp  $(CDIR)/bin/mpc2mag /usr/local/bin/mpc2mag
	cp  $(CDIR)/bin/rwo2mag /usr/local/bin/rwo2mag
	cp  $(CDIR)/tms/fitplot /usr/local/bin/fitplot; chmod +x /usr/local/bin/fitplot
	cp  $(CDIR)/utils/jy2w /usr/local/bin/jy2w; chmod +x /usr/local/bin/jy2w
	cp  $(CDIR)/utils/sed2power /usr/local/bin/sed2power; chmod +x /usr/local/bin/utils/sed2power	
	cp  $(CDIR)/bin/miri2eso /usr/local/bin/miri2eso
	cp  $(CDIR)/bin/neatm2wisemag /usr/local/bin/neatm2wisemag
	cp  $(CDIR)/bin/neatm2wiseisoflux /usr/local/bin/neatm2wiseisoflux
	cp  $(CDIR)/bin/wisemag2neatm /usr/local/bin/wisemag2neatm
	cp  $(CDIR)/bin/wisemag2neatm2v /usr/local/bin/wisemag2neatm2v
	cp  $(CDIR)/bin/unpro_wisemag2neatm2v /usr/local/bin/unpro_wisemag2neatm2v
	cp  $(CDIR)/bin/mpc2asteroid /usr/local/bin/mpc2asteroid
	cp  $(CDIR)/bin/asteroid2mpc /usr/local/bin/asteroid2mpc
	cp  $(CDIR)/bin/kmodel /usr/local/bin/kmodel
	cp  $(CDIR)/bin/wave2tmflux /usr/local/bin/wave2tmflux

makelink:
	ln -s $(CDIR)/bin/fittm /usr/local/bin/fittm
	ln -s $(CDIR)/bin/ftm /usr/local/bin/ftm
	ln -s $(CDIR)/bin/tmflux /usr/local/bin/tmflux
	ln -s $(CDIR)/bin/vis2theta /usr/local/bin/vis2theta
	ln -s $(CDIR)/bin/theta2vis /usr/local/bin/theta2vis
	ln -s $(CDIR)/bin/simpsextract /usr/local/bin/simpsextract
	ln -s $(CDIR)/bin/pv2a /usr/local/bin/pv2a
	ln -s $(CDIR)/bin/h2d  /usr/local/bin/h2d
	ln -s $(CDIR)/bin/h2pv /usr/local/bin/h2pv
	ln -s $(CDIR)/bin/tss /usr/local/bin/tss
	ln -s $(CDIR)/bin/runtpm /usr/local/bin/runtpm
	ln -s $(CDIR)/bin/genobs /usr/local/bin/genobs
	ln -s $(CDIR)/bin/skind /usr/local/bin/skind
	ln -s $(CDIR)/bin/refittpm /usr/local/bin/refittpm
	ln -s $(CDIR)/bin/tstat /usr/local/bin/tstat
	ln -s $(CDIR)/bin/jdcnv /usr/local/bin/jdcnv
	ln -s $(CDIR)/bin/caldat /usr/local/bin/caldat
	ln -s $(CDIR)/bin/elem2pos /usr/local/bin/elem2pos
	ln -s $(CDIR)/bin/elem2v /usr/local/bin/elem2v
	ln -s $(CDIR)/bin/earthv /usr/local/bin/earthv
	ln -s $(CDIR)/bin/specpos /usr/local/bin/specpos
	ln -s $(CDIR)/bin/dos2unix /usr/local/bin/dos2unix
	ln -s $(CDIR)/bin/unix2dos /usr/local/bin/unix2dos
	ln -s $(CDIR)/bin/f2stokes /usr/local/bin/f2stokes
	ln -s $(CDIR)/bin/f2stokesBen /usr/local/bin/f2stokesBen
	ln -s $(CDIR)/bin/p2pr /usr/local/bin/p2pr
	ln -s $(CDIR)/bin/thermalp /usr/local/bin/thermalp
	ln -s $(CDIR)/bin/tsurf /usr/local/bin/tsurf
	ln -s $(CDIR)/bin/tmul /usr/local/bin/tmul
	ln -s $(CDIR)/bin/gamma2theta /usr/local/bin/gamma2theta
	ln -s $(CDIR)/tpm/hor2vec /usr/local/bin/hor2vec
	ln -s $(CDIR)/bin/meshvolume /usr/local/bin/meshvolume
	ln -s $(CDIR)/eph/mirieph /usr/local/bin/mirieph
	ln -s $(CDIR)/eph/mirivec /usr/local/bin/mirivec
	ln -s $(CDIR)/eph/miriveclt /usr/local/bin/miriveclt
	ln -s $(CDIR)/eph/miridista /usr/local/bin/miridista
	ln -s $(CDIR)/eph/miriflux /usr/local/bin/miriflux
	ln -s $(CDIR)/eph/mirieso /usr/local/bin/mirieso
	ln -s $(CDIR)/bin/damit2obj /usr/local/bin/damit2obj
	ln -s $(CDIR)/vis/getbestscalefactor /usr/local/bin/getbestscalefactor; chmod +x $(CDIR)/vis/getbestscalefactor
	ln -s $(CDIR)/utils/getmpcorb /usr/local/bin/getmpcorb; chmod +x $(CDIR)/utils/getmpcorb
	ln -s $(CDIR)/utils/getpropelem /usr/local/bin/getpropelem; chmod +x $(CDIR)/utils/getpropelem
	ln -s $(CDIR)/utils/papers2bib /usr/local/bin/papers2bib; chmod +x $(CDIR)/utils/papers2bib
	ln -s $(CDIR)/utils/jdnow /usr/local/bin/jdnow; chmod +x $(CDIR)/utils/jdnow
	ln -s $(CDIR)/bin/tmapbin2ascii /usr/local/bin/tmapbin2ascii
	ln -s $(CDIR)/bin/tmap2stress /usr/local/bin/tmap2stress
	ln -s $(CDIR)/bin/mesh2ellips /usr/local/bin/mesh2ellips
	ln -s $(CDIR)/bin/mesh2ellips2 /usr/local/bin/mesh2ellips2
	ln -s $(CDIR)/bin/mesh2normals /usr/local/bin/mesh2normals
	ln -s $(CDIR)/bin/nmag2flux /usr/local/bin/nmag2flux
	ln -s $(CDIR)/bin/mpc2mag /usr/local/bin/mpc2mag
	ln -s $(CDIR)/bin/rwo2mag /usr/local/bin/rwo2mag
	ln -s $(CDIR)/tms/fitplot /usr/local/bin/fitplot; chmod +x $(CDIR)/tms/fitplot
	ln -s $(CDIR)/utils/jy2w /usr/local/bin/jy2w; chmod +x $(CDIR)/utils/jy2w
	ln -s $(CDIR)/utils/sed2power /usr/local/bin/sed2power; chmod +x $(CDIR)/utils/sed2power	
	ln -s $(CDIR)/bin/miri2eso /usr/local/bin/miri2eso
	ln -s $(CDIR)/bin/neatm2wisemag /usr/local/bin/neatm2wisemag
	ln -s $(CDIR)/bin/neatm2wiseisoflux /usr/local/bin/neatm2wiseisoflux
	ln -s $(CDIR)/bin/wisemag2neatm /usr/local/bin/wisemag2neatm
	ln -s $(CDIR)/bin/wisemag2neatm2v /usr/local/bin/wisemag2neatm2v
	ln -s $(CDIR)/bin/unpro_wisemag2neatm2v /usr/local/bin/unpro_wisemag2neatm2v
	ln -s $(CDIR)/bin/mpc2asteroid /usr/local/bin/mpc2asteroid
	ln -s $(CDIR)/bin/asteroid2mpc /usr/local/bin/asteroid2mpc
	ln -s $(CDIR)/bin/kmodel /usr/local/bin/kmodel
	ln -s $(CDIR)/bin/wave2tmflux /usr/local/bin/wave2tmflux





