# Makefile for octave's examples directory
#
# Copyright (C) 1996, 1997, 2003, 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@
VPATH = @srcdir@

include $(TOPDIR)/Makeconf

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

SUBDIRS = @polynomial @FIRfilter

DISTSUBDIRS = $(SUBDIRS)

SCRIPTS = info-emacs-info info-emacs-octave-help

SOURCES = \
  addtwomatrices.cc \
  celldemo.cc \
  embedded.cc \
  firstmexdemo.c \
  fortdemo.cc \
  fortsub.f \
  funcdemo.cc \
  globaldemo.cc \
  hello.cc \
  helloworld.cc \
  make_int.cc \
  mycell.c \
  myfeval.c \
  myfevalf.f \
  myfunc.c \
  myhello.c \
  mypow2.c \
  myprop.c \
  myset.c \
  mysparse.c \
  mystring.c \
  mystruct.c \
  octave.desktop.in \
  oregonator.cc \
  oregonator.m \
  paramdemo.cc \
  standalone.cc \
  stringdemo.cc \
  structdemo.cc \
  unwinddemo.cc

IMAGE_FILES = $(srcdir)/octave-sombrero.png
IMAGE_FILES_NO_DIR = $(notdir $(IMAGE_FILES))

DISTFILES = $(addprefix $(srcdir)/, Makefile.in $(SOURCES) $(SCRIPTS)) \
	 $(IMAGE_FILES)

all: $(SUBDIRS) octave.desktop
.PHONY: all

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

octave.desktop: octave.desktop.in Makefile ../Makeconf
	echo "making $@ from $<"
	$(SED) < $< > $@-t \
	  -e "s|%OCTAVE_IMAGEDIR%|${imagedir}|" \
	  -e "s|%OCTAVE_PREFIX%|${prefix}|"
	mv $@-t $@

install install-strip:
	for f in $(SCRIPTS); do \
	  $(INSTALL_SCRIPT) $(srcdir)/$$f $(DESTDIR)$(archlibdir)/$$f; \
	done
	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(imagedir)
	for f in $(IMAGE_FILES_NO_DIR); do \
	  rm -f $(DESTDIR)$(imagedir)/$$f; \
	  $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(imagedir)/$$f; \
	done
	-if test -n "$(DESKTOP_FILE_INSTALL)"; then \
	  $(DESKTOP_FILE_INSTALL) --dir=$(DESTDIR)$(datadir)/applications \
	    --vendor www.octave.org octave.desktop; \
	fi
.PHONY: install install-strip

uninstall:
	for f in $(SCRIPTS); do \
	  rm -f $(DESTDIR)$(archlibdir)/$$f; \
	done
	for f in $(IMAGE_FILES_NO_DIR); do \
	  rm -f $(DESTDIR)$(imagedir)/$$f; \
	done
	if test -n "$(DESKTOP_FILE_INSTALL)"; then \
	  rm -f $(DESTDIR)$(datadir)/applications/www.octave.org-octave.desktop; \
	fi
.PHONY: uninstall

tags:
	ctags $(SOURCES)

TAGS: $(SOURCES)
	etags $(SOURCES)

clean mostlyclean:
.PHONY: clean mostlyclean

distclean::
	rm -f Makefile octave.desktop
.PHONY: distclean

maintainer-clean:: distclean
	rm -f tags TAGS
.PHONY: maintainer-clean

distclean maintainer-clean::
	@$(subdir-for-command)

dist:
	ln $(DISTFILES) ../`cat ../.fname`/examples
	for dir in $(DISTSUBDIRS); do mkdir ../`cat ../.fname`/examples/$$dir; $(MAKE) -C $$dir $@; done
.PHONY: dist
