Mercurial > octave-nkf
view Makefile.am @ 13985:43cc49c7abd1
Use thread-safe atomic reference counting (GCC and MSVC).
* configure.ac: New --enable-atomic-refcount argument.
(octave_allocator): Fix USE_OCTAVE_ALLOCATOR variable assignment.
(OCTAVE_CONFIG_INCLUDED): New macro in config.h.
* oct-refcount.h (OCTREFCOUNT_ATOMIC_INCREMENT,
OCTREFCOUNT_ATOMIC_INCREMENT_POST, OCTREFCOUNT_ATOMIC_DECREMENT,
OCTREFCOUNT_ATOMIC_DECREMENT_POST): New macro, defined for MSVC and GCC
when USE_ATOMIC_REFCOUNT is defined.
(octave_refcount:operator++, octave_refcount::operator--): Use them.
(octave_refcount::operator count_type): Cast returned value to volatile.
(octave_refcount::direct): Remove unsafe member.
* Array.h (Array::make_unique): Delete rep if refcount reaches 0.
* Sparse.h (Sparse::make_unique): Delete rep if refcount reaches 0.
* Array.h (Array:~Array, Array::operator=): Delete rep only when refcount is
excatly 0.
* Array.cc (Array::clear): Likewise.
* Sparse.cc (Sparse::~Sparse, Sparse::operator=): Likewise.
* SparseCmplxQR.h (SparseCmplxQR::~SparseCmplxQR, SparseCmplxQR::operator=):
Likewise.
* SparseQR.h (SparseQR::~SparseQR, SparseQR::operator=): Likewise.
* sparse-base-chol.h (sparse_base_chol::~sparse_base_chol,
sparse_base_chol::operator): Likewise.
* dim-vector.h (oct-refcount.h): New included header.
(dim_vector::make_unique, dim_vector::resize): Use OCTREFCOUNT_ATOMIC_DECREMENT
macro and delete rep when refcount reaches 0.
(dim_vector::dim_vector): Use OCTREFCOUNT_ATOMIC_INCREMENT.
(dim_vector::operator=): Use OCTREFCOUNT_ATOMIC_INCREMENT and
OCTREFCOUNT_ATOMIC_DECREMENT.
(dim_vector::~dim_vector): Use OCTREFCOUNT_ATOMIC_DECREMENT.
* oct-mutex.h (oct-refcount.h): New included header.
(octave_base_mutex::count): Use octave_refcount class.
* gl-render.cc (oct-refcount.h): New included header.
* graphics.h.in (oct-refcount.h): Likewise.
(base_property::count, base_graphics_toolkit::count,
base_graphics_object::count, base_graphics_event::count): Use octave_refcount.
(property::~property, property::operator=): Delete rep only when refcountn is
excatly 0.
* oct-map.h (octave_fields::make_unique): Delete rep when refcount reaches 0.
* oct-stream.h (oct-refcount.h): New included header.
(octave_base_stream::count): Use octave_refcount class.
* ov.h (octave_value::make_unique): Delete rep when refcount reaches 0.
* symtab.h (oct-refcount.h): New included header.
(symbol_record_rep::count, fcn_info_rep::count): Use octave_refcount class.
* DLD-FUNCTIONS/urlwrite.cc (oct-refcount.h): New included header.
(curl_handle_rep::count): Use octave_refcount class.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Sat, 03 Dec 2011 15:19:42 +0000 |
parents | 5ee4fc58585f |
children | 72c96de7a403 |
line wrap: on
line source
# Makefile for octave # # Copyright (C) 1993-2011 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 build-aux/common.mk ## Avoid making multiple subdirs in parallel which can lead ## to a confusing error message stream .NOTPARALLEL: ACLOCAL_AMFLAGS = -I m4 BUILT_DISTFILES = AUTHORS BUGS ChangeLog INSTALL.OCTAVE EXTRA_DIST = \ AUTHORS \ BUGS \ COPYING \ ChangeLog \ INSTALL \ INSTALL.OCTAVE \ NEWS \ README \ autogen.sh \ build-aux/bootstrap \ build-aux/bootstrap.conf \ build-aux/mk-opts.pl \ build-aux/mkinstalldirs \ build-aux/move-if-change \ etc/NEWS.1 \ etc/NEWS.2 \ etc/NEWS.3 \ etc/OLD-ChangeLogs/ChangeLog \ etc/OLD-ChangeLogs/ChangeLog.1 \ etc/OLD-ChangeLogs/doc-ChangeLog \ etc/OLD-ChangeLogs/libcruft-ChangeLog \ etc/OLD-ChangeLogs/liboctave-ChangeLog \ etc/OLD-ChangeLogs/scripts-ChangeLog \ etc/OLD-ChangeLogs/src-ChangeLog \ etc/OLD-ChangeLogs/test-ChangeLog \ etc/PROJECTS \ etc/README.Cygwin \ etc/README.Linux \ etc/README.MacOS \ etc/README.MinGW \ etc/README.Windows \ etc/README.gnuplot \ etc/README.kpathsea \ etc/gdbinit \ run-octave.in include m4/module.mk # Subdirectories in which to run `make all'. SUBDIRS = libgnu libcruft liboctave src scripts @DOCDIR@ examples test if AMCOND_BUILD_DOCS else dist-hook: echo "Documentation disabled. Cannot package distribution!" ; exit 1; endif BUILT_SOURCES = run-octave noinst_SCRIPTS = run-octave INFO_FILES = \ AUTHORS \ BUGS \ INSTALL.OCTAVE CLEANFILES = $(BUILT_SOURCES) DISTCLEANFILES = .gdbinit MAINTAINERCLEANFILES = $(BUILT_DISTFILES) CONFIG_FILES = @ac_config_headers@ @ac_config_files@ nodist_octinclude_HEADERS = config.h all-local: $(noinst_SCRIPTS) $(INFO_FILES) .gdbinit @echo "" @echo "Octave successfully built. Now choose from the following:" @echo "" @echo " ./run-octave - to run in place to test before installing" @echo " make check - to run the tests" @echo " make install - to install (PREFIX=$(prefix))" @echo "" check: all $(MAKE) -C test check run-octave: run-octave.in Makefile @$(do_subst_script_vals) chmod a+rx "$@" .gdbinit: etc/gdbinit @if [ -f .gdbinit ]; then \ echo "refusing to overwrite .gdbinit with newer version from $<" 1>&2; \ else \ echo "Installing .gdbinit from version at $<" ; \ cp $< $@; \ fi AUTHORS BUGS INSTALL.OCTAVE: $(MAKE) -C doc/interpreter ../../$@ .PHONY: AUTHORS BUGS INSTALL.OCTAVE ChangeLog: (cd $(srcdir); hg log --style=build-aux/changelog.tmpl --prune=b0e60ad4ae26 --only-branch=`hg branch`; echo ""; echo "See the files in the directory etc/OLD-ChangeLogs for changes before 2011-04-19") > $@.t mv $@.t $@ .PHONY: ChangeLog octetc_DATA = NEWS DIRS_TO_MAKE = \ $(localfcnfiledir) \ $(localapifcnfiledir) \ $(localverfcnfiledir) \ $(localoctfiledir) \ $(localapioctfiledir) \ $(localveroctfiledir) \ $(localarchlibdir) \ $(localapiarchlibdir) \ $(localverarchlibdir) installdirs-local: $(MKDIR_P) $(addprefix $(DESTDIR), $(DIRS_TO_MAKE)) install-data-local: installdirs-local