# Makefile LINUX Version

LIBS = -lm
FLIBS = -lf2c
FFLAGS = -DDOUBLE_UNDERSCORE
CFLAGS = -g -O -Wall -fpic
CC = gcc
FC = f77 -g -O

# (relative) path to include header files:
CC_INC = -I./

# (relative) path for executables:
BIN	= ../bin

# list of all target & object programs:

PRG = 	ddsmrg ddscut ddshrm ddsls\
	fgmtel fgmcal  fgmav fgmhrt\
	fgmls fgmiff fgmvec  igmvec fgmpos\
	fgmpsds fgmppdb fgmspdb fgmdp

OBJ =	libutil.o \
	ddsmrg.o ddscut.o ddshrm.o ddsls.o\
	fgmtel.o fgmcal.o fgmhrt.o fgmav.o\
	fgmls.o fgmvec.o fgmiff.o igmvec.o\
	fgmpos.o fgmpsds.o fgmppdb.o fgmdp.o

# rules for compiling:

.c.o:
	$(CC) $(FFLAGS) $(CFLAGS) $(CC_INC) -c $< -o $@
	chmod 0664 $@

.f.o:
	$(FC) -c $< -o $@

# rules for linking:

all: $(OBJ) $(PRG) clean

# programs for data processing 

fgmtel: 	fgmtel.o libutil.o libutil.h 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@  

fgmvec: 	fgmvec.o libutil.o libutil.h
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v
	chmod 0775 $(BIN)/$@

fgmcal: 	fgmcal.o libutil.o libutil.h 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v
	chmod 0775 $(BIN)/$@

fgmav: 	fgmav.o  libutil.o libutil.h 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

fgmls: 	fgmls.o  libutil.o libutil.h 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

igmvec:	 igmvec.o  libutil.o libutil.h 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v
	chmod 0775 $(BIN)/$@

fgmiff: 	fgmiff.o  libutil.o libutil.h 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

fgmpos:	fgmpos.o libutil.o libutil.h cotrans.h cotran_lib.o cotrans.o
	$(CC) $(FFLAGS) $@.o libutil.o cotran_lib.o cotrans.o -o $(BIN)/$@ -lf2c -v
	chmod 0775 $(BIN)/$@

fgmhrt:	fgmhrt.o libutil.o libutil.h cotrans.h cotran_lib.o 
	$(CC) $(FFLAGS) $@.o libutil.o cotran_lib.o -o $(BIN)/$@ $(FLIBS) -v

fgmpsds: 	ddsmrg fgmtel fgmcal fgmav fgmvec fgmpsds.o 
	$(CC) $@.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

fgmppdb:  ddsmrg fgmtel fgmcal fgmav fgmiff fgmppdb.o 
	$(CC) $@.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

fgmspdb:	fgmppdb
	rm -f $(BIN)/$@
	ln -s fgmppdb $(BIN)/$@
	chmod 0775 $(BIN)/$@

fgmdp: 	ddsmrg ddscut fgmtel fgmcal fgmav igmvec fgmdp.o 
	$(CC) $@.o -o $(BIN)/$@ -v 
	chmod 0775 $(BIN)/$@


# programs for handling auxiliary files

mrgatt:	 mrgatt.o cotran_lib.o 
	$(FC) $@.o cotran_lib.o -o $(BIN)/$@ $(FLIBS) -v 
	chmod 0775 $(BIN)/$@  

mrgorb:	 mrgorb.o cotran_lib.o 
	$(FC) $@.o cotran_lib.o -o $(BIN)/$@ $(FLIBS) -v
	chmod 0775 $(BIN)/$@

putsatt: 	ddshrm  mrgatt mrgorb putsatt.o 
	$(CC) $(FFLAGS) $@.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

putstof:	putsatt
	rm -f $(BIN)/$@
	ln -s putsatt $(BIN)/$@
	chmod 0775 $(BIN)/$@
 
putltof:	putsatt
	rm -f $(BIN)/$@
	ln -s putsatt $(BIN)/$@
	chmod 0775 $(BIN)/$@

# programs for handling DDS files

ddsmrg: 	ddsmrg.o libutil.h libutil.o
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

ddshrm: 	ddshrm.o libutil.h libutil.o
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

ddscut: 	ddscut.o libutil.h libutil.o
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

ddsls: 	ddsls.o libutil.h libutil.o 
	$(CC) $@.o libutil.o -o $(BIN)/$@ $(LIBS) -v 
	chmod 0775 $(BIN)/$@

clean: 
	@\rm $(OBJ)

