view octMakefile.in @ 8968:91d53dc37f79

Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations. Nothing terribly fancy in any of this. There probably is some mechanism for using the permutation vectors and some assign or index method in the sparse classes, but I've never understood all the intricacies. I'm opting for a simple implementation at the cost of possibly duplicating some functionality.
author Jason Riedy <jason@acm.org>
date Tue, 10 Mar 2009 21:54:44 -0400
parents eb63fbe60fab
children 4b94672337d0
line wrap: on
line source

# Makefile for octave
#
# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
#               2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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/>.

TOPDIR = .

srcdir = @srcdir@
top_srcdir = @top_srcdir@
abs_top_srcdir = @abs_top_srcdir@
VPATH = @srcdir@

include $(TOPDIR)/Makeconf

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@

CONF_DISTFILES = Makefile octMakefile.in Makeconf.in \
	configure configure.in config.guess config.sub aclocal.m4 \
	acx_blas.m4 acx_lapack.m4 acx_blas_f77_func.m4 \
	config.h.in install-sh autogen.sh

BUILT_DISTFILES = BUGS INSTALL.OCTAVE

DISTFILES = $(CONF_DISTFILES) \
	COPYING INSTALL NEWS \
	NEWS.[0-9] PROJECTS README README.Linux README.Windows \
	README.Cygwin README.MSVC README.kpathsea ROADMAP SENDING-PATCHES \
	move-if-change octave-sh octave-bug.in \
	octave-config.in missing mk-opts.pl mkinstalldirs \
	mkoctfile.in run-octave.in ChangeLog ChangeLog.[0-9]

# Subdirectories in which to run `make all'.
SUBDIRS = libcruft liboctave src scripts doc examples

# Subdirectories in which to run `make all'.
INSTALL_SUBDIRS = libcruft liboctave src scripts doc examples

# Subdirectories in which to run `make conf-dist'.
CONF_DISTSUBDIRS = src

# Subdirectories in which to run `make dist'.
DISTSUBDIRS = $(sort $(SUBDIRS) test emacs)

# Subdirectories in which to run clean targets.
CLEANSUBDIRS = $(DISTSUBDIRS)

DIRS_TO_MAKE = $(bindir) $(datadir) $(libdir) $(octincludedir)/octave \
  $(fcnfiledir) $(localfcnfiledir) $(localapifcnfiledir) \
  $(localverfcnfiledir) $(octetcdir) $(octfiledir) $(localoctfiledir) \
  $(localapioctfiledir) $(localveroctfiledir) $(imagedir) $(archlibdir) \
  $(localarchlibdir) $(localapiarchlibdir) $(localverarchlibdir)

SHELL_SCRIPTS = octave-bug octave-config mkoctfile run-octave

CONFIG_FILES = @ac_config_files@

M4_FILES = $(wildcard *.m4)

all: $(SHELL_SCRIPTS) $(filter-out libcruft liboctave, $(SUBDIRS)) dist-info-files
	@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 ""
.PHONY: all

configfiles: $(CONFIG_FILES)
	for dir in $(CONFIG_SUBDIRS); do \
	  $(MAKE) -C $$dir configfiles; \
	done
.PHONY: configfiles

$(CONFIG_FILES): %: %.in config.status
	./config.status $@

config.status: configure
	./config.status --recheck

configure: configure.in $(M4_FILES)
	(cd $(top_srcdir); autoconf --force)
	(cd $(top_srcdir); autoheader --force)

src: liboctave

liboctave: libcruft

$(SUBDIRS):
	$(MAKE) -C $@ all
.PHONY: $(SUBDIRS)

octave-bug: octave-bug.in Makeconf octMakefile $(top_srcdir)/src/version.h
	@$(do-subst-config-vals)
	chmod a+rx $@

octave-config: octave-config.in Makeconf octMakefile $(top_srcdir)/src/version.h
	@$(do-subst-default-vals)
	chmod a+rx $@

mkoctfile: mkoctfile.in Makeconf octMakefile $(top_srcdir)/src/version.h
	@$(do-subst-config-vals)
	chmod a+rx $@

run-octave: run-octave.in Makeconf octMakefile
	@$(do-subst-script-vals)
	chmod a+rx "$@"

check:
	$(MAKE) -C test $@
.PHONY: check

octave.info:
	$(MAKE) -C doc/interpreter octave.info
.PHONY: octave.info

BUGS INSTALL.OCTAVE:
	$(MAKE) -C doc ../$@
.PHONY: BUGS INSTALL.OCTAVE

install install-strip ::
	$(top_srcdir)/mkinstalldirs $(addprefix $(DESTDIR), $(DIRS_TO_MAKE))
	rm -f $(DESTDIR)$(bindir)/octave-bug
	$(INSTALL_SCRIPT) octave-bug $(DESTDIR)$(bindir)/octave-bug-$(version)
	(cd $(DESTDIR)$(bindir); $(LN_S) octave-bug-$(version) $(DESTDIR)$(bindir)/octave-bug)
	rm -f $(DESTDIR)$(bindir)/octave-config
	$(INSTALL_SCRIPT) \
	  octave-config $(DESTDIR)$(bindir)/octave-config-$(version)
	(cd $(DESTDIR)$(bindir); $(LN_S) octave-config-$(version) $(DESTDIR)$(bindir)/octave-config)
	rm -f $(DESTDIR)$(bindir)/mkoctfile
	$(INSTALL_SCRIPT) mkoctfile $(DESTDIR)$(bindir)/mkoctfile-$(version)
	(cd $(DESTDIR)$(bindir); $(LN_S) mkoctfile-$(version) $(DESTDIR)$(bindir)/mkoctfile)
	$(INSTALL_DATA) config.h $(DESTDIR)$(octincludedir)/octave/config.h
	$(INSTALL_DATA) $(srcdir)/NEWS $(DESTDIR)$(octetcdir)/NEWS

uninstall::
	rm -f $(DESTDIR)$(bindir)/octave-bug
	rm -f $(DESTDIR)$(bindir)/octave-bug-$(version)
	rm -f $(DESTDIR)$(bindir)/octave-config
	rm -f $(DESTDIR)$(bindir)/octave-config-$(version)
	rm -f $(DESTDIR)$(bindir)/mkoctfile
	rm -f $(DESTDIR)$(bindir)/mkoctfile-$(version)
	rm -f $(DESTDIR)$(octincludedir)/octave/config.h
	rm -f $(DESTDIR)$(octetcdir)/NEWS

maintainer-clean::
	@echo ""
	@echo "************************************************************"
	@echo "*                                                          *"
	@echo "* This command is intended for maintainers to use; it      *"
	@echo "* deletes files that may require special tools to rebuild. *"
	@echo "*                                                          *"
	@echo "************************************************************"
	@echo ""

install install-strip uninstall tags TAGS::
	$(foreach d, $(INSTALL_SUBDIRS), $(do-subdir-for-command))
.PHONY: install install-strip uninstall tags

clean mostlyclean distclean maintainer-clean::
	$(foreach d, $(CLEANSUBDIRS), $(do-subdir-for-command))
.PHONY: clean mostlyclean distclean maintainer-clean

maintainer-clean distclean::
	rm -f octMakefile Makeconf
	rm -f config.cache config.h config.log config.status
	rm -rf autom4te.cache
	rm -f $(SHELL_SCRIPTS)
	rm -f unistd.h

maintainer-clean::
	rm -f configure config.h.in BUGS INSTALL.OCTAVE

# Rules for making a source distribution.

dist-info-files: INSTALL.OCTAVE BUGS
.PHONY: dist-info-files

# The dist target depends on all because we use Octave to build some
# figures for the manual.  It's best to create those figures with the
# version of Octave that we are distributing (it may even be required).

dist: all
	echo octave-$(version) > .fname
	rm -rf `cat .fname`
	mkdir `cat .fname`
	ln $(addprefix $(srcdir)/, $(DISTFILES)) `cat .fname`
	ln $(BUILT_DISTFILES) `cat .fname`
	for dir in $(DISTSUBDIRS); do \
	  mkdir `cat .fname`/$$dir; \
	  $(MAKE) -C $$dir dist; \
	done
	tar chf `cat .fname`.tar `cat .fname`
	rm -rf `cat .fname`
	tar xf `cat .fname`.tar
	find `cat .fname` \( \( -name RCS -a -type d \) \
	  -o \( -name CVS -a -type d \) -o \( -name OLD -a -type d \) \
	  -o \( -name autom4te.cache -a -type d \) \
	  -o -name "=*" -o -name '*~' -o -name '#*#' -o -name config.log \
	  -o -name config.status -o -name config.cache -o -name stamp-h \
	  -o -name klibtool.config -o -name stamp-auto \
	  -o -name c-auto.h \) -print | xargs rm -rf
	rm -f `cat .fname`/test/octave.test/*.m
	chmod -R a+rwX `cat .fname`
	tar cf `cat .fname`.tar `cat .fname`
	rm -rf `cat .fname`
	gzip -9 --stdout `cat .fname`.tar > `cat .fname`.tar.gz
	bzip2 -9 --stdout `cat .fname`.tar > `cat .fname`.tar.bz2
	date -u > md5sum
	md5sum `cat .fname`.tar.gz `cat .fname`.tar.bz2 >> md5sum
	touch `cat .fname`.tar.gz `cat .fname`.tar.bz2 md5sum
	rm -f .fname
	@echo "*******************"
	@echo "Tag the CVS archive"
	@echo "*******************"
.PHONY: dist

# Rules for making a snapshot.

snapshot-version:
	@echo "creating src/version.h"
	@gawk '/#define OCTAVE_VERSION[ \t]*/ { \
	  datestring = strftime("%y%m%d", systime()); \
	  printf("#define OCTAVE_VERSION \"ss-%s\"\n", datestring); \
	  next; \
	} { print $$0 }' src/version.h > src/version.h.new
	@$(top_srcdir)/move-if-change src/version.h.new src/version.h
.PHONY: snapshot-version

snapshot: snapshot-version
	$(MAKE) dist
.PHONY: snapshot

# Rules for making a dist of just the stuff needed to run configure.

conf-dist:
	echo config-dist-$(version) > .fname
	rm -rf `cat .fname`
	mkdir `cat .fname`
	ln $(CONF_DISTFILES) `cat .fname`
	for dir in $(CONF_DISTSUBDIRS); do \
	  mkdir `cat .fname`/$$dir; \
	  $(MAKE) -C $$dir conf-dist; \
	done
	tar chf `cat .fname`.tar `cat .fname`
	rm -rf `cat .fname`
	gzip --best `cat .fname`.tar
	rm -f .fname
.PHONY: conf-dist

.NOTPARALLEL: