Mercurial > hg > octave-lyh
view libinterp/Makefile.am @ 17481:576cf0589c6d
Overhaul contour labeling functions.
* scripts/plot/clabel.m: Use 'h', rather than 'retval', to match variables to
documentation. Improve performance of input processing by using try/catch block
and eliminating for loops.
* scripts/plot/private/__clabel__.m: Get X and Y spacing in points from axis
rather than assuming 4"x3" plot figure. Fix incorrect determination of axis limits
if no contour handle provided. Rename loop vars i1, j1 to i,j. Performance
improvement by using bsxfun over repmat. Use find to replace while loop (slow).
Keep label rotation in the range [-90, 90] for readability.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 24 Sep 2013 13:16:50 -0700 |
parents | 813523c2b581 |
children |
line wrap: on
line source
# Makefile for Octave's libinterp directory # # Copyright (C) 1993-2012 John W. Eaton # # This file is part of Octave. # # Octave is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # Octave is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. include $(top_srcdir)/build-aux/common.mk ## Search local directories before those specified by the user. AM_CPPFLAGS = \ -I$(top_srcdir)/liboctave/cruft/misc \ -I$(top_srcdir)/liboctave/array \ -I$(top_builddir)/liboctave/numeric -I$(top_srcdir)/liboctave/numeric \ -I$(top_builddir)/liboctave/operators -I$(top_srcdir)/liboctave/operators \ -I$(top_srcdir)/liboctave/system \ -I$(top_srcdir)/liboctave/util \ -I$(srcdir)/octave-value \ -I$(srcdir)/operators \ -Iparse-tree -I$(srcdir)/parse-tree \ -Icorefcn -I$(srcdir)/corefcn \ -I$(top_builddir)/libgnu -I$(top_srcdir)/libgnu AM_CFLAGS += $(WARN_CFLAGS) AM_CXXFLAGS += $(WARN_CXXFLAGS) octlib_LTLIBRARIES = liboctinterp.la ## Order matters here. Leave builtins.cc last, because it depends on ## $(DEF_FILES), and building those requires all the sources ## (except builtins.cc) to be available. BUILT_SOURCES = \ corefcn/mxarray.h \ corefcn/oct-errno.cc \ corefcn/defaults.h \ corefcn/graphics-props.cc \ corefcn/graphics.h \ corefcn/oct-tex-lexer.cc \ corefcn/oct-tex-parser.cc \ corefcn/oct-tex-symbols.cc \ operators/ops.cc \ parse-tree/lex.cc \ parse-tree/oct-gperf.h \ parse-tree/oct-parse.cc \ oct-conf.h \ oct-conf-features.h \ version.h \ builtin-defun-decls.h \ builtins.cc BUILT_DISTFILES = \ corefcn/oct-tex-lexer.ll \ corefcn/oct-tex-parser.h \ corefcn/oct-tex-symbols.cc \ parse-tree/oct-gperf.h \ parse-tree/oct-parse.h \ parse-tree/oct-parse.yy ## Files that are created during build process and installed, ## BUT not distributed in tarball. BUILT_NODISTFILES = \ corefcn/mxarray.h \ corefcn/oct-errno.cc \ corefcn/defaults.h \ corefcn/graphics.h \ builtin-defun-decls.h \ operators/ops.cc \ oct-conf.h \ oct-conf-features.h \ version.h \ $(OPT_HANDLERS) \ $(OPT_INC) \ $(ALL_DEF_FILES) \ builtins.cc EXTRA_DIST = \ Makefile.in \ DOCSTRINGS \ config-features.sh \ find-defun-files.sh \ gendoc.pl \ genprops.awk \ mk-errno-list \ mk-pkg-add \ mkbuiltins \ mkdefs \ mkops \ oct-conf.in.h \ version.in.h \ $(BUILT_DISTFILES) octinclude_HEADERS = \ corefcn/graphics-props.cc \ parse-tree/oct-gperf.h \ builtins.h \ builtin-defun-decls.h \ octave.h \ $(OCTAVE_VALUE_INC) \ $(PARSE_TREE_INC) \ $(PARSER_INC) \ $(OPERATORS_INC) \ $(COREFCN_INC) nodist_octinclude_HEADERS = \ corefcn/mxarray.h \ corefcn/defaults.h \ corefcn/graphics.h \ oct-conf.h \ version.h DIST_SRC = \ octave.cc \ $(OCTAVE_VALUE_SRC) \ $(PARSE_TREE_SRC) \ $(PARSER_SRC) \ $(COREFCN_SRC) \ $(TEX_PARSER_SRC) noinst_LTLIBRARIES = include parse-tree/module.mk include octave-value/module.mk include operators/module.mk include template-inst/module.mk include corefcn/module.mk include dldfcn/module.mk $(srcdir)/dldfcn/module.mk: $(srcdir)/dldfcn/config-module.sh $(srcdir)/dldfcn/config-module.awk $(srcdir)/dldfcn/module-files $(srcdir)/dldfcn/config-module.sh $(top_srcdir) if AMCOND_ENABLE_DYNAMIC_LINKING OCT_FILES = $(DLDFCN_LIBS:.la=.oct) OCT_STAMP_FILES = $(subst dldfcn/,dldfcn/$(am__leading_dot),$(DLDFCN_LIBS:.la=.oct-stamp)) DLD_LIBOCTINTERP_LIBADD = liboctinterp.la else OCT_FILES = OCT_STAMP_FILES = DLD_LIBOCTINTERP_LIBADD = endif liboctinterp_la_SOURCES = \ octave.cc \ $(OPERATORS_SRC) \ $(TEMPLATE_INST_SRC) nodist_liboctinterp_la_SOURCES = \ corefcn/mxarray.h \ corefcn/oct-errno.cc \ corefcn/defaults.h \ corefcn/graphics.h \ operators/ops.cc \ builtin-defun-decls.h \ builtins.cc \ oct-conf.h \ oct-conf-features.h \ version.h \ $(OPT_INC) liboctinterp_la_CPPFLAGS = @OCTINTERP_DLL_DEFS@ $(AM_CPPFLAGS) include link-deps.mk liboctinterp_la_LIBADD = \ octave-value/liboctave-value.la \ parse-tree/libparse-tree.la \ parse-tree/libparser.la \ corefcn/libcorefcn.la \ corefcn/libtex_parser.la \ $(top_builddir)/liboctave/liboctave.la \ $(LIBOCTINTERP_LINK_DEPS) # Increment these as needed and according to the rules in the libtool manual: liboctinterp_current = 1 liboctinterp_revision = 1 liboctinterp_age = 0 liboctinterp_version_info = $(liboctinterp_current):$(liboctinterp_revision):$(liboctinterp_age) liboctinterp_la_LDFLAGS = \ -version-info $(liboctinterp_version_info) \ $(NO_UNDEFINED_LDFLAG) \ -bindir $(bindir) \ $(LIBOCTINTERP_LINK_OPTS) ## Section for defining and creating DEF_FILES ULT_DIST_SRC := \ $(filter-out corefcn/oct-tex-lexer.ll parse-tree/oct-parse.yy, $(DIST_SRC)) corefcn/oct-tex-lexer.in.ll parse-tree/oct-parse.in.yy SRC_DEF_FILES := $(shell $(srcdir)/find-defun-files.sh "$(srcdir)" $(ULT_DIST_SRC)) DLDFCN_DEF_FILES = $(DLDFCN_SRC:.cc=.df) ## builtins.cc depends on $(DEF_FILES), so DEF_FILES should only include ## .df files that correspond to sources included in liboctave. if AMCOND_ENABLE_DYNAMIC_LINKING DEF_FILES = $(SRC_DEF_FILES) else DEF_FILES = $(SRC_DEF_FILES) $(DLDFCN_DEF_FILES) endif ALL_DEF_FILES = $(SRC_DEF_FILES) $(DLDFCN_DEF_FILES) $(SRC_DEF_FILES): mkdefs Makefile $(DEF_FILES): $(OPT_HANDLERS) $(OPT_INC) ## FIXME: The following two variables are deprecated and should be removed ## in Octave version 3.12. DLL_CDEFS = @OCTINTERP_DLL_DEFS@ DLL_CXXDEFS = @OCTINTERP_DLL_DEFS@ ## Rule to build a DEF file from a .cc file ## ## FIXME -- This rule should be fixed to avoid using special ## flags like JAVA_CPPFLAGS for every file. How could it be written ## so that it uses octave_value_liboctave_value_la_CPPFLAGS when ## generating the octave-value/*.df files? ## ## FIXME -- Shouldn't the build stop if CPP fails here? %.df: %.cc $(CXXCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(JAVA_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ -DMAKE_BUILTINS $< | $(srcdir)/mkdefs $(srcdir) $< > $@-t mv $@-t $@ ## Rules to build test files TST_FILES_SRC := $(shell $(top_srcdir)/build-aux/find-files-with-tests.sh "$(srcdir)" $(ULT_DIST_SRC) $(DLDFCN_SRC)) TST_FILES := $(addsuffix -tst,$(TST_FILES_SRC)) libinterptestsdir := $(octtestsdir)/libinterp nobase_libinterptests_DATA = $(TST_FILES) ## Override Automake's rule that forces a .hh extension on us even ## though we don't want it. It would be super awesome if automake ## would allow users to choose the header file extension. .yy.cc: $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) ## Special rules: ## Mostly for sources which must be built before rest of compilation. ## 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) oct-conf-features.h: $(top_builddir)/config.h config-features.sh $(srcdir)/config-features.sh $< > $@-t mv $@-t $@ version.h: version.in.h Makefile $(SED) < $< \ -e "s|%NO_EDIT_WARNING%|DO NOT EDIT! Generated automatically from $(<F) by Make.|" \ -e "s|%OCTAVE_API_VERSION_NUMBER%|${OCTAVE_API_VERSION_NUMBER}|" \ -e "s|%OCTAVE_API_VERSION%|\"${OCTAVE_API_VERSION}\"|" \ -e "s|%OCTAVE_COPYRIGHT%|\"${OCTAVE_COPYRIGHT}\"|" \ -e "s|%OCTAVE_RELEASE_DATE%|\"${OCTAVE_RELEASE_DATE}\"|" \ -e "s|%OCTAVE_VERSION%|\"${OCTAVE_VERSION}\"|" > $@-t mv $@-t $@ builtins.cc: $(DEF_FILES) mkbuiltins $(srcdir)/mkbuiltins --source $(DEF_FILES) > $@-t mv $@-t $@ builtin-defun-decls.h: $(SRC_DEF_FILES) mkbuiltins $(srcdir)/mkbuiltins --header $(SRC_DEF_FILES) > $@-t mv $@-t $@ if AMCOND_ENABLE_DYNAMIC_LINKING DLDFCN_PKG_ADD_FILE = dldfcn/PKG_ADD dldfcn/PKG_ADD: $(DLDFCN_DEF_FILES) mk-pkg-add $(srcdir)/mk-pkg-add $(DLDFCN_DEF_FILES) > $@-t mv $@-t $@ endif if AMCOND_BUILD_DOCS .DOCSTRINGS: $(ALL_DEF_FILES) gendoc.pl if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \ cp $(srcdir)/DOCSTRINGS DOCSTRINGS; \ touch -r $(srcdir)/DOCSTRINGS DOCSTRINGS; \ fi @echo "creating .DOCSTRINGS from .cc source files" @$(PERL) $(srcdir)/gendoc.pl $(ALL_DEF_FILES) > $@ $(top_srcdir)/build-aux/move-if-change $@ DOCSTRINGS touch $@ all-local: $(OCT_STAMP_FILES) $(DLDFCN_PKG_ADD_FILE) .DOCSTRINGS else all-local: $(OCT_STAMP_FILES) $(DLDFCN_PKG_ADD_FILE) endif if AMCOND_BUILD_DOCS install-data-hook: install-oct install-built-in-docstrings else install-data-hook: install-oct uninstall-built-in-docstrings endif uninstall-local: uninstall-oct uninstall-built-in-docstrings if AMCOND_ENABLE_DYNAMIC_LINKING install-oct: $(MKDIR_P) $(DESTDIR)$(octfiledir) if [ -n "`cat $(DLDFCN_PKG_ADD_FILE)`" ]; then \ $(INSTALL_DATA) $(DLDFCN_PKG_ADD_FILE) $(DESTDIR)$(octfiledir)/PKG_ADD; \ fi cd $(DESTDIR)$(octlibdir) && \ for ltlib in $(DLDFCN_LIBS); do \ f=`echo $$ltlib | $(SED) 's,.*/,,'`; \ dl=`$(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $$f`; \ if [ -n "$$dl" ]; then \ $(INSTALL_PROGRAM) $$dl $(DESTDIR)$(octfiledir)/`echo $$f | $(SED) 's,^lib,,; s,\.la$$,.oct,'`; \ else \ echo "error: dlname is empty in $$ltlib!"; \ exit 1; \ fi; \ lnames=`$(SED) -n -e "s/library_names='\([^']*\)'/\1/p" < $$f`; \ if [ -n "$$lnames" ]; then \ rm -f $$f $$lnames $$dl; \ fi \ done uninstall-oct: for f in $(notdir $(OCT_FILES)); do \ rm -f $(DESTDIR)$(octfiledir)/$$f; \ done rm -f $(DESTDIR)$(octfiledir)/PKG_ADD endif .PHONY: install-oct uninstall-oct if AMCOND_BUILD_DOCS install-built-in-docstrings: $(MKDIR_P) $(DESTDIR)$(octetcdir) $(INSTALL_DATA) DOCSTRINGS $(DESTDIR)$(octetcdir)/built-in-docstrings uninstall-built-in-docstrings: rm -f $(DESTDIR)$(octetcdir)/built-in-docstrings endif .PHONY: install-built-in-docstrings uninstall-built-in-docstrings CLEANFILES = \ $(DLDFCN_PKG_ADD_FILE) \ corefcn/graphics-props.cc \ corefcn/oct-tex-parser.output \ parse-tree/oct-parse.output DISTCLEANFILES = \ .DOCSTRINGS \ DOCSTRINGS \ $(BUILT_NODISTFILES) \ $(OCT_FILES) \ $(OCT_STAMP_FILES) \ $(TST_FILES) MAINTAINERCLEANFILES = \ $(BUILT_DISTFILES)