view libinterp/corefcn/module.mk @ 24263:3b302b2890d7

disentangle symbol_record, scope, and fcn_info from symbol_table class * fcn-info.cc, fcn-info.h, scope.cc, scope.h, symrec.cc, symrec.h: New files extracted from symtab.h and symtab.cc. * libinterp/corefcn/module.mk: Update. * symrec.cc (symbol_record::symbol_record_rep::xglobal_varref): Don't access private symbol_table internals directly. * scope.h, scope.cc (scope::find, scope::builtin_find, scope::clear_global, scope::clear_global_pattern): Don't access private symbol_table internals directly. * symtab.h, symtab.cc (symbol_table::builtin_find): Don't forward to current scope. Look directly in fcn_info table. (symbol_table::global_varref, symbol_table::fcn_table_find, symbol_table::erase_global, symbol_table::erase_global_pattern): New functions. * scope.h (scope::context_id): New typedef. * symrec.h (symbol_record::context_id): New typedef. * symtab.h (symbol_table::context_id): Update. * symtab.h, symtab.cc (symbol_table::dummy_octave_value): Delete static data member. * symtab.h (symbol_table::context_id): Delete typedef. (symbol_table::symbol_record, symbol_table::scope, symbol_table::fcn_info): New typedefs.
author John W. Eaton <jwe@octave.org>
date Thu, 16 Nov 2017 16:06:31 -0500
parents 41795b504a8b
children f494b87d2a93
line wrap: on
line source

## Options functions for Fortran packages like LSODE, DASPK.
## These are generated automagically by configure and Perl.
OPT_HANDLERS = \
  %reldir%/DASPK-opts.cc \
  %reldir%/DASRT-opts.cc \
  %reldir%/DASSL-opts.cc \
  %reldir%/LSODE-opts.cc \
  %reldir%/Quad-opts.cc

$(OPT_HANDLERS): %reldir%/%.cc : liboctave/numeric/%.in | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)rm -f $@-t $@ && \
	$(PERL) $(srcdir)/build-aux/mk-opts.pl --opt-handler-fcns $< > $@-t && \
	mv $@-t $@

$(OPT_HANDLERS): $(srcdir)/build-aux/mk-opts.pl

DIRSTAMP_FILES += %reldir%/$(octave_dirstamp)

COREFCN_INC = \
  %reldir%/base-text-renderer.h \
  %reldir%/Cell.h \
  %reldir%/c-file-ptr-stream.h \
  %reldir%/call-stack.h \
  %reldir%/cdisplay.h \
  %reldir%/data.h \
  %reldir%/defaults.h \
  %reldir%/defun-dld.h \
  %reldir%/defun-int.h \
  %reldir%/defun.h \
  %reldir%/dirfns.h \
  %reldir%/display.h \
  %reldir%/dynamic-ld.h \
  %reldir%/environment.h \
  %reldir%/error.h \
  %reldir%/errwarn.h \
  %reldir%/event-queue.h \
  %reldir%/fcn-info.h \
  %reldir%/file-io.h \
  %reldir%/ft-text-renderer.h \
  %reldir%/gl-render.h \
  %reldir%/gl2ps-print.h \
  %reldir%/graphics-handle.h \
  %reldir%/graphics-toolkit.h \
  %reldir%/gripes.h \
  %reldir%/gtk-manager.h \
  %reldir%/help.h \
  %reldir%/hook-fcn.h \
  %reldir%/input.h \
  %reldir%/interpreter.h \
  %reldir%/load-path.h \
  %reldir%/load-save.h \
  %reldir%/ls-ascii-helper.h \
  %reldir%/ls-hdf5.h \
  %reldir%/ls-mat-ascii.h \
  %reldir%/ls-mat4.h \
  %reldir%/ls-mat5.h \
  %reldir%/ls-oct-text.h \
  %reldir%/ls-oct-binary.h \
  %reldir%/ls-utils.h \
  %reldir%/mex.h \
  %reldir%/mexproto.h \
  %reldir%/oct-errno.h \
  %reldir%/oct-fstrm.h \
  %reldir%/oct-handle.h \
  %reldir%/oct-hdf5-types.h \
  %reldir%/oct-hist.h \
  %reldir%/oct-iostrm.h \
  %reldir%/oct-lvalue.h \
  %reldir%/oct-map.h \
  %reldir%/oct-obj.h \
  %reldir%/oct-prcstrm.h \
  %reldir%/oct-procbuf.h \
  %reldir%/oct-stdstrm.h \
  %reldir%/oct-stream.h \
  %reldir%/oct-strstrm.h \
  %reldir%/oct.h \
  %reldir%/octave-default-image.h \
  %reldir%/octave-link.h \
  %reldir%/pager.h \
  %reldir%/pr-output.h \
  %reldir%/procstream.h \
  %reldir%/scope.h \
  %reldir%/sighandlers.h \
  %reldir%/sparse-xdiv.h \
  %reldir%/sparse-xpow.h \
  %reldir%/symrec.h \
  %reldir%/symtab.h \
  %reldir%/sysdep.h \
  %reldir%/text-renderer.h \
  %reldir%/toplev.h \
  %reldir%/txt-eng.h \
  %reldir%/url-handle-manager.h \
  %reldir%/utils.h \
  %reldir%/variables.h \
  %reldir%/workspace-element.h \
  %reldir%/xdiv.h \
  %reldir%/xnorm.h \
  %reldir%/xpow.h \
  %reldir%/zfstream.h

NOINSTALL_COREFCN_INC = \
  %reldir%/interpreter-private.h \
  %reldir%/oct-hdf5.h \
  %reldir%/oct-opengl.h

## oct-tex-parser.h is in the SRC list so that it will be distributed
## but not installed.

COREFCN_SRC = \
  %reldir%/Cell.cc \
  %reldir%/__contourc__.cc \
  %reldir%/__dsearchn__.cc \
  %reldir%/__ichol__.cc \
  %reldir%/__ilu__.cc \
  %reldir%/__lin_interpn__.cc \
  %reldir%/__luinc__.cc \
  %reldir%/__magick_read__.cc \
  %reldir%/__pchip_deriv__.cc \
  %reldir%/__qp__.cc \
  %reldir%/balance.cc \
  %reldir%/besselj.cc \
  %reldir%/betainc.cc \
  %reldir%/bitfcns.cc \
  %reldir%/bsxfun.cc \
  %reldir%/c-file-ptr-stream.cc \
  %reldir%/call-stack.cc \
  %reldir%/cdisplay.c \
  %reldir%/cellfun.cc \
  %reldir%/colloc.cc \
  %reldir%/coct-hdf5-types.c \
  %reldir%/conv2.cc \
  %reldir%/daspk.cc \
  %reldir%/dasrt.cc \
  %reldir%/dassl.cc \
  %reldir%/data.cc \
  %reldir%/debug.cc \
  %reldir%/defaults.cc \
  %reldir%/defun.cc \
  %reldir%/det.cc \
  %reldir%/dirfns.cc \
  %reldir%/display.cc \
  %reldir%/dlmread.cc \
  %reldir%/dot.cc \
  %reldir%/dynamic-ld.cc \
  %reldir%/eig.cc \
  %reldir%/ellipj.cc \
  %reldir%/environment.cc \
  %reldir%/error.cc \
  %reldir%/errwarn.cc \
  %reldir%/event-queue.cc \
  %reldir%/fcn-info.cc \
  %reldir%/fft.cc \
  %reldir%/fft2.cc \
  %reldir%/fftn.cc \
  %reldir%/file-io.cc \
  %reldir%/filter.cc \
  %reldir%/find.cc \
  %reldir%/ft-text-renderer.cc \
  %reldir%/gammainc.cc \
  %reldir%/gcd.cc \
  %reldir%/getgrent.cc \
  %reldir%/getpwent.cc \
  %reldir%/getrusage.cc \
  %reldir%/givens.cc \
  %reldir%/gl-render.cc \
  %reldir%/gl2ps-print.cc \
  %reldir%/graphics-toolkit.cc \
  %reldir%/graphics.cc \
  %reldir%/gripes.cc \
  %reldir%/gsvd.cc \
  %reldir%/gtk-manager.cc \
  %reldir%/hash.cc \
  %reldir%/help.cc \
  %reldir%/hess.cc \
  %reldir%/hex2num.cc \
  %reldir%/hook-fcn.cc \
  %reldir%/input.cc \
  %reldir%/inv.cc \
  %reldir%/interpreter-private.cc \
  %reldir%/interpreter.cc \
  %reldir%/kron.cc \
  %reldir%/load-path.cc \
  %reldir%/load-save.cc \
  %reldir%/lookup.cc \
  %reldir%/ls-ascii-helper.cc \
  %reldir%/ls-hdf5.cc \
  %reldir%/ls-mat-ascii.cc \
  %reldir%/ls-mat4.cc \
  %reldir%/ls-mat5.cc \
  %reldir%/ls-oct-text.cc \
  %reldir%/ls-oct-binary.cc \
  %reldir%/ls-utils.cc \
  %reldir%/lsode.cc \
  %reldir%/lu.cc \
  %reldir%/mappers.cc \
  %reldir%/matrix_type.cc \
  %reldir%/max.cc \
  %reldir%/mex.cc \
  %reldir%/mgorth.cc \
  %reldir%/nproc.cc \
  %reldir%/oct-fstrm.cc \
  %reldir%/oct-hdf5-types.cc \
  %reldir%/oct-hist.cc \
  %reldir%/oct-iostrm.cc \
  %reldir%/oct-lvalue.cc \
  %reldir%/oct-map.cc \
  %reldir%/oct-prcstrm.cc \
  %reldir%/oct-procbuf.cc \
  %reldir%/oct-stream.cc \
  %reldir%/oct-strstrm.cc \
  %reldir%/oct-tex-lexer.ll \
  %reldir%/oct-tex-parser.h \
  %reldir%/oct-tex-parser.yy \
  %reldir%/octave-link.cc \
  %reldir%/ordschur.cc \
  %reldir%/pager.cc \
  %reldir%/pinv.cc \
  %reldir%/pr-output.cc \
  %reldir%/procstream.cc \
  %reldir%/psi.cc \
  %reldir%/quad.cc \
  %reldir%/quadcc.cc \
  %reldir%/qz.cc \
  %reldir%/rand.cc \
  %reldir%/rcond.cc \
  %reldir%/regexp.cc \
  %reldir%/schur.cc \
  %reldir%/scope.cc \
  %reldir%/sighandlers.cc \
  %reldir%/sparse-xdiv.cc \
  %reldir%/sparse-xpow.cc \
  %reldir%/sparse.cc \
  %reldir%/spparms.cc \
  %reldir%/sqrtm.cc \
  %reldir%/str2double.cc \
  %reldir%/strfind.cc \
  %reldir%/strfns.cc \
  %reldir%/sub2ind.cc \
  %reldir%/svd.cc \
  %reldir%/sylvester.cc \
  %reldir%/symrec.cc \
  %reldir%/symtab.cc \
  %reldir%/syscalls.cc \
  %reldir%/sysdep.cc \
  %reldir%/time.cc \
  %reldir%/text-renderer.cc \
  %reldir%/toplev.cc \
  %reldir%/tril.cc \
  %reldir%/tsearch.cc \
  %reldir%/txt-eng.cc \
  %reldir%/typecast.cc \
  %reldir%/urlwrite.cc \
  %reldir%/url-handle-manager.cc \
  %reldir%/utils.cc \
  %reldir%/variables.cc \
  %reldir%/xdiv.cc \
  %reldir%/xnorm.cc \
  %reldir%/xpow.cc \
  %reldir%/zfstream.cc \
  $(NOINSTALL_COREFCN_INC)

## Special rules for sources which must be built before rest of compilation.

%reldir%/default-defs.h: %reldir%/default-defs.in.h build-aux/subst-default-vals.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-default-vals.sh)

%reldir%/graphics.h: %reldir%/graphics.in.h %reldir%/genprops.awk | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)rm -f $@-t && \
	$(AWK) -f $(srcdir)/%reldir%/genprops.awk $< > $@-t && \
	mv $@-t $@

%reldir%/graphics-props.cc: %reldir%/graphics.in.h %reldir%/genprops.awk | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)rm -f $@-t && \
	$(AWK) -v emit_graphics_props=1 -f $(srcdir)/%reldir%/genprops.awk $< > $@-t && \
	mv $@-t $@

%reldir%/oct-errno.cc: %reldir%/oct-errno.in.cc %reldir%/mk-errno-list.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)rm -f $@-t && \
	if test -n "$(PERL)"; then \
	  $(SHELL) $(srcdir)/%reldir%/mk-errno-list.sh --perl "$(PERL)" < $< > $@-t; \
	elif test -n "$(PYTHON)"; then \
	  $(SHELL) $(srcdir)/%reldir%/mk-errno-list.sh --python "$(PYTHON)" < $< > $@-t; \
	else \
	  $(SHELL) $(srcdir)/%reldir%/mk-errno-list.sh --sed "$(SED)" < $< > $@-t; \
	fi && \
	mv $@-t $@

%reldir%/mxarray.h: %reldir%/mxarray.in.h %reldir%/mk-mxarray-h.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,%reldir%/mk-mxarray-h.sh)

%reldir%/oct-tex-lexer.ll: %reldir%/oct-tex-lexer.in.ll %reldir%/oct-tex-symbols.in | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)rm -f $@-t && \
	$(AWK) 'BEGIN { print "/* DO NOT EDIT. AUTOMATICALLY GENERATED FROM oct-tex-lexer.in.ll and oct-tex-symbols.in. */"; } /^@SYMBOL_RULES@$$/ { count = 0; while (getline < "$(srcdir)/%reldir%/oct-tex-symbols.in") { if ($$0 !~ /^#.*/ && NF == 3) { printf("\"\\\\%s\" { yylval->sym = %d; return SYM; }\n", $$1, count); count++; } } getline } ! /^@SYMBOL_RULES@$$/ { print }' $< > $@-t && \
	mv $@-t $@

%reldir%/oct-tex-symbols.cc: %reldir%/oct-tex-symbols.in | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)rm -f $@-t && \
	$(AWK) 'BEGIN { print "// DO NOT EDIT. AUTOMATICALLY GENERATED FROM oct-tex-symbols.in."; print "static uint32_t symbol_codes[][2] = {"; count = 0; } END { print "};"; printf("static int num_symbol_codes = %d;\n", count); } !/^#/ && (NF == 3) { printf("  { %s, %s },\n", $$2, $$3); count++; }' $< > $@-t && \
	mv $@-t $@

%reldir%/oct-tex-lexer.cc: LEX_OUTPUT_ROOT := lex.octave_tex_

%reldir%/oct-tex-parser.yy: %reldir%/oct-tex-parser.in.yy
	$(AM_V_GEN)$(call subst-bison-api-decls,octave_tex_)

noinst_LTLIBRARIES += \
  %reldir%/libcorefcn.la

%canon_reldir%_libcorefcn_la_SOURCES = $(COREFCN_SRC)

%canon_reldir%_libcorefcn_la_CPPFLAGS = \
  $(libinterp_liboctinterp_la_CPPFLAGS) \
  $(FFTW_XCPPFLAGS) \
  $(FONTCONFIG_CPPFLAGS) \
  $(FT2_CPPFLAGS) \
  $(HDF5_CPPFLAGS) \
  $(LLVM_CPPFLAGS) \
  $(Z_CPPFLAGS)

%canon_reldir%_libcorefcn_la_CFLAGS = $(AM_CFLAGS) $(WARN_CFLAGS)

%canon_reldir%_libcorefcn_la_CXXFLAGS = $(AM_CXXFLAGS) $(WARN_CXXFLAGS) $(LLVM_CXXFLAGS)

libinterp_EXTRA_DIST += \
  %reldir%/default-defs.in.h \
  %reldir%/genprops.awk \
  %reldir%/graphics.in.h \
  %reldir%/mk-errno-list.sh \
  %reldir%/mk-mxarray-h.in.sh \
  %reldir%/mxarray.in.h \
  %reldir%/oct-errno.in.cc \
  %reldir%/oct-tex-lexer.in.ll \
  %reldir%/oct-tex-parser.in.yy \
  %reldir%/oct-tex-symbols.in

GEN_CONFIG_SHELL += \
  %reldir%/mk-mxarray-h.sh