.SUFFIXES: .o .f .for
-include make.inc

EXE = ../exe/
EXELIST = $(EXE)gpls$(EXESUFFIX) $(EXE)hklgen$(EXESUFFIX) $(EXE)calcpos$(EXESUFFIX) \
	$(EXE)testextn$(EXESUFFIX) $(EXE)gaussuper$(EXESUFFIX) $(EXE)gpls$(EXESUFFIX) \
	$(EXE)getvoigt$(EXESUFFIX) $(EXE)ito$(EXESUFFIX) $(EXE)ntreor$(EXESUFFIX) \
	$(EXE)linterp$(EXESUFFIX) 	#$(EXE)dicvol$(EXESUFFIX) 


GPOBJS = gpls.o smi10.o getval.o gauleg.o profval.o
HKOBJS = hklgen.o celcon.o extn.o index.o mult1.o netout.o order.o
SYMOBJS = gen_sym.o sgroup.o sglatc.o sglpak.o sglcen.o sgrmat.o \
	sgtrcf.o sgmtml.o sgoprn.o sgprnt.o sgerrs.o
CALCOBJS = calcpos.o
TESTOBJS = testextn.o tstext.o 
ITOSRC  = ito15/itomn115.for ito15/itomn315.for ito15/itosb215.for \
	ito15/itosb415.for ito15/itosb615.for ito15/itomn215.for \
	ito15/itosb315.for ito15/itosb515.for

blank: 
	@echo "Use "
	@echo "         make <platform>"
	@echo "to choose a build target, where <platform> can be linux or mac"
	@echo " "
	@echo "For other platforms, you will need to create a make.inc file (see examples)"
	@echo "\nThen use"
	@echo "      make all"
	@echo "\nTo make the logic programs use"
	@echo "      make logic"
	@echo "as well"

mac: copy-mac all

linux: copy-linux all

copy-mac:
	cp make.inc.mac make.inc

copy-linux:
	cp make.inc.linux make.inc

logic::
	cd srclogic; make


done: 
	@echo " "
	@echo "Compile completed"
	@echo " "

all: $(EXE) $(EXELIST) done

$(EXE)::
	-mkdir $(EXE)

$(EXE)hklgen$(EXESUFFIX): $(HKOBJS) $(SYMOBJS)
	$(FC) -o $(EXE)hklgen$(EXESUFFIX) $(HKOBJS) $(SYMOBJS)

$(EXE)gpls$(EXESUFFIX): $(GPOBJS)
	$(FC) -o $(EXE)gpls$(EXESUFFIX) $(GPOBJS)

$(EXE)calcpos$(EXESUFFIX): $(CALCOBJS)
	$(FC) -o $(EXE)calcpos$(EXESUFFIX) $(CALCOBJS)

$(EXE)testextn$(EXESUFFIX): $(TESTOBJS) $(SYMOBJS)
	$(FC) -o $(EXE)testextn$(EXESUFFIX) $(TESTOBJS) $(SYMOBJS)

$(EXE)gaussuper$(EXESUFFIX): gaussuper.f
	$(CC) -c malloc.c
	$(FC) -o $(EXE)gaussuper$(EXESUFFIX) $(FFLAGS) gaussuper.f malloc.o

$(EXE)ito$(EXESUFFIX): $(ITOSRC)
	$(FC) -o $(EXE)ito$(EXESUFFIX) $(FFLAGS) $(ITOSRC)

$(EXE)ntreor$(EXESUFFIX): treor/ntreor.for
	$(FC) -o $(EXE)ntreor$(EXESUFFIX) $(FFLAGS) treor/ntreor.for

# DICVOL06 is not distributed as source code. See ccp14 for 
# binaries
#$(EXE)dicvol$(EXESUFFIX): dicvol/dicvol91.for
#	$(FC) -o $(EXE)dicvol$(EXESUFFIX) $(FFLAGS) dicvol/dicvol91.for

$(EXE)getvoigt$(EXESUFFIX): getvoigt.f
	$(FC) -o $(EXE)getvoigt$(EXESUFFIX) $(FFLAGS) getvoigt.f

$(EXE)linterp$(EXESUFFIX): linterp.f
	$(CC) -c malloc.c
	$(FC) -o $(EXE)linterp$(EXESUFFIX) $(FFLAGS) linterp.f malloc.o

#calc2t is obsolete, replaced by calcpos
$(EXE)calc2t$(EXESUFFIX): calc2t.o
	$(FC) -o $(EXE)calc2t$(EXESUFFIX) calc2t.o

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

.for.o:
	$(FC) -c $(FFLAGS) $<

clean::
	-rm -f $(GPOBJS) $(HKOBJS) $(CALCOBJS) $(TESTOBJS) $(SYMOBJS) ito*.o malloc.o
	cd srclogic; make clean

distclean:: clean
	-rm -f $(EXELIST) make.inc
	cd srclogic; make distclean
