# Makefile for geotouch...

#-----------------------------------------------------------------------------
# Compiler options
#-----------------------------------------------------------------------------

SHELL=/bin/sh

HOME=$(SOFTHOME)
BINDIR=$(HOME)/bin
XHOME=/usr/X11R6

# set this to the path where lib/libnetcdf.a can be found
NETCDF=$(HOME)

DAT=`date +%Y.%m.%d`
TARFILE=geotouch-2.2_$(DAT).tar


CC		= gcc
##  CC		= cc

##  CPPFLAGS	= -ansi -Wall
CPPFLAGS	= -ansi -Wall -I. -I./lib

## CFLAGS	= -g -static $(CPPFLAGS) # -O
CFLAGS		= -g $(CPPFLAGS) # -O

F77		= g77
FFLAGS		= -g -O
LDFLAGS         = -L./lib -L$(NETCDF)/lib

AR		= ar
AR_OPTS		= rcv

RANLIB		= ranlib

#-----------------------------------------------------------------------------
# Directories and libraries
#-----------------------------------------------------------------------------

# allow addition of a suffix on the executable
#EXESUFFIX=.exe   # binary will be named geotouch.exe
EXESUFFIX=
#  for SUN/OS change the EXESUFFIX ".SUNOS"
#EXESUFFIX=".SUNOS"

# define paths for X libs and includes
# the -R not needed, but there just in case 
#   LXLIBS		= -L$(XLIBDIR) -R$(XHOME)/lib
XLIBDIR=$(XHOME)/lib 
LIBS=-lm 


LXLIBS		= -L$(XLIBDIR)
XINCDIR		= -I$(XHOME)/include

# define LIBS based on platform
# for Mac OSX
#LIBS=-lm

# for Linux
LIBS=-lm -lnsl

# for Sun/Solaris
#LIBS=-lm -lsocket -lposix4

XLIBS		= -lXext -lXaw -lXmu -lXt -lX11 
MISCLIBS	= -lnetcdf -lcutils -lcfoc -lcstr -lcolorquant

#-----------------------------------------------------------------------------
# Generic make target
#-----------------------------------------------------------------------------

all: tag_start geotouch tag_end

#-----------------------------------------------------------------------------
# file dependency table
#-----------------------------------------------------------------------------

readac.o:	readac.c jml.h
ReadFiles.o:	ReadFiles.c jml.h
mpic.o:		mpic.c mpic.h xsec.h Gen.h
init_foc.o:	init_foc.c  mpic.h xsec.h Gen.h jml.h
GetSubs.o:	GetSubs.c mpic.h xsec.h Gen.h
PlotSubs.o:	PlotSubs.c mpic.h xsec.h  Gen.h
XsecSubs.o:	XsecSubs.c mpic.h xsec.h Gen.h jml.h 
LatLon.o:	LatLon.c mpic.h xsec.h Gen.h
xsec.o:		xsec.c mpic.h xsec.h jml.h Gen.h
outpostM.o:	outpostM.c mpic.h xsec.h Gen.h post_color.h
dump_contour_file.o:	dump_contour_file.c mpic.h xsec.h Gen.h 
pretty_tics.o:	pretty_tics.c
outpostX.o:	outpostX.c pretty_tics.o mpic.h xsec.h Gen.h post_color.h
deli_subs.o:	deli_subs.c mpic.h xsec.h Gen.h 
contour.o:	contour.c Gen.h mpic.h xsec.h my_support.c my_surface.c \
		my_grdcontour.c
Gen.o:		Gen.c Gen.h GenP.h
geotouch.o:	geotouch.c mpic.h  Gen.h
user2pix.o:	user2pix.c jgraph.h 
Win_Subs.o:	Win_Subs.c mpic.h  Gen.h
slice_surf.o:	slice_surf.c mpic.h xsec.h Gen.h 
slice_imagelay.o:	slice_imagelay.c mpic.h xsec.h Gen.h 
Image_Tools.o:	Image_Tools.c mpic.h xsec.h Gen.h 

xmstartsub.o:	xmstartsub.c mpic.h xsec.h   Gen.h 
Do_Acts.o:	Do_Acts.c mpic.h xsec.h Gen.h jml.h
ternary_stuff.o:	ternary_stuff.c mpic.h xsec.h Gen.h jml.h 
do_mouse.o:	do_mouse.c mpic.h xsec.h  Gen.h
newwind.o:	newwind.c mpic.h xsec.h   Gen.h
Plot_Wells.o:	Plot_Wells.c mpic.h xsec.h Gen.h jml.h post_color.h
get_colors.o:	get_colors.c mpic.h xsec.h Gen.h jml.h post_color.h
rotwidget.o:	rotwidget.c rotwidget.h rotwidgetP.h
rotate.o:	rotate.c rotate.h
fsel.o:		fsel.c fsel.h fselP.h
spin.o:		spin.c rotate.h rotwidget.h rotwidgetP.h jml.h mpic.h Gen.h
spin_ps.o:	spin_ps.c rotate.h rotwidget.h rotwidgetP.h jml.h mpic.h Gen.h
scale_image.o:	scale_image.c image_stuff.h
focal_selection.o:	focal_selection.c mpic.h jml.h focal_param.h
foc_params.o:	foc_params.c focal_param.h
great_stuff.o:	great_stuff.c
LegendWin.o:	LegendWin.c
jindexx.o:	jindexx.c
inpoly.o:	inpoly.c jutil.h geotouch.h

plane_intersect.o:	plane_intersect.c jutil.h geotouch.h

LIBRARIES = cstr colorquant cfoc cutils

GEOTOUCH = xmstartsub.o Do_Acts.o great_stuff.o ternary_stuff.o mpic.o GetSubs.o PlotSubs.o XsecSubs.o \
	LatLon.o xsec.o outpostM.o outpostX.o pretty_tics.o pattern_ps.o deli_subs.o \
	Gen.o util.o jspline.o do_mouse.o xlext.o user2pix.o \
	NewMenus.o contour.o Win_Subs.o slice_surf.o slice_imagelay.o  jaxes.o \
	Plot_Wells.o get_colors.o Rots.o xdip.o \
	mproject.o map_project.o utm.o hypo.o eigvct.o ellipse.o \
	simpX.o csorta.o citoxyz.o netcdf_subs.o ludecomp.o \
	  plane_intersect.o inpoly.o spin.o dump_contour_file.o prep_d2lab.o \
	Get_Stats.o stats.o MenuItems.o cascade.o spin_ps.o rotate.o \
	rotwidget.o fsel.o my_grdcontour.o my_surface.o my_support.o \
	tql2.o tred2.o sat_image.o Image_Tools.o init_foc.o scale_image.o foc_params.o focal_selection.o \
	jindexx.o LegendWin.o

.c.o:	geotouch.h
	@echo "Compiling" $< "..."
	$(CC) $(CPPFLAGS) $(CFLAGS) $(XINCDIR) -c $<
	@echo

.f.o:
	@echo "Compiling" $< "..."
	$(F77) $(FFLAGS) -c $<
	@echo

#-----------------------------------------------------------------------------
# Build commands - main binary and libraries
#-----------------------------------------------------------------------------

geotouch:	libs geotouch.o $(GEOTOUCH)
	$(CC) $(CFLAGS) geotouch.o $(GEOTOUCH) -o $(BINDIR)/geotouch$(EXESUFFIX) \
	$(LDFLAGS) $(LIBS) $(MISCLIBS) \
	$(LXLIBS) $(XLIBS)

libs:
	-mkdir lib
	for i in $(LIBRARIES) ; do \
	cd $$i; make; cd ..; \
	done;

#-----------------------------------------------------------------------------
# Build commands - tags
#-----------------------------------------------------------------------------

tag_start:
	@echo
	@echo "Compiling Geotouch (`date`)..."
	@echo

tag_end:
	@echo
	@echo "Compilation complete (`date`)"
	@echo

#-----------------------------------------------------------------------------
# Build commands - maintenance
#-----------------------------------------------------------------------------

distrib: clean
	rm -f $(TARFILE) $(TARFILE).gz
	tar cvf $(TARFILE) *.[ch] $(LIBRARIES) \
		Makefile star rdblarrow lib
	gzip $(TARFILE)

clean:
	for i in $(LIBRARIES); do \
	cd $$i; make clean; cd ..; \
	done
	rm -f  lib/lib*.a	
	rm -f *.o core

install:  geotouch
	cp ./geotouch$(EXESUFFIX) $(BINDIR)

#-----------------------------------------------------------------------------









