#
# Makefile for the Package LABSUP 
# for Linux with pthread, 
# AIX on RISC-based workstations and
# Solaris on SPARCStations.
#
# Modify it for correct dependences 
# by comment and de-comment, as required
# by your Operating System. 
#


##### MACROS #####

  CC      = gcc # Gnu C-compiler
# CC      = cc	# C-compiler


# FOR   = fort77  # Linux
  FOR   = f77     # Solaris
# FOR   = xlf     # AIX

#
# CFLAGS = -DLABSUP3D_AUX                             # OpenGL C-compiler option
  CFLAGS  = -DLABSUP3D_GLUT -I/usr/local/mesa/include # Mesa C-compiler option

# LIBPTH        = -lpthread             # Linux with pthread

# XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXi   # Linux
# XLIBS = -lm /usr/lpp/X11/lib/libX11.a		     # AIX 
  XLIBS = -lm -lX11 -lXi -lXext -L/usr/openwin/lib   # Solaris

# FLAGS = -I/usr/local/include                       # Linux 
  FLAGS = -I/usr/openwin/include                     # Solaris

# OpenGL Graphics Libraries
#
# LIBSGL  =  -lGL -lGLU -laux       


# Mesa Graphics Libraries
#
  LIBSGL  = -L/usr/local/mesa/lib -lglut -lMesaGLU -lMesaGL -lm   

DO      = do_der_a.o linsist.o
CLT     = clt_d_a.o linsist.o
PWS     = pws_d_a.o pws_d_b.o pwstools.o linsist.o  
TRI     = src.o
    
################# RULES ####################

all     :  gen_rand do_trian tri_qlty info_vic do_glder do_der \
           cltglder clt_der clt_der2 pwsglder pws_der funz_q18 \
           funz_clt funz_pws rk2tri exam2 exam3

gen_rand:  gen_rand.o 
	   $(CC) -o $@ gen_rand.o -lm

#---
do_trian:  do_trian.o 
	    $(CC) -o $@ do_trian.o -lm

#---
tri_qlty:  tri_qlty.o 
	    $(CC) -o $@ tri_qlty.o -lm

#---
info_vic:  info_vic.o 
	    $(CC) -o $@ info_vic.o -lm

#---
do_glder:  $(DO) do_glder.o 
	    $(CC) -o $@ do_glder.o $(DO) -lm

#---
do_der:   $(DO) do_der.o 
	    $(CC) -o $@ do_der.o $(DO) -lm

#---
cltglder:  $(CLT) cltglder.o 
	    $(CC) -o $@ cltglder.o $(CLT) -lm

#---
clt_der:   $(CLT) clt_der.o 
	    $(CC) -o $@ clt_der.o $(CLT) -lm

#---
clt_der2:  $(CLT) clt_der2.o 
	    $(CC) -o $@ clt_der2.o $(CLT) -lm

#---
pwsglder:  $(PWS) pwsglder.o 
	    $(CC) -o $@ pwsglder.o $(PWS) -lm

#---
pws_der:   $(PWS) pws_der.o
	    $(CC) -o $@ pws_der.o $(PWS) -lm

#---
funz_q18:  funz_q18.o
	    $(CC) -o $@ funz_q18.o -lm

#---
funz_clt:  funz_clt.o 
	    $(CC) -o $@ funz_clt.o -lm

#---
funz_pws:  funz_pws.o 
	    $(CC) -o $@ funz_pws.o -lm

#---
rk2tri:    rk2tri.o 
	    $(CC) -o $@ rk2tri.o -lm

#---
exam2:  exam2.o $(TRI)
	    $(FOR) -o $@ exam2.o $(TRI)

#---
exam3:  exam3.o $(TRI)
	    $(FOR) -o $@ exam3.o $(TRI) 

################# TARGETS ####################

# Linux with pthread
#
# labsup3d:  labsup3d.o
#	  $(CC) $(CFLAGS) -o $@ labsup3d.o\
#	  -L/usr/local/lib $(XLIBS) $(LIBSGL) $(LIBPTH) $(FLAGS)
            

# Solaris
#
  labsup3d:  labsup3d.o
	   $(CC) $(CFLAGS) -o $@ labsup3d.o $(XLIBS) $(LIBSGL) $(FLAGS) 


# AIX 
#
# labsup3d:  labsup3d.o
#	   $(CC) -o $@ labsup3d.o $(XLIBS) -L/usr/X11/lib $(LIBSGL) $(CFLAGS) 

.c.o:;  $(CC) $(CFLAGS) -c $<

.f.o:;  $(FOR) -c $<
clean:  
	-rm *.o rk2tri tri_qlty pwsglder pws_der gen_rand info_vic \
	funz_q18 funz_pws funz_clt do_trian do_glder do_der cltglder \
	clt_der clt_der2 exam2 exam3 labsup3d blocks.tmp

copy: 
	cp exam1_f.dat.ori exam1_f.dat 
	cp exam1_s.dat.ori exam1_s.dat 
	cp exam2.dat.ori exam2.dat 
	cp exam3.dat.ori exam3.dat
