changeset 15099:b9b6a310ad97 gui

maint: periodic merge of default to gui
author John W. Eaton <jwe@octave.org>
date Fri, 03 Aug 2012 18:05:18 -0400
parents a132d206a36a (current diff) 909a2797935b (diff)
children d367f5ab0838
files src/Cell.cc src/Cell.h src/c-file-ptr-stream.cc src/c-file-ptr-stream.h src/comment-list.cc src/comment-list.h src/cutils.c src/cutils.h src/defun-dld.h src/defun-int.h src/display.cc src/display.h src/dynamic-ld.cc src/dynamic-ld.h src/gl-render.cc src/gl-render.h src/gl2ps-renderer.cc src/gl2ps-renderer.h src/gl2ps.c src/gl2ps.h src/gripes.cc src/gripes.h src/jit-ir.cc src/jit-ir.h src/jit-typeinfo.cc src/jit-typeinfo.h src/jit-util.cc src/jit-util.h src/ls-ascii-helper.cc src/ls-ascii-helper.h src/ls-hdf5.cc src/ls-hdf5.h src/ls-mat-ascii.cc src/ls-mat-ascii.h src/ls-mat4.cc src/ls-mat4.h src/ls-mat5.cc src/ls-mat5.h src/ls-oct-binary.cc src/ls-oct-binary.h src/ls-utils.cc src/ls-utils.h src/matherr.c src/mex.cc src/mex.h src/mexproto.h src/mxarray.in.h src/oct-errno.h src/oct-errno.in.cc src/oct-fstrm.cc src/oct-fstrm.h src/oct-hdf5.h src/oct-iostrm.cc src/oct-iostrm.h src/oct-lvalue.cc src/oct-lvalue.h src/oct-map.cc src/oct-map.h src/oct-obj.cc src/oct-obj.h src/oct-prcstrm.cc src/oct-prcstrm.h src/oct-procbuf.cc src/oct-procbuf.h src/oct-stdstrm.h src/oct-stream.cc src/oct-stream.h src/oct-strstrm.cc src/oct-strstrm.h src/oct.h src/octave.gperf src/ops.h src/procstream.cc src/procstream.h src/pt-jit.cc src/pt-jit.h src/siglist.c src/siglist.h src/sparse-xdiv.cc src/sparse-xdiv.h src/sparse-xpow.cc src/sparse-xpow.h src/token.cc src/token.h src/txt-eng-ft.cc src/txt-eng-ft.h src/txt-eng.h src/unwind-prot.cc src/unwind-prot.h src/xdiv.cc src/xdiv.h src/xgl2ps.c src/xnorm.cc src/xnorm.h src/xpow.cc src/xpow.h src/zfstream.cc src/zfstream.h
diffstat 104 files changed, 227 insertions(+), 175 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
-# Makefile for octave's src directory
+# Makefile for Octave's src directory
 #
 # Copyright (C) 1993-2012 John W. Eaton
 #
@@ -24,10 +24,12 @@
 AM_CPPFLAGS = \
   -I$(top_srcdir)/libcruft/misc \
   -I../liboctave -I$(top_srcdir)/liboctave \
+  -Ioctave-value -I$(srcdir)/octave-value \
+  -Iparse-tree -I$(srcdir)/parse-tree \
+  -Ioperators -I$(srcdir)/operators \
+  -Iinterp-core -I$(srcdir)/interp-core \
   -Iinterpfcn -I$(srcdir)/interpfcn \
   -Icorefcn \
-  -Ioctave-value -I$(srcdir)/octave-value \
-  -Iparse-tree -I$(srcdir)/parse-tree \
   -I. -I$(srcdir) \
   -I../libgnu -I$(top_srcdir)/libgnu \
   @CPPFLAGS@
@@ -66,33 +68,33 @@
 ## $(DEF_FILES), and building those requires all the sources
 ## (except builtins.cc) to be available.
 BUILT_SOURCES = \
-  $(BUILT_SOURCES_EXTRA) \
+  interp-core/mxarray.h \
+  interp-core/oct-errno.cc \
   interpfcn/defaults.h \
+  interpfcn/graphics-props.cc \
   interpfcn/graphics.h \
-  interpfcn/graphics-props.cc \
+  operators/ops.cc \
   parse-tree/lex.cc \
-  mxarray.h \
+  parse-tree/oct-gperf.h \
+  parse-tree/oct-parse.cc \
   oct-conf.h \
-  oct-errno.cc \
-  oct-gperf.h \
-  parse-tree/oct-parse.cc \
-  ops.cc \
   version.h \
+  $(BUILT_SOURCES_EXTRA) \
   builtins.cc
 
 BUILT_DISTFILES = \
-  oct-gperf.h \
+  parse-tree/oct-gperf.h \
   parse-tree/oct-parse.h
 
 ## Files that are created during build process and installed,
 ## BUT not distributed in tarball.
 BUILT_NODISTFILES = \
+  interp-core/mxarray.h \
+  interp-core/oct-errno.cc \
   interpfcn/defaults.h \
   interpfcn/graphics.h \
+  operators/ops.cc \
   oct-conf.h \
-  oct-errno.cc \
-  ops.cc \
-  mxarray.h \
   version.h \
   $(OPT_HANDLERS) \
   $(OPT_INC) \
@@ -101,13 +103,10 @@
 
 EXTRA_DIST = \
   Makefile.in \
-  defaults.in.h \
   DOCSTRINGS \
   find-defun-files.sh \
   gendoc.pl \
   genprops.awk \
-  gl2ps.c \
-  graphics.in.h \
   mk-errno-list \
   mk-pkg-add \
   mkbuiltins \
@@ -115,136 +114,36 @@
   mkoctfile.in.cc \
   mkoctfile.in.sh \
   mkops \
-  mxarray.in.h \
   oct-conf.in.h \
-  oct-errno.in.cc \
   octave-config.in.cc \
   octave-config.in.sh \
-  octave.gperf \
   version.in.h \
   $(BUILT_DISTFILES)
 
-JIT_INCLUDES = \
-  jit-util.h \
-  jit-typeinfo.h \
-  jit-ir.h \
-  pt-jit.h
-
 octinclude_HEADERS = \
-  Cell.h \
-  builtins.h \
-  c-file-ptr-stream.h \
-  comment-list.h \
-  cutils.h \
-  defun-dld.h \
-  defun-int.h \
-  display.h \
-  dynamic-ld.h \
-  gl-render.h \
-  gl2ps.h \
-  gl2ps-renderer.h \
   interpfcn/graphics-props.cc \
-  gripes.h \
-  ls-ascii-helper.h \
-  ls-hdf5.h \
-  ls-mat-ascii.h \
-  ls-mat4.h \
-  ls-mat5.h \
-  ls-oct-binary.h \
-  ls-utils.h \
-  mex.h \
-  mexproto.h \
-  oct-errno.h \
-  oct-fstrm.h \
-  oct-gperf.h \
-  oct-hdf5.h \
-  oct-iostrm.h \
-  oct-lvalue.h \
-  oct-map.h \
-  oct-obj.h \
-  oct-prcstrm.h \
-  oct-procbuf.h \
-  oct-stdstrm.h \
-  oct-stream.h \
-  oct-strstrm.h \
-  oct.h \
+  parse-tree/oct-gperf.h \
+  builtins.h \
   octave.h \
-  ops.h \
-  procstream.h \
-  siglist.h \
-  sparse-xdiv.h \
-  sparse-xpow.h \
-  token.h \
-  txt-eng-ft.h \
-  txt-eng.h \
-  unwind-prot.h \
-  xdiv.h \
-  xnorm.h \
-  xpow.h \
-  zfstream.h \
   $(OV_INCLUDES) \
   $(OV_SPARSE_INCLUDES) \
   $(PT_INCLUDES) \
-  $(INTERPFCN_INCLUDES) \
-  $(JIT_INCLUDES)
+	$(OPERATOR_INCLUDES) \
+  $(INTERP_CORE_INCLUDES) \
+  $(INTERPFCN_INCLUDES)
 
 nodist_octinclude_HEADERS = \
+  interp-core/mxarray.h \
   interpfcn/defaults.h \
   interpfcn/graphics.h \
   oct-conf.h \
-  mxarray.h \
   version.h
 
-JIT_SRC = \
-  jit-util.cc \
-  jit-typeinfo.cc \
-  jit-ir.cc \
-  pt-jit.cc
-
 DIST_SRC = \
-  Cell.cc \
-  c-file-ptr-stream.cc \
-  comment-list.cc \
-  cutils.c \
-  display.cc \
-  dynamic-ld.cc \
-  gl-render.cc \
-  gl2ps-renderer.cc \
-  gripes.cc \
-  ls-ascii-helper.cc \
-  ls-hdf5.cc \
-  ls-mat-ascii.cc \
-  ls-mat4.cc \
-  ls-mat5.cc \
-  ls-oct-binary.cc \
-  ls-utils.cc \
-  matherr.c \
-  mex.cc \
-  oct-fstrm.cc \
-  oct-iostrm.cc \
-  oct-lvalue.cc \
-  oct-map.cc \
-  oct-obj.cc \
-  oct-prcstrm.cc \
-  oct-procbuf.cc \
-  oct-stream.cc \
-  oct-strstrm.cc \
   octave.cc \
-  procstream.cc \
-  siglist.c \
-  sparse-xdiv.cc \
-  sparse-xpow.cc \
-  token.cc \
-  txt-eng-ft.cc \
-  unwind-prot.cc \
-  xdiv.cc \
-  xgl2ps.c \
-  xnorm.cc \
-  xpow.cc \
-  zfstream.cc \
   $(OCTAVE_VALUE_SRC) \
   $(PARSE_TREE_SRC) \
-  $(JIT_SRC) \
+  $(INTERP_CORE_SRC) \
   $(INTERPFCN_SRC) \
   $(COREFCN_SRC)
 
@@ -254,6 +153,7 @@
 include octave-value/module.mk
 include operators/module.mk
 include template-inst/module.mk
+include interp-core/module.mk
 include interpfcn/module.mk
 include corefcn/module.mk
 include dldfcn/module.mk
@@ -277,13 +177,13 @@
   $(TEMPLATE_INST_SRC)
 
 nodist_liboctinterp_la_SOURCES = \
-  builtins.cc \
+  interp-core/mxarray.h \
+  interp-core/oct-errno.cc \
   interpfcn/defaults.h \
   interpfcn/graphics.h \
-  mxarray.h \
+  operators/ops.cc \
+  builtins.cc \
   oct-conf.h \
-  oct-errno.cc \
-  ops.cc \
   version.h \
   $(OPT_INC)
 
@@ -309,8 +209,6 @@
   -bindir $(bindir) \
   $(LIBOCTINTERP_LINK_OPTS)
 
-display.df display.lo: CPPFLAGS += $(X11_FLAGS)
-
 ## FIXME: Does this rule need to be uncommented?
 #fft.df fft.lo fft2.df fft2.lo fftn.df fftn.lo: CPPFLAGS += $(FFTW_XCPPFLAGS)
 
@@ -358,27 +256,12 @@
 ## Special rules:
 ## Mostly for sources which must be built before rest of compilation.
 
-## defaults.h and oct-conf.h must depend on Makefile.  Calling configure
+## oct-conf.h must depend on Makefile.  Calling configure
 ## may change default/config values.  However, calling configure will also
 ## regenerate the Makefiles from Makefile.am and trigger the rules below.
 oct-conf.h: oct-conf.in.h Makefile
 	@$(do_subst_config_vals)
 
-## Don't use a pipeline to process gperf output since if gperf
-## is missing but sed is not, the exit status of the pipeline
-## will still be success and we will end up creating an empty
-## oct-gperf.h file.
-oct-gperf.h: octave.gperf
-	$(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1
-	$(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t
-	mv $@-t $@
-	rm -f $@-t1
-
-mxarray.h: mxarray.in.h Makefile
-	$(SED) < $< \
-	  -e "s|%OCTAVE_IDX_TYPE%|${OCTAVE_IDX_TYPE}|" > $@-t
-	mv $@-t $@
-
 version.h: version.in.h Makefile
 	$(SED) < $< \
 	  -e "s|%OCTAVE_API_VERSION_NUMBER%|${OCTAVE_API_VERSION_NUMBER}|" \
@@ -392,20 +275,6 @@
 	$(srcdir)/mkbuiltins $(DEF_FILES) > $@-t
 	mv $@-t $@
 
-ops.cc: $(OPERATORS_SRC) mkops
-	$(srcdir)/mkops $(OPERATORS_SRC) > $@-t
-	mv $@-t $@
-
-oct-errno.cc: oct-errno.in.cc Makefile
-	if test -n "$(PERL)"; then \
-	  $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \
-	elif test -n "$(PYTHON)"; then \
-	  $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \
-	else \
-	  $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \
-	fi
-	mv $@-t $@
-
 if AMCOND_ENABLE_DYNAMIC_LINKING
 DLDFCN_PKG_ADD_FILE = dldfcn/PKG_ADD
 
@@ -414,12 +283,6 @@
 	mv $@-t $@
 endif
 
-__fltk_uigetfile__.lo __fltk_uigetfile__.o: \
-  AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS))
-
-__init_fltk__.lo __init_fltk__.o: \
-  AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS))
-
 if AMCOND_BUILD_DOCS
 .DOCSTRINGS: $(ALL_DEF_FILES) gendoc.pl
 	if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \
rename from src/Cell.cc
rename to src/interp-core/Cell.cc
rename from src/Cell.h
rename to src/interp-core/Cell.h
rename from src/c-file-ptr-stream.cc
rename to src/interp-core/c-file-ptr-stream.cc
rename from src/c-file-ptr-stream.h
rename to src/interp-core/c-file-ptr-stream.h
rename from src/comment-list.cc
rename to src/interp-core/comment-list.cc
rename from src/comment-list.h
rename to src/interp-core/comment-list.h
rename from src/cutils.c
rename to src/interp-core/cutils.c
rename from src/cutils.h
rename to src/interp-core/cutils.h
rename from src/defun-dld.h
rename to src/interp-core/defun-dld.h
rename from src/defun-int.h
rename to src/interp-core/defun-int.h
rename from src/display.cc
rename to src/interp-core/display.cc
rename from src/display.h
rename to src/interp-core/display.h
rename from src/dynamic-ld.cc
rename to src/interp-core/dynamic-ld.cc
rename from src/dynamic-ld.h
rename to src/interp-core/dynamic-ld.h
rename from src/gl-render.cc
rename to src/interp-core/gl-render.cc
rename from src/gl-render.h
rename to src/interp-core/gl-render.h
rename from src/gl2ps-renderer.cc
rename to src/interp-core/gl2ps-renderer.cc
rename from src/gl2ps-renderer.h
rename to src/interp-core/gl2ps-renderer.h
rename from src/gl2ps.c
rename to src/interp-core/gl2ps.c
rename from src/gl2ps.h
rename to src/interp-core/gl2ps.h
rename from src/gripes.cc
rename to src/interp-core/gripes.cc
rename from src/gripes.h
rename to src/interp-core/gripes.h
rename from src/jit-ir.cc
rename to src/interp-core/jit-ir.cc
rename from src/jit-ir.h
rename to src/interp-core/jit-ir.h
rename from src/jit-typeinfo.cc
rename to src/interp-core/jit-typeinfo.cc
--- a/src/jit-typeinfo.cc
+++ b/src/interp-core/jit-typeinfo.cc
@@ -1162,7 +1162,7 @@
     llvm::BasicBlock *normal_block = fn.new_block ("normal");
 
     llvm::Value *zero = llvm::ConstantFP::get (scalar_t, 0);
-    llvm::Value *check = builder.CreateFCmpUEQ (zero, fn.argument (builder, 0));
+    llvm::Value *check = builder.CreateFCmpUEQ (zero, fn.argument (builder, 1));
     builder.CreateCondBr (check, warn_block, normal_block);
 
     builder.SetInsertPoint (warn_block);
rename from src/jit-typeinfo.h
rename to src/interp-core/jit-typeinfo.h
rename from src/jit-util.cc
rename to src/interp-core/jit-util.cc
rename from src/jit-util.h
rename to src/interp-core/jit-util.h
rename from src/ls-ascii-helper.cc
rename to src/interp-core/ls-ascii-helper.cc
rename from src/ls-ascii-helper.h
rename to src/interp-core/ls-ascii-helper.h
rename from src/ls-hdf5.cc
rename to src/interp-core/ls-hdf5.cc
rename from src/ls-hdf5.h
rename to src/interp-core/ls-hdf5.h
rename from src/ls-mat-ascii.cc
rename to src/interp-core/ls-mat-ascii.cc
rename from src/ls-mat-ascii.h
rename to src/interp-core/ls-mat-ascii.h
rename from src/ls-mat4.cc
rename to src/interp-core/ls-mat4.cc
rename from src/ls-mat4.h
rename to src/interp-core/ls-mat4.h
rename from src/ls-mat5.cc
rename to src/interp-core/ls-mat5.cc
rename from src/ls-mat5.h
rename to src/interp-core/ls-mat5.h
rename from src/ls-oct-binary.cc
rename to src/interp-core/ls-oct-binary.cc
rename from src/ls-oct-binary.h
rename to src/interp-core/ls-oct-binary.h
rename from src/ls-utils.cc
rename to src/interp-core/ls-utils.cc
rename from src/ls-utils.h
rename to src/interp-core/ls-utils.h
rename from src/matherr.c
rename to src/interp-core/matherr.c
rename from src/mex.cc
rename to src/interp-core/mex.cc
rename from src/mex.h
rename to src/interp-core/mex.h
rename from src/mexproto.h
rename to src/interp-core/mexproto.h
new file mode 100644
--- /dev/null
+++ b/src/interp-core/module.mk
@@ -0,0 +1,138 @@
+EXTRA_DIST += \
+  interp-core/module.mk \
+  interp-core/gl2ps.c \
+  interp-core/mxarray.in.h \
+  interp-core/oct-errno.in.cc
+
+JIT_INCLUDES = \
+  interp-core/jit-util.h \
+  interp-core/jit-typeinfo.h \
+  interp-core/jit-ir.h \
+  interp-core/pt-jit.h
+
+INTERP_CORE_INCLUDES = \
+  interp-core/Cell.h \
+  interp-core/c-file-ptr-stream.h \
+  interp-core/comment-list.h \
+  interp-core/cutils.h \
+  interp-core/defun-dld.h \
+  interp-core/defun-int.h \
+  interp-core/display.h \
+  interp-core/dynamic-ld.h \
+  interp-core/gl-render.h \
+  interp-core/gl2ps-renderer.h \
+  interp-core/gl2ps.h \
+  interp-core/gripes.h \
+  interp-core/jit-ir.h \
+  interp-core/jit-typeinfo.h \
+  interp-core/jit-util.h \
+  interp-core/ls-ascii-helper.h \
+  interp-core/ls-hdf5.h \
+  interp-core/ls-mat-ascii.h \
+  interp-core/ls-mat4.h \
+  interp-core/ls-mat5.h \
+  interp-core/ls-oct-binary.h \
+  interp-core/ls-utils.h \
+  interp-core/mex.h \
+  interp-core/mexproto.h \
+  interp-core/mxarray.in.h \
+  interp-core/oct-errno.h \
+  interp-core/oct-fstrm.h \
+  interp-core/oct-hdf5.h \
+  interp-core/oct-iostrm.h \
+  interp-core/oct-lvalue.h \
+  interp-core/oct-map.h \
+  interp-core/oct-obj.h \
+  interp-core/oct-prcstrm.h \
+  interp-core/oct-procbuf.h \
+  interp-core/oct-stdstrm.h \
+  interp-core/oct-stream.h \
+  interp-core/oct-strstrm.h \
+  interp-core/oct.h \
+  interp-core/procstream.h \
+  interp-core/pt-jit.h \
+  interp-core/siglist.h \
+  interp-core/sparse-xdiv.h \
+  interp-core/sparse-xpow.h \
+  interp-core/txt-eng-ft.h \
+  interp-core/txt-eng.h \
+  interp-core/unwind-prot.h \
+  interp-core/xdiv.h \
+  interp-core/xnorm.h \
+  interp-core/xpow.h \
+  interp-core/zfstream.h \
+	$(JIT_INCLUDES)
+
+JIT_SRC = \
+  interp-core/jit-util.cc \
+  interp-core/jit-typeinfo.cc \
+  interp-core/jit-ir.cc \
+  interp-core/pt-jit.cc
+
+C_INTERP_CORE_SRC = \
+  interp-core/cutils.c \
+  interp-core/matherr.c \
+  interp-core/siglist.c \
+  interp-core/xgl2ps.c
+
+INTERP_CORE_SRC = \
+  interp-core/Cell.cc \
+  interp-core/c-file-ptr-stream.cc \
+  interp-core/comment-list.cc \
+  interp-core/display.cc \
+  interp-core/dynamic-ld.cc \
+  interp-core/gl-render.cc \
+  interp-core/gl2ps-renderer.cc \
+  interp-core/gripes.cc \
+  interp-core/jit-ir.cc \
+  interp-core/jit-typeinfo.cc \
+  interp-core/jit-util.cc \
+  interp-core/ls-ascii-helper.cc \
+  interp-core/ls-hdf5.cc \
+  interp-core/ls-mat-ascii.cc \
+  interp-core/ls-mat4.cc \
+  interp-core/ls-mat5.cc \
+  interp-core/ls-oct-binary.cc \
+  interp-core/ls-utils.cc \
+  interp-core/mex.cc \
+  interp-core/oct-fstrm.cc \
+  interp-core/oct-iostrm.cc \
+  interp-core/oct-lvalue.cc \
+  interp-core/oct-map.cc \
+  interp-core/oct-obj.cc \
+  interp-core/oct-prcstrm.cc \
+  interp-core/oct-procbuf.cc \
+  interp-core/oct-stream.cc \
+  interp-core/oct-strstrm.cc \
+  interp-core/procstream.cc \
+  interp-core/pt-jit.cc \
+  interp-core/sparse-xdiv.cc \
+  interp-core/sparse-xpow.cc \
+  interp-core/txt-eng-ft.cc \
+  interp-core/unwind-prot.cc \
+  interp-core/xdiv.cc \
+  interp-core/xnorm.cc \
+  interp-core/xpow.cc \
+  interp-core/zfstream.cc \
+  $(JIT_SRC) \
+	$(C_INTERP_CORE_SRC)
+
+## FIXME: I don't believe this rule actually fires
+display.df display.lo: CPPFLAGS += $(X11_FLAGS)
+
+## Special rules for sources which must be built before rest of compilation.
+interp-core/oct-errno.cc: interp-core/oct-errno.in.cc Makefile
+	if test -n "$(PERL)"; then \
+	  $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \
+	elif test -n "$(PYTHON)"; then \
+	  $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \
+	else \
+	  $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \
+	fi
+	mv $@-t $@
+
+interp-core/mxarray.h: interp-core/mxarray.in.h Makefile
+	$(SED) < $< \
+	  -e "s|%OCTAVE_IDX_TYPE%|${OCTAVE_IDX_TYPE}|" > $@-t
+	mv $@-t $@
+
rename from src/mxarray.in.h
rename to src/interp-core/mxarray.in.h
rename from src/oct-errno.h
rename to src/interp-core/oct-errno.h
rename from src/oct-errno.in.cc
rename to src/interp-core/oct-errno.in.cc
--- a/src/oct-errno.in.cc
+++ b/src/interp-core/oct-errno.in.cc
@@ -1,4 +1,4 @@
-// oct-errno.cc.in
+// DO NOT EDIT!  Generated automatically from oct-errno.in.cc by configure
 /*
 
 Copyright (C) 2005-2012 John W. Eaton
rename from src/oct-fstrm.cc
rename to src/interp-core/oct-fstrm.cc
rename from src/oct-fstrm.h
rename to src/interp-core/oct-fstrm.h
rename from src/oct-hdf5.h
rename to src/interp-core/oct-hdf5.h
rename from src/oct-iostrm.cc
rename to src/interp-core/oct-iostrm.cc
rename from src/oct-iostrm.h
rename to src/interp-core/oct-iostrm.h
rename from src/oct-lvalue.cc
rename to src/interp-core/oct-lvalue.cc
rename from src/oct-lvalue.h
rename to src/interp-core/oct-lvalue.h
rename from src/oct-map.cc
rename to src/interp-core/oct-map.cc
rename from src/oct-map.h
rename to src/interp-core/oct-map.h
rename from src/oct-obj.cc
rename to src/interp-core/oct-obj.cc
rename from src/oct-obj.h
rename to src/interp-core/oct-obj.h
rename from src/oct-prcstrm.cc
rename to src/interp-core/oct-prcstrm.cc
rename from src/oct-prcstrm.h
rename to src/interp-core/oct-prcstrm.h
rename from src/oct-procbuf.cc
rename to src/interp-core/oct-procbuf.cc
rename from src/oct-procbuf.h
rename to src/interp-core/oct-procbuf.h
rename from src/oct-stdstrm.h
rename to src/interp-core/oct-stdstrm.h
rename from src/oct-stream.cc
rename to src/interp-core/oct-stream.cc
rename from src/oct-stream.h
rename to src/interp-core/oct-stream.h
rename from src/oct-strstrm.cc
rename to src/interp-core/oct-strstrm.cc
rename from src/oct-strstrm.h
rename to src/interp-core/oct-strstrm.h
rename from src/oct.h
rename to src/interp-core/oct.h
rename from src/procstream.cc
rename to src/interp-core/procstream.cc
rename from src/procstream.h
rename to src/interp-core/procstream.h
rename from src/pt-jit.cc
rename to src/interp-core/pt-jit.cc
--- a/src/pt-jit.cc
+++ b/src/interp-core/pt-jit.cc
@@ -1904,4 +1904,27 @@
 %! assert (all (m == expected));
 %! assert (result == sum (expected (:)));
 
+%!function test_divide ()
+%! state = warning ("query", "Octave:divide-by-zero").state;
+%! unwind_protect
+%!   warning ("error", "Octave:divide-by-zero");
+%!   for i=1:1e5
+%!     a = 1;
+%!     a / 0;
+%!   endfor
+%! unwind_protect_cleanup
+%!   warning (state, "Octave:divide-by-zero");
+%! end_unwind_protect
+%!endfunction
+
+%!error <division by zero> test_divide ()
+
+%!test
+%! while 1
+%!   a = 0;
+%!   result = a / 1;
+%!   break;
+%! endwhile
+%! assert (result, 0);
+
 */
rename from src/pt-jit.h
rename to src/interp-core/pt-jit.h
rename from src/siglist.c
rename to src/interp-core/siglist.c
rename from src/siglist.h
rename to src/interp-core/siglist.h
rename from src/sparse-xdiv.cc
rename to src/interp-core/sparse-xdiv.cc
rename from src/sparse-xdiv.h
rename to src/interp-core/sparse-xdiv.h
rename from src/sparse-xpow.cc
rename to src/interp-core/sparse-xpow.cc
rename from src/sparse-xpow.h
rename to src/interp-core/sparse-xpow.h
rename from src/txt-eng-ft.cc
rename to src/interp-core/txt-eng-ft.cc
rename from src/txt-eng-ft.h
rename to src/interp-core/txt-eng-ft.h
rename from src/txt-eng.h
rename to src/interp-core/txt-eng.h
rename from src/unwind-prot.cc
rename to src/interp-core/unwind-prot.cc
rename from src/unwind-prot.h
rename to src/interp-core/unwind-prot.h
rename from src/xdiv.cc
rename to src/interp-core/xdiv.cc
rename from src/xdiv.h
rename to src/interp-core/xdiv.h
rename from src/xgl2ps.c
rename to src/interp-core/xgl2ps.c
rename from src/xnorm.cc
rename to src/interp-core/xnorm.cc
rename from src/xnorm.h
rename to src/interp-core/xnorm.h
rename from src/xpow.cc
rename to src/interp-core/xpow.cc
rename from src/xpow.h
rename to src/interp-core/xpow.h
rename from src/zfstream.cc
rename to src/interp-core/zfstream.cc
rename from src/zfstream.h
rename to src/interp-core/zfstream.h
--- a/src/interpfcn/data.cc
+++ b/src/interpfcn/data.cc
@@ -38,10 +38,7 @@
 #include <ctime>
 
 #include <string>
-extern "C"
-{
 #include <base64.h>
-}
 
 #include "lo-ieee.h"
 #include "lo-math.h"
--- a/src/interpfcn/module.mk
+++ b/src/interpfcn/module.mk
@@ -1,5 +1,7 @@
 EXTRA_DIST += \
-  interpfcn/module.mk
+  interpfcn/module.mk \
+  interpfcn/defaults.in.h \
+  interpfcn/graphics.in.h
 
 INTERPFCN_INCLUDES = \
   interpfcn/data.h \
@@ -63,3 +65,9 @@
 	$(AWK) -v emit_graphics_props=1 -f $(srcdir)/genprops.awk $< > $@-t
 	mv $@-t $@
 
+## FIXME: Do these rules work correctly after transplant to interpfcn/ dir?
+__fltk_uigetfile__.lo __fltk_uigetfile__.o: \
+  AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS))
+
+__init_fltk__.lo __init_fltk__.o: \
+  AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS))
--- a/src/operators/module.mk
+++ b/src/operators/module.mk
@@ -129,8 +129,16 @@
   operators/op-ui64-ui64.cc \
   operators/op-ui8-ui8.cc
 
-octinclude_HEADERS += \
+## These look like included header files to Autotools build process
+OPERATOR_INCLUDES = \
   operators/op-dm-template.cc \
   operators/op-dms-template.cc \
   operators/op-int.h \
-  operators/op-pm-template.cc
+  operators/op-pm-template.cc \
+  operators/ops.h
+
+## Special rules for sources which must be built before rest of compilation.
+operators/ops.cc: $(OPERATORS_SRC) mkops
+	$(srcdir)/mkops $(OPERATORS_SRC) > $@-t
+	mv $@-t $@
+
rename from src/ops.h
rename to src/operators/ops.h
--- a/src/parse-tree/module.mk
+++ b/src/parse-tree/module.mk
@@ -1,5 +1,6 @@
 EXTRA_DIST += \
-  parse-tree/module.mk
+  parse-tree/module.mk \
+  parse-tree/octave.gperf
 
 PARSER_INCLUDES = \
   parse-tree/lex.h \
@@ -42,6 +43,7 @@
   parse-tree/pt-unop.h \
   parse-tree/pt-walk.h \
   parse-tree/pt.h \
+  parse-tree/token.h \
 	$(PARSER_INCLUDES)
 
 PARSE_TREE_SRC = \
@@ -71,5 +73,18 @@
   parse-tree/pt-stmt.cc \
   parse-tree/pt-unop.cc \
   parse-tree/pt.cc \
+  parse-tree/token.cc \
 	$(PARSER_SRC)
 
+## Special rules for sources which must be built before rest of compilation.
+
+## Don't use a pipeline to process gperf output since if gperf
+## is missing but sed is not, the exit status of the pipeline
+## will still be success and we will end up creating an empty
+## oct-gperf.h file.
+parse-tree/oct-gperf.h: parse-tree/octave.gperf
+	$(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1
+	$(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t
+	mv $@-t $@
+	rm -f $@-t1
+
rename from src/octave.gperf
rename to src/parse-tree/octave.gperf
rename from src/token.cc
rename to src/parse-tree/token.cc
rename from src/token.h
rename to src/parse-tree/token.h