
NPOI=/home/nelias/npoi
STARLINK=$(NPOI)/starlink
HDATA=$(NPOI)/HData
PIPELINE=$(NPOI)/pipeline
NOVAS=$(NPOI)/novas/Cdist

CC=gcc
PP=g++

F2CLIB=/usr/lib/gcc/x86_64-redhat-linux/3.4.6/libg2c.a
#F2CLIB=/usr/lib/libf2c.a

LGFORTRAN=
#LGFORTRAN=-lgfortran

all: Basis.o Diameter.o Catalog.o LeapSecond.o EO.o CalCommon.o starAlias \
    headSum geoSum genSum obsLog conLog ibcSum obcSum tcSum sdSum bgSum \
    calVis2 calTAmp calTPhase con2cha cha2ascii lSec eoLast starCal

Basis.o: Basis.c Basis.h
	$(CC) -I$(PIPELINE) -c Basis.c

Catalog.o: Catalog.cc Catalog.h Star.ncc
	$(PP) -I$(PIPELINE) -c Catalog.cc

Diameter.o: Diameter.cc Diameter.h
	$(PP) -I$(PIPELINE) -c Diameter.cc

LeapSecond.o: LeapSecond.cc LeapSecond.h
	$(PP) -I$(PIPELINE) -I$(NOVAS) -c LeapSecond.cc

EO.o: EO.cc EO.h
	$(PP) -I$(PIPELINE) -I$(NOVAS) -c EO.cc

CalCommon.o: CalCommon.cc CalCommon.tcc CalCommon.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c CalCommon.cc

starAlias: starAlias.o Catalog.o
	$(PP) -I$(PIPELINE) -o starAlias starAlias.o Catalog.o
	cp $(PIPELINE)/starAlias $(NPOI)/bin/starAlias

starAlias.o: starAlias.c Catalog.cc Catalog.h Star.ncc
	$(PP) -I$(PIPELINE) -c starAlias.c

headSum: headSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o headSum headSum.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/headSum $(NPOI)/bin/headSum

headSum.o: headSum.c HDataAux.tcc HDataAux.h Header.tcc Header.h \
    Log.tcc Log.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c headSum.c

geoSum: geoSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o geoSum geoSum.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/geoSum $(NPOI)/bin/geoSum

geoSum.o: geoSum.c $(HDATA)/Data.tcc $(HDATA)/Data.h HDataAux.tcc HDataAux.h \
    Header.tcc Header.h Log.tcc Log.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c geoSum.c

genSum: genSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o genSum genSum.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/genSum $(NPOI)/bin/genSum

genSum.o: genSum.c $(HDATA)/Data.tcc $(HDATA)/Data.h HDataAux.tcc HDataAux.h \
    Header.tcc Header.h Log.tcc Log.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c genSum.c

obsLog: obsLog.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o obsLog obsLog.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/obsLog $(NPOI)/bin/obsLog

obsLog.o: obsLog.c $(HDATA)/Data.tcc $(HDATA)/Data.h $(HDATA)/HData.tcc \
    $(HDATA)/HData.h $(HDATA)/Format.h $(HDATA)/Type.tcc $(HDATA)/Type.h \
    $(HDATA)/Status.tcc $(HDATA)/Status.h Log.tcc Log.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c obsLog.c

conLog: conLog.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o conLog conLog.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/conLog $(NPOI)/bin/conLog

conLog.o: conLog.c $(HDATA)/Data.tcc $(HDATA)/Data.h $(HDATA)/HData.tcc \
    $(HDATA)/HData.h $(HDATA)/Format.h $(HDATA)/Type.tcc $(HDATA)/Type.h \
    $(HDATA)/Status.tcc $(HDATA)/Status.h Log.tcc Log.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c conLog.c

ibcSum: ibcSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o ibcSum ibcSum.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/ibcSum $(NPOI)/bin/ibcSum

ibcSum.o: ibcSum.c $(HDATA)/Utility.cc $(HDATA)/Utility.h $(HDATA)/Format.h \
    $(HDATA)/Data.tcc $(HDATA)/Data.h HDataAux.tcc HDataAux.h Header.tcc \
    Header.h Log.tcc Log.h GenConfig.tcc GenConfig.h InputBeamConfig.tcc \
    InputBeamConfig.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c ibcSum.c

obcSum: obcSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o obcSum obcSum.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf \
	    $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/obcSum $(NPOI)/bin/obcSum

obcSum.o: obcSum.c $(HDATA)/Utility.cc $(HDATA)/Utility.h $(HDATA)/Format.h \
    $(HDATA)/Data.tcc $(HDATA)/Data.h HDataAux.tcc HDataAux.h Header.tcc \
    Header.h Log.tcc Log.h GenConfig.tcc GenConfig.h InputBeamConfig.tcc \
    InputBeamConfig.h OutputBeamConfig.tcc OutputBeamConfig.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c obcSum.c

tcSum: tcSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o tcSum tcSum.o $(HDATA)/HDSWrapper.o $(HDATA)/Utility.o \
	    -L$(STARLINK)/lib -lhds -lems -lchr -lcnf $(F2CLIB) $(LGFORTRAN) \
	    $(NOVAS)/libnovas.a
	cp $(PIPELINE)/tcSum $(NPOI)/bin/tcSum

tcSum.o: tcSum.c $(HDATA)/Utility.cc $(HDATA)/Utility.h $(HDATA)/Format.h \
    $(HDATA)/Data.tcc $(HDATA)/Data.h HDataAux.tcc HDataAux.h Header.tcc \
    Header.h Log.tcc Log.h GenConfig.tcc GenConfig.h InputBeamConfig.tcc \
    InputBeamConfig.h OutputBeamConfig.tcc OutputBeamConfig.h TripleConfig.tcc \
    TripleConfig.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c tcSum.c

sdSum: sdSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o sdSum sdSum.o $(HDATA)/HDSWrapper.o $(HDATA)/Utility.o \
	    LeapSecond.o EO.o Catalog.o -L$(STARLINK)/lib -lhds -lems -lchr \
	    -lcnf $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/sdSum $(NPOI)/bin/sdSum

sdSum.o: sdSum.c HDataAux.tcc HDataAux.h Header.tcc Header.h \
    Log.tcc Log.h ScanData.tcc ScanData.h MathLocal.tcc MathLocal.h Catalog.cc \
    Catalog.h Star.ncc LeapSecond.cc LeapSecond.h EO.cc EO.h GeoParms.tcc \
    GeoParms.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c sdSum.c

bgSum: bgSum.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o bgSum bgSum.o $(HDATA)/HDSWrapper.o $(HDATA)/Utility.o \
	    LeapSecond.o EO.o Catalog.o -L$(STARLINK)/lib -lhds -lems -lchr \
	    -lcnf $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/bgSum $(NPOI)/bin/bgSum

bgSum.o: bgSum.c BGScanData.tcc BGScanData.h HDataAux.tcc HDataAux.h \
    Header.tcc Header.h Log.tcc Log.h ScanData.tcc ScanData.h MathLocal.tcc \
    MathLocal.h Catalog.cc Catalog.h Star.ncc LeapSecond.cc LeapSecond.h EO.cc \
    EO.h GeoParms.tcc GeoParms.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c bgSum.c

calVis2: calVis2.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o calVis2 calVis2.o $(HDATA)/HDSWrapper.o Basis.o \
	    $(HDATA)/Utility.o LeapSecond.o EO.o Catalog.o Diameter.o \
	    CalCommon.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf $(F2CLIB) \
	    $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/calVis2 $(NPOI)/bin/calVis2

calVis2.o: calVis2.c HDataAux.tcc HDataAux.h Header.tcc Header.h \
    Log.tcc Log.h ScanData.tcc ScanData.h MathLocal.tcc MathLocal.h Catalog.cc \
    Catalog.h Star.ncc LeapSecond.cc LeapSecond.h EO.cc EO.h GeoParms.tcc \
    GeoParms.h OutputBeamConfig.tcc OutputBeamConfig.h OutputBeam.tcc \
    OutputBeam.h InputBeamConfig.tcc InputBeamConfig.h BGScanData.tcc \
    BGScanData.h CalCommon.cc CalCommon.h Basis.c Basis.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c calVis2.c

calTAmp: calTAmp.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o calTAmp calTAmp.o $(HDATA)/HDSWrapper.o Basis.o \
	    $(HDATA)/Utility.o LeapSecond.o EO.o Catalog.o Diameter.o \
	    CalCommon.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf $(F2CLIB) \
	    $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/calTAmp $(NPOI)/bin/calTAmp

calTAmp.o: calTAmp.c HDataAux.tcc HDataAux.h Header.tcc Header.h \
    Log.tcc Log.h ScanData.tcc ScanData.h MathLocal.tcc MathLocal.h Catalog.cc \
    Catalog.h Star.ncc LeapSecond.cc LeapSecond.h EO.cc EO.h GeoParms.tcc \
    GeoParms.h OutputBeamConfig.tcc OutputBeamConfig.h OutputBeam.tcc \
    OutputBeam.h InputBeamConfig.tcc InputBeamConfig.h BGScanData.tcc \
    BGScanData.h CalCommon.cc CalCommon.h TripleConfig.tcc TripleConfig.h \
    Triple.tcc Triple.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c calTAmp.c

calTPhase: calTPhase.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o calTPhase calTPhase.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o LeapSecond.o EO.o Catalog.o Diameter.o \
	    CalCommon.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf $(F2CLIB) \
	    $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/calTPhase $(NPOI)/bin/calTPhase

calTPhase.o: calTPhase.c HDataAux.tcc HDataAux.h Header.tcc Header.h \
    Log.tcc Log.h ScanData.tcc ScanData.h MathLocal.tcc MathLocal.h Catalog.cc \
    Catalog.h Star.ncc LeapSecond.cc LeapSecond.h EO.cc EO.h GeoParms.tcc \
    GeoParms.h OutputBeamConfig.tcc OutputBeamConfig.h OutputBeam.tcc \
    OutputBeam.h InputBeamConfig.tcc InputBeamConfig.h BGScanData.tcc \
    BGScanData.h CalCommon.cc CalCommon.h TripleConfig.tcc TripleConfig.h \
    Triple.tcc Triple.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c calTPhase.c

con2cha: con2cha.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o con2cha con2cha.o Basis.o $(HDATA)/HDSWrapper.o \
	    $(HDATA)/Utility.o LeapSecond.o EO.o Catalog.o Diameter.o \
	    CalCommon.o -L$(STARLINK)/lib -lhds -lems -lchr -lcnf $(F2CLIB) \
	    $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/con2cha $(NPOI)/bin/con2cha

con2cha.o: con2cha.c HDataAux.tcc HDataAux.h Header.tcc Header.h Log.tcc Log.h \
    ScanData.tcc ScanData.h BGScanData.tcc BGScanData.h InputBeam.tcc \
    InputBeam.h InputBeamConfig.tcc InputBeamConfig.h OutputBeam.tcc \
    OutputBeam.h OutputBeamConfig.tcc OutputBeamConfig.h TripleConfig.tcc \
    TripleConfig.h MathLocal.tcc MathLocal.h Catalog.cc Catalog.h Star.ncc \
    Diameter.cc Diameter.h File.tcc File.h Triple.tcc Triple.h CalCommon.cc \
    CalCommon.h Basis.c Basis.h
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c con2cha.c

cha2ascii: cha2ascii.o
	$(PP) -I$(NOVAS) -I$(STARLINK)/include -I$(HDATA) \
	    -I$(PIPELINE) -o cha2ascii cha2ascii.o $(NOVAS)/libnovas.a \
	    $(PIPELINE)/Basis.o $(HDATA)/HDSWrapper.o $(HDATA)/Utility.o \
	    LeapSecond.o EO.o Catalog.o CalCommon.o Diameter.o \
	    -L$(STARLINK)/lib -lhds -lems -lchr -lcnf $(F2CLIB) $(LGFORTRAN)
	cp $(PIPELINE)/cha2ascii $(NPOI)/bin/cha2ascii

cha2ascii.o: cha2ascii.c HDataAux.tcc HDataAux.h Header.tcc Header.h Log.tcc \
    Log.h ScanData.tcc ScanData.h BGScanData.tcc BGScanData.h InputBeam.tcc \
    InputBeam.h InputBeamConfig.tcc InputBeamConfig.h OutputBeam.tcc \
    OutputBeam.h OutputBeamConfig.tcc OutputBeamConfig.h TripleConfig.tcc \
    TripleConfig.h MathLocal.tcc MathLocal.h Catalog.cc Catalog.h Star.ncc \
    Triple.tcc Triple.h CalCommon.cc CalCommon.tcc CalCommon.h
	$(PP) -I$(NOVAS) -I$(STARLINK)/include -I$(HDATA) \
	    -I$(PIPELINE) -c cha2ascii.c

lSec: lSec.o LeapSecond.o
	$(PP) -I$(PIPELINE) -I$(NOVAS) -o lSec lSec.o LeapSecond.o \
	    $(NOVAS)/libnovas.a
	cp $(PIPELINE)/lSec $(NPOI)/bin/lSec

lSec.o: lSec.c LeapSecond.cc LeapSecond.h
	$(PP) -I$(PIPELINE) -I$(NOVAS) -c lSec.c

eoLast: eoLast.o EO.o
	$(PP) -I$(PIPELINE) -I$(NOVAS) -o eoLast eoLast.o EO.o \
	    $(NOVAS)/libnovas.a
	cp $(PIPELINE)/eoLast $(NPOI)/bin/eoLast

eoLast.o: eoLast.c EO.cc EO.h
	$(PP) -I$(PIPELINE) -I$(NOVAS) -c eoLast.c

starCal: starCal.o Catalog.o
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -o starCal starCal.o $(HDATA)/HDSWrapper.o Catalog.o EO.o \
	    LeapSecond.o Diameter.o $(HDATA)/Utility.o -L$(STARLINK)/lib -lhds \
	    -lems -lchr -lcnf $(F2CLIB) $(LGFORTRAN) $(NOVAS)/libnovas.a
	cp $(PIPELINE)/starCal $(NPOI)/bin/starCal

starCal.o: starCal.c Catalog.cc Catalog.h Star.ncc
	$(PP) -I$(STARLINK)/include -I$(HDATA) -I$(PIPELINE) -I$(NOVAS) \
	    -c starCal.c

clean:
	rm -fr *.o starAlias headSum geoSum genSum obsLog conLog ibcSum obcSum \
	    tcSum sdSum bgSum calVis2 calTAmp calTPhase con2cha cha2ascii lSec \
	    eoLast starCal *.ascii *.v2 *.triple
