# $Id: Makefile,v 1.13 1998/10/20 13:41:42 cthulhu Exp $

LIBCALC = libcalc.a
TARGET = $(LIBCALC)
TCLSOURCES = 
OBJECTS = gram.o scan.o eval.o calc.o rpn.o xxl_util.o \
  xxl_round.o xxl_sum.o xxl_max.o xxl_min.o xxl_count.o xxl_if.o xxl_upper.o \
  xxl_lower.o xxl_proper.o xxl_sumif.o xxl_time.o xxl_lookup.o
CCSOURCES = 
INCLUDES = calc.hh rpn.hh yydefines.h yydefines.hh wk1.hh xxl_defs.hh \
        xxl_util.hh
CSOURCES = eval.c 
CCSOURCES = calc.cc rpn.cc xxl_util.cc 
OTHERSOURCES = gram.y scan.l
SOURCES = $(CSOURCES) $(OTHERSOURCES)

include ../Makefile.options

$(TARGET): $(OBJECTS)
	ar $(AROPTIONS) $(LIBCALC) $(OBJECTS)
	ranlib $(LIBCALC)

clean:
	rm -f *.a *.o $(LIBCALC)  *~ scan.c gram.cc gram.h .depend

depend dep: 
	$(CPP) -M $(CCFLAGS) $(IFLAGS) $(CCSOURCES) $(CSOURCES) > .depend

.cc.o:
	$(CCC) $(CCFLAGS)  $(IFLAGS) -c $<

.c.o:
	$(CC) $(CCFLAGS)  $(IFLAGS) -c $<

scan.c: scan.l
	$(LEX) -oscan.c -i scan.l 

gram.o: gram.cc
	$(CCC) $(IFLAGS) -g gram.cc -o gram.o -c

gram.cc: gram.y scan.c
	$(YACC) -d gram.y 
	mv gram.tab.c gram.cc
	mv gram.tab.h gram.h

#
# include a dependency file if one exists
#
ifeq (.depend,$(wildcard .depend))
include .depend
endif

# $Log: Makefile,v $
# Revision 1.13  1998/10/20 13:41:42  cthulhu
# Makefiles now support centralized preferences via Makefile.options file.
#
# Revision 1.13  1998/10/20 12:24:28  cthulhu
# Centralized makefile options in one single options file.
#
# Revision 1.12  1997/01/07 01:07:27  aml
# Error propagation for formulas fixed.
# Edit operations in place.
#
# Revision 1.11  1997/01/02  16:15:26  aml
# Fixed unsufficient range of colunm width.
# First cut of vlookup and hlookup functions.
# Fixed bug in display routines.
#
# Revision 1.10  1996/12/11 21:39:37  aml
# Sumif implemented.
# Diverse time functions implemented.
# Fixed needtoscroll2 to avoid out of control scroll.
#
# Revision 1.9  1996/03/29 21:45:26  aml
# Changed key based scrolls to be synchronous. Work fine, but are somewhat slow.
# Fixed abnormaly in state machine after range defition causing canvas scroll.
# Solid, working version.
#
# Revision 1.8  1996/01/30  16:05:35  aml
# User interface for cell and range copy created.
# Improved user interface state machine when entering and viewing cells.
# Fixed unaligned accesses during formula parsing and io operations.
#
# Revision 1.7  1996/01/05  23:05:49  aml
# Cell references evaluated.
# Spreadsheet is recalculated at every change, by an arbitrary order.
# Reformulated program structure. Evaluation and reverse parsing
# are member functions of Sheet.
#
# Revision 1.6  1996/01/04  20:27:10  aml
# Range references parsed and reverse parsed.
#
# Revision 1.5  1996/01/03  23:06:59  aml
# Absolute and relative references to cells introduced.
# They are parsed and reverse parsed, not yet evaluated.
#
# Revision 1.4  1996/01/02  16:22:01  aml
# Formula compilation, evaluation and decompilation now work.
# Cells can be of type label, numerical formula or numbers.
#
# Revision 1.3  1995/12/30  16:40:18  aml
# First cut of formula compilation.
#
# Revision 1.2  1995/12/28  19:20:28  aml
# Created skeleton to merge calculation engine
#
# Revision 1.1  1995/12/28  18:28:27  aml
# Initial revision
#
# Revision 1.14  1995/10/23  23:09:19  aml
# Version 2.0.1
#
# Revision 1.13  1995/09/18  09:25:21  aml
# Last working release with inline expressions.
# Move to wk1 format will start after this.
#
# Revision 1.12  1995/08/18 19:37:40  aml
# Modularized to allow for multiple spreadsheets.
# Introduced bindings for cursors in main canvas.
# Introduced range_opers. Copy redone, cut created.
# Automatic positioning of active cell.
#
# Revision 1.11  1995/08/09 21:13:13  aml
# Created modular toolbars
# Changes in mouse state machine
# Completed format toolbar
#
# Revision 1.10  1995/08/09 03:41:26  aml
# Changed to tk4.0
# Changed mouse state machine to use right button
# Created standard and format toolbars.
#
# Revision 1.9  1995/08/08 02:36:15  aml
# Removed scan.c from C source files.
#
# Revision 1.8  1995/08/08 02:26:36  aml
# Fixed evaluation for loop-free spreadsheets.
# Got first version of cursor state machine working.
#
# Revision 1.7  1995/06/26  22:53:43  aml
# Bug
#
# Revision 1.6  1995/06/26  22:52:19  aml
# Change to C++
#
# Revision 1.5  1995/06/26  22:51:08  aml
# Change to C++
#
# Revision 1.4  1995/06/25  09:49:22  aml
# Minor fixes
#
# Revision 1.3  1995/06/25  00:32:39  aml
# Fixed Includes
#
# Revision 1.2  1995/06/25  00:09:10  aml
# First version of copy.
#
# Revision 1.1  1995/06/23  15:39:16  aml
# Initial revision
#
