#
#
#   General Makefile to the POLYS programme (UNIX using X11)
#
#
#   System dependent names, flags and options:
#   ==========================================
#
#   CC=		cc       most UNIX systems
#   CC=		xlc      IBM AIX systems
#   CC=		gcc      GNU C compiler
#
#   CFLAGS=	-O       most UNIX systems
#               -Q       creates inline information on the xlc compiler
#
#   PXLIBS=	-lX11 -lm          -these 2 flags are always required.
#   PXLIBS=	-lX11 -lm -lbsd    -required on many systems.
#                                   e.g.: Silicon Graphics IRIX, IBM AIX
#

CC=		gcc
CFLAGS=		-O
# CFLAGS=		-g
# CFLAGS=		-O -Q
# CFLAGS=		-g -fullwarn -prototypes

PXLIBS=		-L/usr/X11R6/lib/ -lX11 -lm -lbsd
PMLIBS=		-lm -lfl
POLYSDIR=	~/polys

POLYS=		polys

IO_OBJ=         sinput.o \
                fileoper.o

MM_OBJ=         lex.yy.o \
                polypars.tab.o \
                interaction.o \
                bondtable.o \
                calculate.o \
                coordinates.o \
                phidriver.o \
                doublehelix.o \
                expand.o \
                frac2carte.o \
                generate.o \
                helix.o \
                initialize.o \
                intcoord.o \
                invmat.o \
                conjugate.o \
                glyclink.o \
                linesearch.o \
                funcmin.o \
                matrix.o \
                minimize.o \
                orient.o \
                palloc.o \
                phelp.o \
                phimin.o \
                polys.o \
                potenergy.o \
                qsort.o \
                r_charmm.o \
                r_csd.o \
                r_dat.o \
                r_mm3.o \
                r_mono.o \
                r_pdb.o \
                r_polys.o \
                r_sybyl.o \
                prandom.o \
                readcoord.o \
                readparam.o \
                protate.o \
                ptimer.o \
                vbond.o \
                vtheta.o \
                vphi.o \
                vcon.o \
                vnonbond.o \
                writecoord.o 


POLYS_OBJ=	${IO_OBJ} ${MM_OBJ}

all:		polys

lex.yy.o:       polypars.tab.h  defs.h typs.h polys.h
y.tab.o:                 defs.h typs.h polys.h
phidriver.o:    polys.h  extern.h
doublehelix.o:  defs.h typs.h extern.h polys.h
generate.o:     polys.h  extern.h
intcoord.o:     polys.h  extern.h matrix.h
conjugate.o:    polys.h  extern.h
helix.o:        defs.h typs.h extern.h polys.h
initialize.o:   polys.h  extern.h
glyclink.o:     polys.h  extern.h
funcmin.o:
linesearch.o:   defs.h
matrix.o:       defs.h typs.h polys.h
minimize.o:     polys.h  extern.h
orient.o:       polys.h  extern.h
palloc.o:      
phimin.o:       polys.h  extern.h
polys.o:        defs.h typs.h vars.h   polys.h
qsort.o:        defs.h
prandom.o:      
potenergy.o:    defs.h typs.h extern.h matrix.h 
readcoord.o:    defs.h typs.h extern.h fileoper.h
readparam.o:    defs.h typs.h extern.h polys.h
protate.o:      defs.h typs.h extern.h polys.h
ptimer.o:	
vbond.o:        defs.h typs.h extern.h sinput.h fileoper.h matrix.h
vtheta.o:       defs.h typs.h extern.h sinput.h fileoper.h matrix.h
vphi.o:         defs.h typs.h extern.h sinput.h fileoper.h matrix.h
vcon.o:         defs.h typs.h extern.h sinput.h fileoper.h matrix.h
vnonbond.o:     defs.h typs.h extern.h          fileoper.h
writecoord.o:   defs.h typs.h extern.h          fileoper.h

polys:		${POLYS_OBJ}
		${CC} ${POLYS_OBJ} ${PMLIBS} -o ${POLYS}

clean:		
		rm -f *.o
