

# makefile for VPFIT

# specify compiler
FC= gfortran
# fnonstd gives abrupt underflow and crashes on divison by zero - 
# flags for compilation with debug - comment out if debug not wanted
# FFLAGS= -g -C -xl -fnonstd -temp=./
# flags for Solaris version - comment out if not wanted
# FFLAGS= -temp=./
# If below not commented out, it is the Linux version (so 'make vpflx', or 'make rdglx')
# FFLAGS=  -ffast-math -Wall
# With ignorable warnings disabled:
# FFLAGS=  -ffast-math -Wall -w
FFLAGS=  -O -Wall 
# save dependencies
.KEEP_STATE:

# this is the default (ie 'make' will make vpfit for Linux as below)
all: vpflx

vpobj=	vpfit.o dcholin.o eigen.o spvoigt.o svbksbd.o \
	svdajc.o chanwav.o svdcmpd.o lm_udchole.o udchole.o rd_markreg.o \
	rd_tickvpfl.o vp_rdwaveval.o rd_pgannot.o \
	vp_abfind.o vp_abundset.o vp_addline.o vp_addxlink.o vp_archwav.o \
	vp_asciin.o vp_ationsep.o vp_atomass.o vp_blfixf.o vpf_bvalsp.o \
	vp_cfcopy.o vp_chanwav.o vp_charlims.o vp_chdisprof.o \
	vp_checkn.o vp_chipconv.o vp_chspread.o vp_pgcurs.o vp_cval.o \
	vp_deriv.o vp_dlinin.o vp_dlset.o vp_dotick.o \
	vp_emlsmry.o vp_empval.o vp_emscchk.o vp_emtset.o vp_endorder.o \
	vp_endrej.o vp_errej.o vp_ewred.o vp_f13finx.o vp_f13read.o \
	vp_fgf13write.o vp_flchderivs.o vp_fnzbin.o vp_getres.o vp_gglwcoeff.o vp_gsclfts.o \
	vp_gwatfits.o vp_initval.o vp_ionregcheck.o vp_ksvnorm.o vp_lineid.o vp_linlim.o vp_listfiles.o \
	vp_lycont.o vp_lyconte.o vp_minpol.o vp_minquad.o vp_nearlin.o vp_newtfxl.o \
	vp_pareorder.o vp_parmcest.o vp_pgbegin.o vp_plcset.o \
	vp_presetsys.o vp_ucprinerr.o vp_ucprinit.o vp_rdbwvfts.o \
	vp_rdlines.o vp_rdspecial.o vp_readfits.o vp_rfitsext.o vp_runstst.o vp_rwlims.o \
	vp_scontf.o vp_setintv.o vp_setoptn.o vp_spdatin.o vp_smry.o vp_spread.o vp_spvoigte.o \
	vp_srcpath.o vp_startval.o vp_stripcmt.o vp_subchspread.o vp_sumlinclear.o \
	vp_tieval.o vp_trimattab.o vp_tsetxref.o vp_ucheck.o vp_ucoptv.o vp_usdef.o \
	vp_vreset.o vp_wval.o vp_wvalch.o vp_wvalsubch.o vp_f_sigscl.o \
	vp_wverass.o vpf_dvresn.o probks.o voigt_king.o dexpf.o \
	case.o cmax1.o dlycabscft.o dsepvar.o dotick.o sepvar.o \
	splot.o tickpg.o pr_mdian1.o tikset.o wcor.o \
	tstfit3d.o prg_polyd.o plset.o pldef.o \
	tiedb.o checkb.o vp_wrt25.o linfit.o svdfit.o \
	dpoly.o calcn.o varythis.o wval.o \
	pda_xermsg.o vp_cmssrc.o pda_qsiad.o pda_che2d.o \
	vp_dattim.o

#	All this last routine does is call date_and_time. If you system
#	still has only the old FORTRAN date and time library routines,
#	then use vp_dattim_alt.o in place of vp_dattim.o. Both are
#	provided.

rdobj=	rd_ablin.o rd_adnois.o rd_comalias.o rd_compreset.o rd_cuchstr.o rd_cufilnm.o \
	rd_cuplot.o rd_cuwvrest.o rd_cydata.o rd_daswap.o rd_dblid.o rd_dmanip.o \
	rd_drebin.o rd_dvcont.o rd_estcolb.o rd_ewwav.o rd_extabs.o rd_fluxbb.o \
	rd_gprof.o rd_gprofe.o rd_gpsim.o rd_hdust.o rd_intvtab.o rd_markreg.o rd_mattrd.o \
	rd_meantau.o rd_moderrs.o rd_multiset.o rd_plcset.o rd_pmpset.o rd_prhelp.o \
	rd_qdatafiles.o rd_readlinwav.o rd_sclsig.o rd_scrn.o rd_setintv.o \
	rd_stackz.o rd_stplot.o rd_pgannot.o \
	rd_tgplots.o rd_tickvpfl.o rd_ulims.o rd_ulimse.o rd_ulinfo.o \
	rd_wrfits.o rd_wrwcfits.o rd_wvsc.o rd_zcorr.o rd_ztabcf.o rd_xcdc.o \
	vp_archwav.o vp_asciin.o vp_ationsep.o vp_atomass.o \
	vp_chanwav.o vp_cfcopy.o vp_charlims.o vp_chsation.o vp_cmssrc.o \
	vp_dlset.o vp_empval.o vp_ewred.o vp_f13fin.o vp_f13finx.o vp_getres.o vp_gglwcoeff.o \
	vpf_bvalsp.o vp_gsclfts.o vp_gwatfits.o vp_rdwaveval.o \
	vp_initval.o vp_lineid.o vp_lyconte.o vp_lycont.o vp_pgbegin.o vp_pgcurs.o vp_rdbwvfts.o \
	vp_rdspecial.o vp_readfits.o vp_rfitsext.o vp_spread.o vp_srcpath.o vp_startval.o \
	vp_spvoigte.o vp_stripcmt.o vp_wval.o vp_f_sigscl.o vp_wverass.o vpf_dvresn.o \
	vp_subchspread.o wval.o sepvar.o dsepvar.o pr_mdian1.o spvoigt.o \
	calcn.o dlycabscft.o linfit.o medianv.o prg_polyd.o \
	dpoly.o svdfit.o svbksbd.o svdcmpd.o \
	splot.o plset.o pldef.o dotick.o tickpg.o cmax1.o \
	chanwav.o wcor.o dexpf.o voigt_king.o erfcc.o case.o \
	pda_che2d.o pda_qsiad.o

auvpobj=	sepvar.o vp_ewred.o vp_ationsep.o case.o dsepvar.o vp_charlims.o

flobj=  sepvar.o ewred.o pda_qsiad.o

tabobj=	case.o dsepvar.o sepvar.o vp_ewred.o vp_f13fin.o vp_initval.o

hedobj=	dsepvar.o sepvar.o

lyrobj= dsepvar.o sepvar.o vp_ationsep.o vp_charlims.o case.o

# CHANGE THIS TO WHATEVER IS APPROPRIATE FOR YOUR CFITSIO LIBRARY
# AND REPLACE 'pgplot_link' WITH PGPLOT LIBRARY FOR YOUR SYSTEM.
# [On the IoA system 'pgplot_link' is '-lpgplot -lm -lsocket -lnsl']

cfits=	/usr/local/lib/libcfitsio.a

vpsol: vpgti.o $(vpobj)
	$(LINK.f) -o vpsol vpgti.o $(vpobj) \
	-L/opt/X11R6/lib -lXext \
	-L/usr/local/lib `pgplot_link` -L/star/lib  $(cfits) 

rdsol: rd_gen.o $(rdobj)
	$(LINK.f) -o rdsol rd_gen.o $(rdobj) \
	-L/opt/X11R6/lib -lXext \
	-L/usr/local/lib `pgplot_link` -L/star/lib $(cfits) 

# ESO versions 
vpfit: vpgti.o $(vpobj)
	$(LINK.f) -o vpfit vpgti.o $(vpobj) \
	/scisoft/lib/libcfitsio.a /scisoft/pgplot/libpgplot.a \
	-L/opt/X11R6/lib -lXext \
	-lm -lV77 -lX11 -lsocket -lnsl -lintl -ldl -lelf

rdgen: rd_gen.o $(rdobj)
	$(LINK.f) -o rdgen rd_gen.o $(rdobj) \
	/scisoft/lib/libcfitsio.a /scisoft/pgplot/libpgplot.a \
	-L/opt/X11R6/lib -lXext \
	-lm -lV77 -lX11 -lsocket -lnsl -lintl -ldl -lelf


# Linux version
# CHANGE THESE TO YOUR CFITSIO AND PGPLOT LIBRARIES 
cfitsx =	/home/rfc/cflib/cfitsio/libcfitsio.a

pgpltx =	/home/rfc/cflib/pgplot08/pgrun/libpgplot.a

#  Linux  versions (Fedora 4 tested)
vpflx: vpgti.o $(vpobj)
	$(LINK.f) -o vpfit vpgti.o $(vpobj) \
        $(pgpltx)   $(cfitsx) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl


rdglx: rd_gen.o $(rdobj)
	$(LINK.f) -o rdgen rd_gen.o $(rdobj) \
	$(cfitsx) $(pgpltx) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl

# Linux version - ubuntu, courtesy Jonathan Whitmore
#
#vpflu: vpgti.o $(vpobj)
#        $(LINK.f) -o vpfit vpgti.o $(vpobj) \
#        $(pgpltx)   $(cfitsx) \
#        -L/usr/X11R6/lib -lX11 -lXext \
#        -L/usr/lib -ldl -lm -lnsl -lpng
#
#rdglu: rd_gen.o $(rdobj)
#	$(LINK.f) -o rdgen rd_gen.o $(rdobj) \
#	$(cfitsx) $(pgpltx) \
#        -L/usr/X11R6/lib -lX11 -lXext \
#        -L/usr/lib -ldl -lm -lnsl -lpng

#  Linux header keyword changer in case you don't have IRAF on your laptop

hedlx: hedit.o $(hedobj)
	$(LINK.f) -o hedit hedit.o $(hedobj) \
	$(cfitsx) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl

bintofits: bintofits.o $(hedobj)
	$(LINK.f) -o bintofits bintofits.o $(hedobj) \
	$(cfitsx) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl

atmlx: atomtab.o $(hedobj)
	$(LINK.f) -o atomtab atomtab.o $(hedobj) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl

autovpin:	autovpin.o $(auvpobj)
	$(LINK.f) -o autovpin autovpin.o $(auvpobj) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl

lyregset:	lyregset.o $(lyrobj)
	$(LINK.f) -o lyregset lyregset.o $(lyrobj) \
        -L/usr/X11R6/lib -lX11 -lXext \
        -L/usr/lib -ldl -lm -lnsl

# rfc routines and development (Solaris only)

flgen: fl_gen.o $(flobj)
	$(LINK.f) -o flgen fl_gen.o $(flobj) \
	-L/opt/X11R6/lib -lXext \
	-L/usr/local/lib `pgplot_link` -xl -L/star/lib  $(solim) 

tabsort: gu_tabsort.o $(tabobj)
	$(LINK.f) -o tabsort gu_tabsort.o $(tabobj) \
	-L/opt/X11R6/lib -lXext -L/data/cass92/rfc/vpdev/cmlib -lcms \
	-L/usr/local/lib `pgplot_link` -xl -L/star/lib  $(solim) \
	-L/star/lib -lpda

# CHANGE THIS TO WHATEVER IS APPROPRIATE FOR YOUR CFITSIO LIBRARY
# AND REPLACE 'pgplot_link' WITH PGPLOT LIBRARY FOR YOUR SYSTEM

cfits=/sw/lib/libcfitsio.a

PGLIB=-L/sw/lib/pgplot -lcpgplot -lpgplot -L/usr/X11R6/lib -lX11 -lpng -lz

hdmac: hedit.o $(hedobj)
	$(FC) $(FFLAGS)	-o hedit hedit.o $(hedobj) \
	-L/usr/local/lib/ -L/usr/lib/ -L/sw/lib/ \
	-L/usr/X11R6/lib \
	/System/Library/Frameworks/Foundation.framework/Versions/Current/Foundation \
	/System/Library/Frameworks/AppKit.framework/Versions/Current/AppKit \
	 $(cfits) $(PGLIB) -laquaterm  

vpmac: vpgti.o $(vpobj)
	$(FC) $(FFLAGS) -o vpfit vpgti.o $(vpobj) \
	-L/usr/local/lib/ -L/usr/lib/ -L/sw/lib/ \
	-L/usr/X11R6/lib \
	/System/Library/Frameworks/Foundation.framework/Versions/Current/Foundation \
	/System/Library/Frameworks/AppKit.framework/Versions/Current/AppKit \
	 $(cfits) $(PGLIB) -laquaterm  

rdmac: rd_gen.o $(rdobj)
	$(FC) $(FFLAGS) -o rdgen rd_gen.o $(rdobj) \
	-L/usr/local/lib/ -L/usr/lib/ -L/sw/lib/ \
	-L/usr/X11R6/lib \
	/System/Library/Frameworks/Foundation.framework/Versions/Current/Foundation \
	/System/Library/Frameworks/AppKit.framework/Versions/Current/AppKit \
	 $(cfits) $(PGLIB) -laquaterm

rdmacold: rd_gen.o $(rdobj)
	$(FC) $(FFLAGS) -o rdgen rd_gen.o $(rdobj) \
	-L/usr/local/lib/ -L/usr/local/pgplot/ -L/usr/lib/ \
	-L/usr/X11R6/lib \
	/System/Library/Frameworks/Foundation.framework/Versions/Current/Foundation \
	/System/Library/Frameworks/AppKit.framework/Versions/Current/AppKit \
	-lX11 -lcfitsio -lpgplot -lpng -lz -laquaterm -lcpgplot 
