From 2bebca1c3fe897fb681e1853d7d565ecb0be8b52 Mon Sep 17 00:00:00 2001 From: dhuth Date: Mon, 13 Apr 2015 11:53:47 -0600 Subject: -- --- chill_run.cc | 9 +- configure.ac | 41 +++-- graph.hh | 2 +- test-chill/Makefile | 381 +++++++++++++++++++++++------------------- test-chill/testchill/chill.py | 3 +- 5 files changed, 248 insertions(+), 188 deletions(-) diff --git a/chill_run.cc b/chill_run.cc index 45d2345..a3c9180 100644 --- a/chill_run.cc +++ b/chill_run.cc @@ -359,6 +359,7 @@ int main( int argc, char* argv[] ) #endif #ifdef BUILD_ROSE ((IR_cudaroseCode *)(ir_code))->commit_loop(myloop, lnum); + ((IR_roseCode*)(ir_code))->finalizeRose(); #elif BUILD_SUIF ((IR_cudasuifCode *)(ir_code))->commit_loop(myloop, lnum); #endif @@ -374,14 +375,16 @@ int main( int argc, char* argv[] ) lnum_end = get_loop_num_end(L); DEBUG_PRINT("calling ROSE code gen? loop num %d - %d\n", lnum_start, lnum_end); #endif -#endif + #ifdef BUILD_ROSE finalize_loop(lnum_start, lnum_end); //((IR_roseCode*)(ir_cide))->commit_loop(myloop, lnum); ((IR_roseCode*)(ir_code))->finalizeRose(); - //#elif BUILD_SUIF - //((IR_suifCode*)(ir_code))->commit_loop(myloop, lnum); + #elif BUILD_SUIF + ((IR_suifCode*)(ir_code))->commit_loop(myloop, lnum); #endif + +#endif delete ir_code; } #ifdef PYTHON diff --git a/configure.ac b/configure.ac index 6f79d1b..f40c87c 100644 --- a/configure.ac +++ b/configure.ac @@ -19,35 +19,46 @@ AM_PATH_PYTHON([2.7],[ [`${PYTHON} -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`]) AC_SUBST([PYTHON_LIBDIR], [`${PYTHON} -c "from distutils import sysconfig; print(sysconfig.get_config_var('LIBDIR'))"`]) - AC_SUBST([with_python],["yes"])],[ - AC_SUBST([with_python],["no"])]) + AC_SUBST([python_builds],[yes])],[ + AC_SUBST([python_builds],[no])]) +#AC_ARG_ENABLE([cuda],[ +# AS_HELP_STRING([--enable-cuda],[builds cudachill])],[ +# AS_IF([test "x$enableval" != xno],[ +# AC_SUBST([enable_cuda],[yes])])]) + AC_ARG_ENABLE([cuda],[ - AS_HELP_STRING([--enable-cuda],[builds cudachill])],[ + AS_HELP_STRING([--enable-cuda],[builds cudachill]) + ],[ AS_IF([test "x$enableval" != xno],[ - AC_SUBST([enable_cuda],[yes])],[])]) + AC_SUBST([enable_cuda],[yes])])]) + AM_CONDITIONAL([CUDACHILL_OPT],[test "x$enable_cuda" == xyes]) AC_ARG_ENABLE([coverage],[ - AS_HELP_STRING([--enable-coverage],[enables coverage testing])],[ - + AS_HELP_STRING([--enable-coverage],[enables coverage testing]) + ],[ AS_IF(["x$enableval" != xno],[ AC_SUBST([enable_coverage],[yes]) AC_SUBST([CFLAGS],["-g -fprofile-arcs -ftest-coverage"]) AC_SUBST([CPPFLAGS],["-g -fprofile-arcs -ftest-coverage"])],[])]) AC_ARG_WITH([rose],[ - AS_HELP_STRING([--with-rose],[set rose home])],[ + AS_HELP_STRING([--with-rose],[set rose home]) + ],[ AC_SUBST([ROSEHOME], [$withval]) - AC_DEFINE([BUILD_ROSE],[],[Use ROSE])],[ + AC_DEFINE([BUILD_ROSE],[],[Use ROSE]) + ],[ AC_SUBST([ROSEHOME], ["${ROSEHOME}"]) AC_DEFINE([BUILD_ROSE],[],[Use ROSE])]) AC_ARG_WITH([boost],[ - AS_HELP_STRING([--with-boost],[set boost home])],[ - AC_SUBST([BOOSTHOME], [$withval])],[ + AS_HELP_STRING([--with-boost],[set boost home]) + ],[ + AC_SUBST([BOOSTHOME], [$withval]) + ],[ AC_SUBST([BOOSTHOME], ["${BOOSTHOME}"])]) AC_ARG_WITH([omega],[ @@ -56,7 +67,8 @@ AC_ARG_WITH([omega],[ AC_SUBST([OMEGAHOME], ["$(pwd)/omega"])]) AC_ARG_WITH([python],[ - AS_HELP_STRING([--with-python],[set python as the interface languge])],[ + AS_HELP_STRING([--with-python],[set python as the interface languge]) + ],[ AC_SUBST([interface_lang],[python]) ],[ AC_SUBST([interface_lang],[default])]) @@ -68,13 +80,18 @@ AC_ARG_WITH([lua],[ ],[ AC_SUBST([LUAHOME], ["${LUAHOME}"])]) +AC_ARG_WITH([script],[ + AS_HELP_STRING([--with-script],[set the legacy scripting language as the interface language (CHiLL only)]), + ],[ + AC_SUBST([interface_lang],[default])]) + #AC_ARG_WITH([interface],[ # AS_HELP_STRING([--with-interface],[select interface language])],[ # AC_SUBST([interface_lang],[$withval])],[ # AC_SUBST([interface_lang],[default])]) AS_IF([test "x$interface_lang" == xdefault],[ - AS_IF([test "x$enable_cuda" != xno],[ + AS_IF([test "x$enable_cuda" == xyes],[ AC_SUBST([use_python],[no]) AC_SUBST([use_lua],[yes]) ],[ diff --git a/graph.hh b/graph.hh index 504c147..a7b80e9 100644 --- a/graph.hh +++ b/graph.hh @@ -76,7 +76,7 @@ template std::ostream& operator<<(std::ostream &os, const Graph &g) { for (int i = 0; i < g.vertex.size(); i++) for (typename Graph::EdgeList::const_iterator j = g.vertex[i].second.begin(); j != g.vertex[i].second.end(); j++) { - os << i+1 << "->" << j->first+1 << ":"; + os << "s" << i << "->" << j->first << ":"; for (typename std::vector::const_iterator k = j->second.begin(); k != j->second.end(); k++) os << " " << *k; os << std::endl; diff --git a/test-chill/Makefile b/test-chill/Makefile index d7238e8..7f2c8b5 100644 --- a/test-chill/Makefile +++ b/test-chill/Makefile @@ -1,210 +1,251 @@ -### ### -### SVN variables ### -### ### -SVN_USER=dhuth - -### ### -### Notification ### -### (not implemented yet) ### -NOTIFY_ON_FAILURE=False - - - -### Derived variables from config ### -CHILLHOME?=$(STAGING_DIR)/chill -SVN_CHILL=svn+ssh://$(SVN_USER)@shell.cs.utah.edu/uusoc/facility/res/hallresearch/svn_repo/resRepo/projects/chill -SVN_CHILL_DEV=$(SVN_CHILL)/branches/cuda-chill-rose -SVN_CHILL_RELEASE=$(SVN_CHILL)/release -CHILL_DEV_SRC=$(STAGING_DIR)/chill-dev -CHILL_RELEASE_SRC=$(STAGING_DIR)/chill-release -OMEGAHOME?=$(STAGING_DIR)/omega -SVN_OMEGA=svn+ssh://$(SVN_USER)@shell.cs.utah.edu/uusoc/facility/res/hallresearch/svn_repo/resRepo/projects/omega -SVN_OMEGA_DEV=$(SVN_OMEGA)/branches/cuda-omega-rose -SVN_OMEGA_RELEASE=$(SVN_OMEGA)/release -OMEGA_DEV_SRC=$(STAGING_DIR)/omega-dev -OMEGA_RELEASE_SRC=$(STAGING_DIR)/omega-release - - -### Staging ### -STAGING_DIR=$(shell pwd)/.staging -STAGING_DIR_BIN=$(STAGING_DIR)/bin -STAGING_DIR_WD=$(STAGING_DIR)/wd - - -### Local ### -UNIT_TEST_DIR=$(shell pwd)/unit-tests/ -CHILL_DEV_TESTCASE_DIR=$(shell pwd)/test-cases/chill -CHILL_DEV_TESTCASES_SCRIPT=$(shell find $(CHILL_DEV_TESTCASE_DIR) -name "*.script") -CHILL_DEV_TESTCASES_STDOUT=$(patsubst %.script,%.stdout,$(CHILL_DEV_TESTCASES_SCRIPT)) - -### Python environment variables ### -PYTHON_2:=$(shell which python) -PYTHON_3:=$(shell which python3) - -ifneq ($(PYTHON_3),) -PYTHON_3_VERSION=$(shell $(PYTHON_3) -c "import sysconfig; print(sysconfig.get_config_var('VERSION'))") + +.SUFFIXES: +.PHONY: all depend depend-cuda-chill clean veryclean cuda-chill +.PHONY: chill + +CC = g++ +CFLAGS = -g -Wno-write-strings +DEPENDENCE_CFLAGS = -M +OMEGAHOME=./omega + +ifdef TEST_COVERAGE + CFLAGS := $(CFLAGS) -fprofile-arcs -ftest-coverage endif -PYTHON_2_VERSION=$(shell $(PYTHON_2) -c "import sysconfig; print sysconfig.get_config_var('VERSION')") -PYTHON_VERSION=$(firstword $(PYTHON_3_VERSION) $(PYTHON_2_VERSION)) -PYTHON=$(shell which python$(PYTHON_VERSION)) -### ---------------------------- ### - - -EXPORT=export CHILL_DEV_SRC=$(CHILL_DEV_SRC); \ - export CHILL_RELEASE_SRC=$(CHILL_RELEASE_SRC); \ - export OMEGA_DEV_SRC=$(OMEGA_DEV_SRC); \ - export OMEGA_RELEASE_SRC=$(OMEGA_RELEASE_SRC); \ - export STAGING_DIR_BIN=$(STAGING_DIR_BIN); \ - export STAGING_DIR_WD=$(STAGING_DIR_WD); - -### deump environment ### -# define quiet to shut this part up # -ifndef quiet -$(info notify on failure? $(NOTIFY_ON_FAILURE)) -$(info staging directory $(STAGING_DIR)) -$(info binary directory $(STAGING_DIR_BIN)) -$(info working directory $(STAGING_DIR_WD)) -$(info omega home $(OMEGAHOME)) -$(info chill home $(CHILLHOME)) -$(info chill svn dev repo $(SVN_CHILL_DEV)) -$(info chill svn release repo $(SVN_CHILL_RELEASE)) -$(info chill dev src $(CHILL_DEV_SRC)) -$(info chill release src $(CHILL_RELEASE_SRC)) -$(info omega svn dev repo $(SVN_OMEGA_DEV)) -$(info omega svn release repo $(SVN_OMEGA_RELEASE)) -$(info omega dev src $(OMEGA_DEV_SRC)) -$(info omega release src $(OMEGA_RELEASE_SRC)) -$(info python $(PYTHON)) -$(info unit tests $(UNIT_TEST_DIR)) -#$(info chill-dev test cases $(CHILL_DEV_TESTCASES_SCRIPT)) -#$(info chill-dev test case stdouts $(CHILL_DEV_TESTCASES_STDOUT)) + +# TODO auto-generate using config.h generated by autoconf? +CHILLVERSION = "\"0.2.0\"" +PYTHON=python #=$(shell `which python` ) +PYVERSION=$(shell $(PYTHON) -c "import sys; print(sys.version[:3])") # 2.6 +PYTHONVER = python$(PYVERSION) +PYTHONINCLUDE = $(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_python_inc())") +PYTHONLIBDIR = $(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_config_var('LIBDIR'))") +PYTHONCONFIG = $(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_config_var('LIBPL'))") +# SCRIPT_LANG = lua <-- supplied by the command line + + +# this creates a LUAHOME even if you don't have such a directory +ifeq ($(strip $(wildcard $(LUAHOME))),) +LUAHOME = $(HOME)/lua endif -### ----------------- ### +LUA_PATH = -L${LUAHOME}/lib -DIRTY_EXTS=pyc o log pickle -DIRTY_FILES=$(foreach de,$(DIRTY_EXTS),$(shell find . -name "*.$(de)")) -DIRTY_DIRS=$(shell find . -name '__pycache__' -and -type d) $(STAGING_DIR) pylang coverage_report -CORE_TESTS:=_extract util gcov _cpp_validate_env cpp_validate test __main__ -OMEGA_TESTS:=omega -CHILL_TESTS:=chill +# where do include files live +INC_PATH = -I${PYTHONINCLUDE} -I${OMEGAHOME}/include -I${LUAHOME}/include -CORE_TESTS:=$(addsuffix .py,$(addprefix unit-tests/test_,$(CORE_TESTS))) -OMEGA_TESTS:=$(addsuffix .py,$(addprefix unit-tests/test_,$(OMEGA_TESTS))) -CHILL_TESTS:=$(addsuffix .py,$(addprefix unit-tests/test_,$(CHILL_TESTS))) +# where do libraries live +LIB_PATH = -L${OMEGAHOME}/code_gen/obj -L${OMEGAHOME}/omega_lib/obj +# seemingly not needed -L${PYTHONCONFIG} -### The all target ### -.PHONY: all -all: - $(MAKE) clean quiet=1 - $(MAKE) install quiet=1 -### This will install the chill_test module ### -.PHONY: install -install: pylang - $(PYTHON) makeparser.py - #TODO: maybe run a setup or something +CORE_LIBS = -lm -lcodegen -lomega +RUNNER_LIBS = -llua -ldl -lreadline -lhistory -lpthread -ldl -lutil -lm -l${PYTHONVER} +TDLHOME = ${ROSEHOME}/libltdl +BOOST_DATE_TIME_LIB = -lboost_date_time +BOOST_FILESYSTEM_LIB = -lboost_filesystem +BOOST_LDFLAGS = -L${BOOSTHOME}/lib +BOOST_PROGRAM_OPTIONS_LIB = -lboost_program_options +BOOST_REGEX_LIB = -lboost_regex +BOOST_SYSTEM_LIB = -lboost_system +BOOST_THREAD_LIB = -lboost_thread +BOOST_WAVE_LIB = -lboost_wave -### This will uninstall teh chill_test module ### -.PHONY: uninstall -uninstall: - #TODO: can python modules be uninstalled? +ROSE_LIBS = -lrose $(BOOST_LDFLAGS) $(BOOST_DATE_TIME_LIB)\ + $(BOOST_THREAD_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_PROGRAM_OPTIONS_LIB)\ + $(BOOST_REGEX_LIB) $(BOOST_SYSTEM_LIB) $(BOOST_SERIALIZATION_LIB) \ + $(BOOST_WAVE_LIB) -lrt -ldl +# Source files common to both chill and cuda-chill +CORE_SRCS = dep.cc omegatools.cc irtools.cc loop.cc loop_basic.cc loop_datacopy.cc loop_unroll.cc loop_tile.cc loop_extra.cc +LIB_SRCS = $(CORE_SRCS) -### Simply removes all files listed in DIRTY_FILES ### -.PHONY: clean -clean: - rm -rf $(DIRTY_FILES) - rm -rf $(DIRTY_DIRS) +# files that will be generated by bison, flex, and make that need to be removed at clean. +GENERATED_SRCS = parser.tab.hh parser.tab.cc parse_expr.yy.cc parse_expr.ll.hh parse_expr.tab.cc parse_expr.tab.hh Makefile.deps +# object files that are specific to lua or python builds. -- This is used so that SCRIPT_LANG does not need to be specified during clean +ORPHAN_OBJS = chill_run_util.o chillmodule.o parse_expr.tab.o parse_expr.yy.o + +# files used in chill and cuda-chill interfaces +ifeq ($(SCRIPT_LANG),lua) + RUNNER_SRCS = chill_run.cc chill_env.cc +else + ifeq ($(SCRIPT_LANG),python) + RUNNER_SRCS = chill_run.cc chillmodule.cc + else + RUNNER_SRCS = chill_run.cc chill_env.cc + endif +endif + +# files used in chill but not cuda-chill +IR_CHILL_SRCS = ir_rose.cc ir_rose_utils.cc +ifeq ($(SCRIPT_LANG),lua) + YACC_SRCS = parse_expr.yy.cc parse_expr.tab.cc + CHILL_RUNNER_SRCS = chill_run_util.cc + CHILL_SRCS = $(CORE_SRCS) $(IR_CHILL_SRCS) $(CHILL_RUNNER_SRCS) $(RUNNER_SRCS) +else + ifeq ($(SCRIPT_LANG),python) + YACC_SRCS = parse_expr.yy.cc parse_expr.tab.cc + CHILL_RUNNER_SRCS = chill_run_util.cc + CHILL_SRCS = $(CORE_SRCS) $(IR_CHILL_SRCS) $(CHILL_RUNNER_SRCS) $(RUNNER_SRCS) + else + YACC_SRCS = lex.yy.cc parser.tab.cc + CHILL_RUNNER_SRCS = + CHILL_SRCS = $(CORE_SRCS) $(IR_CHILL_SRCS) $(YACC_SRCS) $(RUNNER_SRCS) + endif +endif + +# source files for cuda-chill but not chill +CUDACHILL_ONLY_SRCS = mem_mapping_utils.cc loop_cuda_rose.cc +IR_CUDACHILL_SRCS = ir_rose.cc ir_rose_utils.cc ir_cudarose.cc ir_cuda_rose_utils.cc +CUDACHILL_RUNNER_SRCS = +CUDACHILL_SRCS = $(CORE_SRCS) $(CUDACHILL_ONLY_SRCS) $(IR_CUDACHILL_SRCS) $(RUNNER_SRCS) $(CUDACHILL_RUNNER_SRCS) + +# set interface language flags +ifeq ($(SCRIPT_LANG),lua) + RUNNER_EXTRA_CFLAGS = -DLUA +else + ifeq ($(SCRIPT_LANG),python) + RUNNER_EXTRA_CFLAGS = -DPYTHON + endif +endif + +depend-cuda-chill: CFLAGS := $(CFLAGS) -DCUDACHILL +cuda-chill: CFLAGS := $(CFLAGS) -DCUDACHILL + +ALL_SRCS = $(CORE_SRCS) $(YACC_SRCS) $(IR_CHILL_SRCS) $(CUDACHILL_ONLY_SRCS) $(IR_CUDACHILL_SRCS) $(RUNNER_SRCS) $(CHILL_RUNNER_SRCS) $(CUDACHILL_RUNNER_SRCS) +ALL_OBJS = $(ALL_SRCS:.cc=.o) $(ORPHAN_OBJS) + +RUNNER_DEFINES = -DLUA_USE_LINUX -DCHILL_BUILD_VERSION=$(CHILLVERSION) -DCHILL_BUILD_DATE="\"$(CHILL_BUILD_DATE)\"" + + +YACC_EXTRA_CFLAGS = + +##################################################################### +# compiler intermediate code specific definitions +##################################################################### -pylang: - git clone https://github.com/dhuth/pylang.git pylang-tmp - $(PYTHON) pylang-tmp/make_grammar_parsers.py - cp -r pylang-tmp/pylang pylang - rm -rf pylang-tmp -### Test the test harness ### -.PHONY: test -test: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) $(CHILL_DEV_SRC) $(CHILL_RELEASE_SRC) - @echo "-----------------------------------------------------------" - @echo "Note: This target tests the test suite it's self, not chill" - @echo "To test chill, run python -m testchill ..." - @echo "-----------------------------------------------------------" - - $(EXPORT) $(PYTHON) -m unittest $(OMEGA_TESTS) $(CORE_TESTS) $(CHILL_TESTS) - @ rm -rf $(STAGING_DIR) +#LIBS := $(LIBS) $(ROSE_LIBS) +LIB_PATH := $(LIB_PATH) -L${ROSEHOME}/lib -L${TDLHOME} +#LIB_SRCS := $(LIB_SRCS) # $(IR_SRCS) +INC_PATH := $(INC_PATH) -I${ROSEHOME}/include -I${BOOSTHOME}/include +YACC_EXTRA_CFLAGS := -DBUILD_ROSE +RUNNER_EXTRA_CFLAGS := $(RUNNER_EXTRA_CFLAGS) -DBUILD_ROSE -.PHONY: test-chill -test-chill: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) $(CHILL_DEV_SRC) $(CHILL_RELEASE_SRC) - - $(EXPORT) $(PYTHON) -m unittest $(OMEGA_TESTS) $(CHILL_TESTS) - @ rm -rf $(STAGING_DIR) +##################################################################### +# build rules +##################################################################### +YACC_OBJS = $(YACC_SRCS:.cc=.o) +RUNNER_OBJS = $(RUNNER_SRCS:.cc=.o) +CHILL_RUNNER_OBJS = $(CHILL_RUNNER_SRCS:.cc=.o) +CUDACHILL_RUNNER_OBJS = $(CUDACHILL_RUNNER_SRCS:.cc=.o) +LIB_OBJS = $(LIB_SRCS:.cc=.o) +IR_CHILL_OBJS = $(IR_CHILL_SRCS:.cc=.o) +IR_CUDACHILL_OBJS = $(IR_CUDACHILL_SRCS:.cc=.o) +CUDACHILL_ONLY_OBJS = $(CUDACHILL_ONLY_SRCS:.cc=.o) -.PHONY: test-omega -test-omega: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) - - $(EXPORT) $(PYTHON) -m unittest $(OMEGA_TESTS) - @ rm -rf $(STAGING_DIR) +CHILL_OBJS = $(CHILL_SRCS:.cc=.o) +CUDACHILL_OBJS = $(CUDACHILL_SRCS:.cc=.o) -.PHONY: test-core -test-core: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) $(CHILL_DEV_SRC) $(CHILL_RELEASE_SRC) make-omega - - $(EXPORT) $(PYTHON) -m unittest $(CORE_TESTS) - @ rm -rf $(STAGING_DIR) +all: + $(MAKE) depend-chill + $(MAKE) chill + $(MAKE) depend-cuda-chill + $(MAKE) cuda-chill + + +# can't these be combined to a superset of all source files? +depend: depend-cuda-chill + +depend-chill: $(LIB_SRCS) $(RUNNER_SRCS) $(CHILL_RUNNER_SRCS) $(YACC_SRCS) + $(CC) $(DEPENDENCE_CFLAGS) $(INC_PATH) $(LIB_SRCS) $(RUNNER_SRCS) $(CHILL_RUNNER_SRCS) $(YACC_SRCS) > Makefile.deps + +depend-cuda-chill: $(LIB_SRCS) $(RUNNER_SRCS) $(CUDACHILL_RUNNER_SRCS) + $(CC) $(DEPENDENCE_CFLAGS) $(INC_PATH) $(LIB_SRCS) $(RUNNER_SRCS) $(CUDACHILL_RUNNER_SRCS) > Makefile.deps + +libchill_xform.a: $(LIB_OBJS) $(IR_CHILL_OBJS) + ar -rs $@ $(LIB_OBJS) $(IR_CHILL_OBJS) + +libcudachill_xform.a: $(LIB_OBJS) $(IR_CUDACHILL_OBJS) $(CUDACHILL_ONLY_OBJS) + ar -rs $@ $(LIB_OBJS) $(IR_CUDACHILL_OBJS) $(CUDACHILL_ONLY_OBJS) + +%.o: %.cc + $(CC) $(CFLAGS) $(INC_PATH) $< -c -o $@ + + +clean: + @rm -fr $(ALL_OBJS) $(YACC_SRCS) $(GENERATED_SRCS) + +veryclean: + @rm -fr $(ALL_OBJS) $(YACC_SRCS) libchill_xform.a libcudachill_xform.a chill cuda-chill + + +cuda-chill: libcudachill_xform.a $(CUDACHILL_RUNNER_OBJS) $(RUNNER_OBJS) + $(CC) $(CFLAGS) $(LIB_PATH) $(LUA_PATH) $(CUDACHILL_RUNNER_OBJS) $(RUNNER_OBJS) $< $(CORE_LIBS) $(ROSE_LIBS) $(RUNNER_LIBS) -o $@ + +ifeq ($(SCRIPT_LANG),lua) +chill: libchill_xform.a $(CHILL_RUNNER_OBJS) $(RUNNER_OBJS) $(YACC_OBJS) + $(CC) $(CFLAGS) $(LIB_PATH) $(LUA_PATH) $(YACC_OBJS) $(CHILL_RUNNER_OBJS) $(RUNNER_OBJS) $< $(CORE_LIBS) $(ROSE_LIBS) $(RUNNER_LIBS) -o $@ +else +ifeq ($(SCRIPT_LANG),python) +chill: libchill_xform.a $(CHILL_RUNNER_OBJS) $(RUNNER_OBJS) $(YACC_OBJS) + $(CC) $(CFLAGS) $(LIB_PATH) $(YACC_OBJS) $(CHILL_RUNNER_OBJS) $(RUNNER_OBJS) $< $(CORE_LIBS) $(ROSE_LIBS) $(RUNNER_LIBS) -o $@ + +else +chill: libchill_xform.a $(YACC_OBJS) + $(CC) $(CFLAGS) $(LIB_PATH) $(YACC_OBJS) $< $(CORE_LIBS) $(ROSE_LIBS) -o $@ +endif +endif -.PHONY: -test-core-%: $(STAGING_DIR_BIN) - - $(EXPORT) $(PYTHON) -m unittest unit-tests/test_$*.py +lex.yy.cc: parser.ll parser.tab.hh + flex++ parser.ll +lex.yy.o: lex.yy.cc + $(CC) $(CFLAGS) -c $< -o $@ -.PHONY: test-debug -debug: - @### NOTHING ### +parser.tab.hh parser.tab.cc: parser.yy + bison -t -d $< +parser.tab.o: parser.tab.cc + $(CC) $(CFLAGS) $(YACC_EXTRA_CFLAGS) $(INC_PATH) -DCHILL_BUILD_DATE="\"$(CHILL_BUILD_DATE)\"" -c $< -o $@ -### benchmarking (don't use if your're not me) ### -$(CHILL_DEV_TESTCASES_STDOUT): %.stdout: %.script - $(EXPORT) cd $(STAGING_DIR_WD); $(STAGING_DIR_BIN)/chill $< > $@ +parse_expr.tab.cc: parse_expr.yy + bison -t -d parse_expr.yy -.PHONY: benchmark-dev -benchmark-dev: test-chill $(CHILL_DEV_TESTCASES_STDOUT) - # do nothing +parse_expr.tab.o: parse_expr.tab.cc + $(CC) $(CFLAGS) $(YACC_CFLAGS) $(INC_PATH) -o $@ -c parse_expr.tab.cc +parse_expr.yy.cc: parse_expr.tab.cc parse_expr.ll + flex -o parse_expr.yy.cc parse_expr.ll -### checking out and making directories ### -$(STAGING_DIR_BIN): - mkdir -p $(STAGING_DIR_BIN) - mkdir -p $(STAGING_DIR_WD) +parse_expr.yy.o: parse_expr.yy.cc + $(CC) $(CFLAGS) $(YACC_CFLAGS) $(INC_PATH) -o $@ -c parse_expr.yy.cc -$(CHILL_DEV_SRC): $(OMEGA_DEV_SRC) $(STAGING_DIR_BIN) - svn export $(SVN_CHILL_DEV) $(CHILL_DEV_SRC) +$(RUNNER_SRCS:.cc=.o): %.o: %.cc + $(CC) $(CFLAGS) $(RUNNER_EXTRA_CFLAGS) $(INC_PATH) $(RUNNER_DEFINES) $< -c -o $@ -$(CHILL_RELEASE_SRC): $(OMEGA_RELEASE_SRC) $(STAGIN_DIR_BIN) - svn export $(SVN_CHILL_RELEASE) $(CHILL_RELEASE_SRC) +$(CHILL_RUNNER_SRCS:.cc=.o): %.o: %.cc + $(CC) $(CFLAGS) $(RUNNER_EXTRA_CFLAGS) $(INC_PATH) $(RUNNER_DEFINES) $< -c -o $@ -$(OMEGA_DEV_SRC): $(STAGING_DIR_BIN) - svn export $(SVN_OMEGA_DEV) $(OMEGA_DEV_SRC) - #cd $(OMEGA_DEV_SRC); $(MAKE) depend - #cd $(OMEGA_DEV_SRC); $(MAKE) +$(CUDACHILL_RUNNER_SRCS:.cc=.o): %.o %.cc + $(CC) $(CFLAGS) $(RUNNER_EXTRA_CFLAGS) $(INC_PATH) $(RUNNER_DEFINES) $< -c -o $@ -$(OMEGA_RELEASE_SRC): $(STAGING_DIR_BIN) - svn export $(SVN_OMEGA_RELEASE) $(OMEGA_RELEASE_SRC) - #cd $(OMEGA_RELEASE_SRC); $(MAKE) depend - #cd $(OMEGA_RELEASE_SRC): $(MAKE) -.PHONY: make-omega -make-omega: - cd $(OMEGA_DEV_SRC); $(MAKE) depend - cd $(OMEGA_DEV_SRC); $(MAKE) - cd $(OMEGA_RELEASE_SRC); $(MAKE) depend - cd $(OMEGA_RELEASE_SRC); $(MAKE) +$(IR_SRCS:.cc=.o): %.o: %.cc + $(CC) -Wno-write-strings $(CFLAGS) $(INC_PATH) $< -c -o $@ + +ifeq ($(shell test -f Makefile.deps && echo "true"), true) +include Makefile.deps +endif -#$(STAGING_DIR): -# mkdir -p $(STAGING_DIR) +CHILL_BUILD_DATE = $(shell date +%m/%d/%Y) diff --git a/test-chill/testchill/chill.py b/test-chill/testchill/chill.py index 0e30149..833d524 100644 --- a/test-chill/testchill/chill.py +++ b/test-chill/testchill/chill.py @@ -146,13 +146,12 @@ class BuildChillTestCase(test.TestCase): util.shell('rm', ['-f', '*.gcda'], wd=self.config.chill_dir) util.shell('make clean', wd=self.config.chill_dir) - util.shell('make veryclean', wd=self.config.chill_dir) def run(self): """ Build chill """ - util.shell('make', ['clean'], wd=self.config.chill_dir) + util.shell('make', ['distclean'], wd=self.config.chill_dir) util.shell('./configure', self.config.config_args, wd=self.config.chill_dir) util.shell('make', [], wd=self.config.chill_dir) -- cgit v1.2.3-70-g09d2