SUBDIRS = test-input elisp

ARCH=`uname -mrs`
DATE=`date '+%d %h %y'`

CXXFLAGS =
CXXFLAGS += -DARCH="\"$(ARCH)\"" -DDATE="\"$(DATE)\""
CXXFLAGS += -Wall
CXXFLAGS += -frepo
CXXFLAGS += -g
#CXXFLAGS += -pg
#CXXFLAGS += -O3

bin_PROGRAMS = dprog

include_HEADERS = cxx_dprog.hh
lib_LIBRARIES = libcxx_dprog.a


# main program
dprog_LDADD = @LEXLIB@

dprog_SOURCES =
dprog_SOURCES += lexer.ll
dprog_SOURCES += parser.yy
dprog_SOURCES += ast.hh ast.cc
dprog_SOURCES += visitor.hh
dprog_SOURCES += pretty_printer.hh pretty_printer.cc
dprog_SOURCES += range_checking.hh range_checking.cc
dprog_SOURCES += symbol_checking.hh symbol_checking.cc
dprog_SOURCES += type_checking.hh type_checking.cc
dprog_SOURCES += functions.hh functions.cc
dprog_SOURCES += codegen.hh codegen.cc
dprog_SOURCES += cxx_codegen.hh cxx_codegen.cc
dprog_SOURCES += options.hh options.cc
dprog_SOURCES += dprog.cc

# runtime system
libcxx_dprog_a_SOURCES = cxx_dprog.cc cxx_dprog.hh

# test programs
noinst_PROGRAMS =
noinst_PROGRAMS += pprint
noinst_PROGRAMS += ast_test
noinst_PROGRAMS += type_check_test
noinst_PROGRAMS += codegen_test
noinst_PROGRAMS += cxx_dprog_test
noinst_PROGRAMS += range_checking_test
noinst_PROGRAMS += symbol_checking_test
noinst_PROGRAMS += type_checking_test

TESTS =
TESTS += symbol_checking_test
TESTS += type_checking_test
TESTS += codegen_test
TESTS += cxx_dprog_test

pprint_LDADD = @LEXLIB@
pprint_SOURCES =
pprint_SOURCES += lexer.ll
pprint_SOURCES += parser.yy
pprint_SOURCES += ast.hh ast.cc
pprint_SOURCES += visitor.hh
pprint_SOURCES += pretty_printer.hh pretty_printer.cc
pprint_SOURCES += pprint.cc

ast_test_LDADD = @LEXLIB@
ast_test_SOURCES =
ast_test_SOURCES += lexer.ll
ast_test_SOURCES += parser.yy
ast_test_SOURCES += ast.hh ast.cc
ast_test_SOURCES += visitor.hh
ast_test_SOURCES += pretty_printer.hh pretty_printer.cc
ast_test_SOURCES += ast_test.cc

range_checking_test_LDADD = @LEXLIB@
range_checking_test_SOURCES =
range_checking_test_SOURCES += lexer.ll
range_checking_test_SOURCES += parser.yy
range_checking_test_SOURCES += ast.hh ast.cc
range_checking_test_SOURCES += visitor.hh
range_checking_test_SOURCES += pretty_printer.hh pretty_printer.cc
range_checking_test_SOURCES += range_checking.hh range_checking.cc
range_checking_test_SOURCES += range_checking_test.cc


type_check_test_LDADD = @LEXLIB@
type_check_test_SOURCES =
type_check_test_SOURCES += lexer.ll
type_check_test_SOURCES += parser.yy
type_check_test_SOURCES += ast.hh ast.cc
type_check_test_SOURCES += visitor.hh
type_check_test_SOURCES += pretty_printer.hh pretty_printer.cc
type_check_test_SOURCES += functions.hh functions.cc
type_check_test_SOURCES += cxx_codegen.hh cxx_codegen.cc
type_check_test_SOURCES += symbol_checking.hh symbol_checking.cc
type_check_test_SOURCES += type_checking.hh type_checking.cc
type_check_test_SOURCES += options.hh options.cc
type_check_test_SOURCES += type_check_test.cc

cxx_dprog_test_LDADD = -L. -lcxx_dprog -lefence
cxx_dprog_test_SOURCES =
cxx_dprog_test_SOURCES += cxx_dprog_test.cc

symbol_checking_test_SOURCES = 
symbol_checking_test_SOURCES += ast.hh ast.cc
symbol_checking_test_SOURCES += visitor.hh
symbol_checking_test_SOURCES += pretty_printer.hh pretty_printer.cc
symbol_checking_test_SOURCES += symbol_checking.hh symbol_checking.cc
symbol_checking_test_SOURCES += type_checking.hh type_checking.cc
symbol_checking_test_SOURCES += functions.hh functions.cc
symbol_checking_test_SOURCES += codegen.hh codegen.cc
symbol_checking_test_SOURCES += cxx_codegen.hh cxx_codegen.cc
symbol_checking_test_SOURCES += options.hh options.cc
symbol_checking_test_SOURCES += symbol_checking_test.cc

type_checking_test_SOURCES = 
type_checking_test_SOURCES += ast.hh ast.cc
type_checking_test_SOURCES += visitor.hh
type_checking_test_SOURCES += pretty_printer.hh pretty_printer.cc
type_checking_test_SOURCES += symbol_checking.hh symbol_checking.cc
type_checking_test_SOURCES += type_checking.hh type_checking.cc
type_checking_test_SOURCES += functions.hh functions.cc
type_checking_test_SOURCES += codegen.hh codegen.cc
type_checking_test_SOURCES += cxx_codegen.hh cxx_codegen.cc
type_checking_test_SOURCES += options.hh options.cc
type_checking_test_SOURCES += type_checking_test.cc

codegen_test_SOURCES =
codegen_test_SOURCES += ast.hh ast.cc
codegen_test_SOURCES += pretty_printer.hh pretty_printer.cc
codegen_test_SOURCES += codegen.hh codegen.cc
codegen_test_SOURCES += functions.hh functions.cc
codegen_test_SOURCES += symbol_checking.hh symbol_checking.cc
codegen_test_SOURCES += type_checking.hh type_checking.cc
codegen_test_SOURCES += cxx_codegen.hh cxx_codegen.cc
codegen_test_SOURCES += options.hh options.cc
codegen_test_SOURCES += codegen_test.cc

# misc.
EXTRA_DIST =
EXTRA_DIST += parser.h

MAINTAINERCLEANFILES =
MAINTAINERCLEANFILES += parser.cc 
MAINTAINERCLEANFILES += parser.h 
MAINTAINERCLEANFILES += lexer.cc

lexer.cc: parser.h

YFLAGS = -d -t -v



syntax highlighted by Code2HTML, v. 0.9.1