# Makefile for Fmax

#
# C Source files in this directory
#
CSRCS = fmax.c functions.c symbols.c util.c misc.c eval.c\
	interface.c gammln.c converters.c $(OTHERSRCS)

#
# Athena Tools sources that we made local bug fixes for
#
OTHERSRCS = 

#
# All the source files
#
SRCS = $(CSRCS) grammar.y grammar.l fmax.ad

#
# Header files in this directory
#
HDRS = datatypes.h fmax.h fmaxplot.h interface.h $(OTHERHDRS)

#OTHERHDRS = MuMenu.h MuMenuP.h

#
# Object Files
OBJS = fmax.o functions.o symbols.o util.o misc.o eval.o grammar.o\
	interface.o gammln.o converters.o $(OTHEROBJS)
OTHEROBJS = 

#
# Some installation information
#
INSTALLDIR = /tmp
INSTALLLOCKER = fmax
HELPFILE = $(INSTALLDIR)/fmax.help
ADS = Makefile fmax.ad
RCSDIR = RCS
BDIR = /mit/dot/Backups/fmax
DEFINES = -DAt_Development
#
# System Information
#
TOP = /mit
MOTIFDIR = $(TOP)/motif
MOTIFINC = $(MOTIFDIR)/include
MOTIFLIBDIR = $(MOTIFDIR)/$(MACHINE)lib
ATDIR = $(TOP)/atdev
ATINC = $(ATDIR)/include
ATLIBDIR = $(ATDIR)/$(MACHINE)lib
ATLIB = /mit/atdev/src/Build/vax.M11/libAt_d.a

#
# compile with cc on the rt!!!
#
CC = gcc 
DEBUG = -g 
#INCLUDES = -I. -I$(ATINC) -I$(MOTIFINC)
INCLUDES = -I. -I../Build -I$(MOTIFINC)
CFLAGS =  $(DEBUG) $(DEFINES) $(INCLUDES)

#
# Libraries - Fmax requires the motif version of the At library
#
#
#LIBPATH = -L$(MOTIFLIBDIR) -L$(ATLIBDIR)
LIBPATH = -L$(MOTIFLIBDIR) 
LIBS = $(ATLIB) -lMu -lXmu -lXm -lXt -lX11 -lm 
DEBUGLIBS = -lAt_M11_d -lMu -lXmu -lXm -lXt -lX11 -lm 

Fmax: sources $(OBJS)
	rm -f Fmax
	$(CC) -o Fmax $(OBJS) $(LIBPATH) $(LIBS)

Fmax.debug: sources $(OBJS)
	rm -f Fmax
	$(CC) -o Fmax $(OBJS) $(LIBPATH) $(DEBUGLIBS)

sources: $(SRCS) $(HDRS)

grammar.o: y.tab.c lex.yy.c datatypes.h
	$(CC) -c y.tab.c $(CFLAGS) && mv y.tab.o grammar.o

y.tab.c: grammar.y
	yacc grammar.y

lex.yy.c: grammar.l
	lex grammar.l

depend:
	makedepend $(DEFINES) $(INCS) -I. $(CSRCS) $(HDRS)

backup:
	mv -f $(BDIR)/fmax.tar.Z $(BDIR)/fmax.tar.old.Z
	tar -cf $(BDIR)/fmax.tar $(SRCS) $(HDRS) $(ADS)
	compress $(BDIR)/fmax.tar

clean:
	rm -f *.o *~ y.tab.c lex.yy.c

tags:
	etags $(SRCS)

tar:
	tar cf /tmp/Fmax.tar Makefile $(SRCS) $(HDRS) && compress /tmp/Fmax.tar

saber_src:
	#load $(CSRCS) $(CFLAGS)

install:
	if [ ! -f $(INSTALLDIR) ] ; then
		attach $(INSTALLLOCKER)
	fi
	-mv $(INSTALLDIR)/$(MACHINE)bin/Fmax $(INSTALLDIR)/$(MACHINE)bin/Fmax.old
	strip Fmax
	-mv Fmax $(INSTALLDIR)/$(MACHINE)bin/Fmax
	sed -e 's,fmax.help,/mit/fmax/fmax.help,' fmax.help > /mit/fmax/fmax.help
	cp fmax.ad /mit/fmax/fmax.help

fmax.c: $(RCSDIR)/fmax.c,v
	co $(RCSDIR)/fmax.c,v

fmax.h: $(RCSDIR)/fmax.h,v
	co $(RCSDIR)/fmax.h,v

fmax.ad: $(RCSDIR)/fmax.ad,v
	co $(RCSDIR)/fmax.ad,v

fmax.help: $(RCSDIR)/fmax.help,v
	co $(RCSDIR)/fmax.help,v

fmaxplot.h: $(RCSDIR)/fmaxplot.h,v
	co $(RCSDIR)/fmaxplot.h,v

functions.c: $(RCSDIR)/functions.c,v
	co $(RCSDIR)/functions.c,v

symbols.c: $(RCSDIR)/symbols.c,v
	co $(RCSDIR)/symbols.c,v

util.c: $(RCSDIR)/util.c,v
	co $(RCSDIR)/util.c,v

misc.c: $(RCSDIR)/misc.c,v
	co $(RCSDIR)/misc.c,v

eval.c: $(RCSDIR)/eval.c,v
	co $(RCSDIR)/eval.c,v

MuMenu.c: $(RCSDIR)/MuMenu.c,v
	co $(RCSDIR)/MuMenu.c,v

MuMenu.h: $(RCSDIR)/MuMenu.h,v
	co $(RCSDIR)/MuMenu.h,v

MuMenuP.h: $(RCSDIR)/MuMenuP.h,v
	co $(RCSDIR)/MuMenuP.h,v

grammar.y: $(RCSDIR)/grammar.y,v
	co $(RCSDIR)/grammar.y,v

grammar.l: $(RCSDIR)/grammar.l,v
	co $(RCSDIR)/grammar.l,v

interface.c: $(RCSDIR)/interface.c,v
	co $(RCSDIR)/interface.c,v

gammln.c: $(RCSDIR)/gammln.c,v
	co $(RCSDIR)/gammln.c,v

datatypes.h: $(RCSDIR)/datatypes.h,v
	co $(RCSDIR)/datatypes.h,v

gnuplot.h: $(RCSDIR)/gnuplot.h,v
	co $(RCSDIR)/gnuplot.h,v

interface.h: $(RCSDIR)/interface.h,v
	co $(RCSDIR)/interface.h,v

# DO NOT DELETE THIS LINE -- make depend depends on it.

