SRCDIR=.
BINDIR=/usr/bin
SRCMANDIR=$(SRCDIR)/Doc
MANDIR=/usr/man
CFGDIR=$(HOME)/.trk

CFLAG= -Wall -fomit-frame-pointer
LIBS= -lm -lncurses

all: trk showobs qthconv
	make -C Rotord all;
	gzip $(SRCMANDIR)/*.1
	gzip $(SRCMANDIR)/*.5
	gzip $(SRCMANDIR)/*.8
#

trk: trk.o tle.o time.o sgp.o t2.o sunmoon.o coord.o calc.o\
		 predict.o obs.o qthloc.o file.o
	gcc $(CFLAG) $(LIBS) -otrk trk.o tle.o time.c sgp.o\
		t2.o sunmoon.o coord.o calc.o predict.o obs.o\
		qthloc.o file.o

showobs.o: showobs.c
	gcc -c $(CFLAG) showobs.c

qthconv.o: qthconv.c
	gcc -c $(CFLAGS) qthconv.c


#


file.o: file.c
	gcc -c $(CFLAG) file.c

qthloc.o: qthloc.c
	gcc -c $(CFLAG) qthloc.c

obs.o: obs.c
	gcc -c $(CFLAG) obs.c

predict.o: predict.c
	gcc -c $(CFLAG) predict.c

calc.o: calc.c
	gcc -c $(CFLAG) calc.c

dbc.o: dbc.c
	gcc -c $(CFLAG) dbc.c

coord.o: coord.c
	gcc -c $(CFLAG) coord.c

sunmoon.o: sunmoon.c
	gcc -c $(CFLAG) sunmoon.c

t2.o: t2.c
	gcc -c $(CFLAG) t2.c

sgp.o: sgp.c
	gcc -c $(CFLAG) sgp.c

tle.o: tle.c
	gcc -c $(CFLAG) tle.c

time.o: time.c
	gcc -c $(CFLAG) time.c

trk.o: trk.c
	gcc -c $(CFLAG) trk.c

showobs: showobs.o qthloc.o
	gcc  $(CFLAGS) $(LIBS) -oshowobs showobs.o qthloc.o

qthconv: qthconv.o qthloc.o
	gcc $(CFLAGS) $(LIBS) -oqthconv qthconv.o qthloc.o

#

clean:
	rm *.o -f
	rm *~ -f
	rm core -f
	rm sched.dat -f
	make -C	Rotord clean;

distclean: clean
	rm -f ./trk
	rm -f ./showobs
	rm -f ./qthconv	
	rm -f ./Rotord/rotord
	rm -f ./Rotord/yd

arch: clean
	rm -f trk-0.3.5.tgz
	tar czvf trk-0.3.5.tgz *

#

install:
	cp $(SRCDIR)/trk $(BINDIR)
	chmod 755 $(BINDIR)/trk
	if [ ! -d $(CFGDIR) ]; then mkdir $(CFGDIR) ; fi;
	cp $(SRCDIR)/obs.dat $(CFGDIR)
	chmod 644 $(CFGDIR)/obs.dat
	cp $(SRCDIR)/sat.db $(CFGDIR)
	chmod 644 $(CFGDIR)/sat.db
	cp $(SRCMANDIR)/*.1.gz $(MANDIR)/man1
	cp $(SRCMANDIR)/*.5.gz $(MANDIR)/man1
	cp $(SRCMANDIR)/*.8.gz $(MANDIR)/man1
	if [ ! -e $(HOME)/.trk/trkOUTrot ] ;\
	then mkfifo $(HOME)/.trk/trkOUTrot ; fi;
	chmod 600 $(HOME)/.trk/trkOUTrot

	@echo " "
	@echo "trk installed."
	@echo "Configuration directory is" $(CFGDIR)
	@echo "No TLE file is provvided, get an actual one and put it in the"
	@echo "configuration directory"
	@echo "Sample of config file are in Tle/ (May be very old!)"
	@echo "(copy it as ~/.trk/trk.tle)"

uninstall:
	rm -f $(BINDIR)/trk
	rm -f $(BINDIR)/rotord
	rm -f $(BINDIR)/yd
	rm -f $(BINDIR)/rotctrlp
	rm -f $(MANDIR)/man1/trk.1.gz
	rm -f $(MANDIR)/man1/shoobs.1.gz
	rm -f $(MANDIR)/man1/qthconv.1.gz
	rm -f $(MANDIR)/man5/tle.5.gz
	rm -f $(MANDIR)/man5/obs.dat.5.gz
	rm -f $(MANDIR)/man8/yd.8.gz
	rm -f $(MANDIR)/man8/rotord.8.gz
	rm -f $(MANDIR)/man8/rotctrlp.8.gz
	rm -rf $(CFGDIR)
	rm -f -r $(HOME)/.Y/
	rm -f -r $(HOME)/.rotor/

	@echo " "
	@echo "trk, rotord, yd and rotcrtlp uninstalled; trk configuration"
	@echo "directory removed; man removed; rotord (and rotctrlp),"
	@echo "Y junction directory removed"
	@echo " "


install_rotord:
	cp $(SRCDIR)/Rotord/rotord $(BINDIR)
	chmod 755 $(BINDIR)/rotord
	cp $(SRCDIR)/Rotord/yd $(BINDIR)
	chmod 755 $(BINDIR)/yd
	cp $(SRCDIR)/Rotord/rotctrlp $(BINDIR)
	chmod 755 $(BINDIR)/rotctrlp

	rm -f -r $(HOME)/.Y/
	mkdir $(HOME)/.Y/

	rm -f -r $(HOME)/.rotor/
	mkdir $(HOME)/.rotor/

# Actually trk do not read back rotor, so out2 is unused; if the phylosophy of
# readback on trk will be adopted, than out2 will be pointed by a fifo callef 
# something like trkINrot
	mkfifo $(HOME)/.Y/out2
	chmod 600 $(HOME)/.Y/out2

	mkfifo $(HOME)/.rotor/rotin
	chmod 600 $(HOME)/.rotor/rotin
	mkfifo $(HOME)/.rotor/rotout
	chmod 600 $(HOME)/.rotor/rotout

	mkfifo $(HOME)/.rotor/rctrlpi
	chmod 600 $(HOME)/.rotor/rctrlpi
	mkfifo $(HOME)/.rotor/rctrlpo
	chmod 600 $(HOME)/.rotor/rctrlpo

	ln -s $(CFGDIR)/trkOUTrot $(HOME)/.Y/inL
	ln -s $(HOME)/.rotor/rotin $(HOME)/.Y/out
	ln -s $(HOME)/.rotor/rotout $(HOME)/.Y/in
	ln -s $(HOME)/.rotor/rctrlpo $(HOME)/.Y/inH
	ln -s $(HOME)/.rotor/rctrlpi $(HOME)/.Y/out1

	@echo " "
	@echo "rotord, yd, rotctrlp installed and connected"
	@echo "To use execute first rotord, than yd (probably in the init"
	@echo "sequence, than, when needed run trk and rotctrlp"
	@echo "yd and rotord configuration can be altered via rotctrlp"

