# Makefile LINUX RedHat g77

LIBS = -lm
#FLIBS = -lf2c
FLIBS = -lm -lg2c
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\
	mrgatt mrgorb putsatt putstof putltof\
	fgmtel fgmcal fgmav fgmhrt fgmcut\
	fgmls fgmiff fgmvec igmvec fgmpos\
	fgmpsds fgmppdb fgmspdb fgmdp

OBJ =	libutil.o cotrans.o cotran_lib.o \
	ddsmrg.o ddscut.o ddshrm.o ddsls.o\
	mrgatt.o mrgorb.o putsatt.o\
	fgmtel.o fgmcal.o fgmhrt.o fgmav.o\
	fgmls.o fgmcut.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) $(FFLAGS) -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)/$@

fgmcut: fgmcut.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)/$@ -lg2c -lm -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)


