# Makeconf.  Generated from Makeconf.in by configure.
#
# Common configuration rules for all of octave's Makefiles.
#
# 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/>.
 
SHELL = /bin/sh

AWK = gawk
export AWK

SED = /scratchbox/tools/bin/sed
export SED

FIND = gfind
export FIND

PERL = perl
export PERL

PYTHON = python

GNUPLOT = gnuplot

DESKTOP_FILE_INSTALL = desktop-file-install

# A shell command to extract the version number from version.h.
getversion = $(SED) -e '/OCTAVE_VERSION/!d' -e 's/.*"\(.*\)".*$$/\1/' -e q

# A shell command to extract the API version number from version.h.
getapiversion = $(SED) -e '/OCTAVE_API_VERSION/!d' -e 's/.*"\(.*\)".*$$/\1/' -e q

# Look for version.h to get version information.
xfiles := $(TOPDIR)/src/version.h $(srcdir)/$(TOPDIR)/src/version.h
version_file := $(firstword $(foreach file, $(xfiles), $(wildcard $(file))))
version := $(shell $(getversion) $(version_file))
api_version := $(shell $(getapiversion) $(version_file))

#### Start of system configuration section. ####

EXEEXT = 

BUILD_EXEEXT = $(EXEEXT)

LEX = flex
LFLAGS = -t -I
LEXLIB = 

YACC = bison -y
YFLAGS = -dv

GPERF = gperf

AR = ar
ARFLAGS = rc 

TEMPLATE_AR = $(AR)
TEMPLATE_ARFLAGS = rc

RANLIB = ranlib

LN_S = ln -s

MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
TEXI2PDF = texi2pdf

GHOSTSCRIPT = $(top_srcdir)/missing gs

DEFAULT_PAGER = less

ENABLE_DYNAMIC_LINKING = true

STATIC_LIBS = false

SHARED_LIBS = true
SHLEXT = so
SHLEXT_VER = $(SHLEXT).$(version)
SHLLIB = $(SHLEXT)
SHLLIB_VER = $(SHLLIB).$(version)
SHLBIN = 
SHLBIN_VER = $(SHLBIN).$(version)
SHLLINKEXT=

LIBEXT = a
LIBPRE = lib
SHLPRE = lib
SHLLIBPRE = lib
SHLBINPRE = lib

# Fortran compiler flags.

FC = f77
F77 = f77
FFLAGS = -O
FPICFLAG = -fPIC
ALL_FFLAGS = $(FFLAGS)
F77_FLOAT_STORE_FLAG = -ffloat-store

F77_TOLOWER=true
F77_APPEND_UNDERSCORE=true
F77_APPEND_EXTRA_UNDERSCORE=true

# cc and associated flags.

# Clean up INCFLAGS a bit if we are not compiling in a separate
# directory.
ifeq ($(srcdir),.)
  TMP_IF_1 = -I.
else
  TMP_IF_1 = -I. -I$(srcdir)
endif
ifeq ($(TOPDIR),$(top_srcdir))
  TMP_IF_2 = \
    -I$(TOPDIR) \
    -I$(TOPDIR)/liboctave \
    -I$(TOPDIR)/src \
    -I$(TOPDIR)/libcruft/misc
else
  TMP_IF_2 = \
    -I$(TOPDIR) \
    -I$(TOPDIR)/liboctave \
    -I$(TOPDIR)/src \
    -I$(TOPDIR)/libcruft/misc \
    -I$(top_srcdir) \
    -I$(top_srcdir)/liboctave \
    -I$(top_srcdir)/src \
    -I$(top_srcdir)/libcruft/misc
endif
INCFLAGS = $(TMP_IF_1) $(TMP_IF_2)

X11_INCFLAGS = 
X11_LIBS = 

CARBON_LIBS = 

MAGICK_CONFIG = 
MAGICK_INCFLAGS = $(shell $(MAGICK_CONFIG) --cppflags)
MAGICK_LIBS = $(shell $(MAGICK_CONFIG) --libs)

LIBFLAGS = -L$(TOPDIR)

DEFS = -DHAVE_CONFIG_H

UGLY_DEFS = -DPACKAGE_NAME=\\\\\"\\\\\" -DPACKAGE_TARNAME=\\\\\"\\\\\" -DPACKAGE_VERSION=\\\\\"\\\\\" -DPACKAGE_STRING=\\\\\"\\\\\" -DPACKAGE_BUGREPORT=\\\\\"\\\\\" -DOCTAVE_SOURCE=1 -D_GNU_SOURCE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DSEPCHAR=\':\' -DSEPCHAR_STR=\\\\\":\\\\\" -D__NO_MATH_INLINES=1 -DCXX_NEW_FRIEND_TEMPLATE_DECL=1 -DCXX_ISO_COMPLIANT_LIBRARY=1 -DHAVE_LIBM=1 -DHAVE_QHULL=1 -DHAVE_PCRE_COMPILE=1 -DHAVE_PCRE=1 -DHAVE_REGEXEC=1 -DHAVE_REGEX=1 -DHAVE_ZLIB_H=1 -DHAVE_ZLIB=1 -DHAVE_FFTW3=1 -DHAVE_CURL_CURL_H=1 -DHAVE_CURL=1 -DHAVE_IEEE754_DATA_FORMAT=1 -DF77_FUNC\(name,NAME\)=name\ \#\#\ _ -DF77_FUNC_\(name,NAME\)=name\ \#\#\ __ -DHAVE_BLAS=1 -DHAVE_SUITESPARSE_AMD_H=1 -DHAVE_AMD=1 -DHAVE_SUITESPARSE_UMFPACK_H=1 -DHAVE_UMFPACK=1 -DUMFPACK_SEPARATE_SPLIT=1 -DHAVE_SUITESPARSE_COLAMD_H=1 -DHAVE_COLAMD=1 -DHAVE_SUITESPARSE_CCOLAMD_H=1 -DHAVE_CCOLAMD=1 -DHAVE_SUITESPARSE_CHOLMOD_H=1 -DHAVE_CHOLMOD=1 -DHAVE_SUITESPARSE_CS_H=1 -DHAVE_CXSPARSE=1 -DHAVE_GETHOSTNAME=1 -DHAVE_GETPWNAM=1 -DHAVE_DEV_T=1 -DHAVE_INO_T=1 -DHAVE_NLINK_T=1 -DHAVE_NLINK_T=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_SIGSET_T=1 -DHAVE_SIG_ATOMIC_T=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_PLACEMENT_DELETE=1 -DHAVE_DYNAMIC_AUTO_ARRAYS=1 -DHAVE_FAST_INT_OPS=1 -DSIZEOF_LONG_DOUBLE=8 -DSTDC_HEADERS=1 -DHAVE_DIRENT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_ASSERT_H=1 -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1 -DHAVE_FLOAT_H=1 -DHAVE_GRP_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_MEMORY_H=1 -DHAVE_NCURSES_H=1 -DHAVE_POLL_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_PWD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_UTSNAME_H=1 -DHAVE_TERMCAP_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UTIME_H=1 -DHAVE_SSTREAM=1 -DHAVE_TERMIOS_H=1 -DHAVE_TERMIO_H=1 -DHAVE_SGTTY_H=1 -DHAVE_GLOB_H=1 -DHAVE_FNMATCH_H=1 -DHAVE_FNMATCH=1 -DHAVE_GLOB=1 -DHAVE_ATEXIT=1 -DHAVE_BASENAME=1 -DHAVE_BCOPY=1 -DHAVE_BZERO=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_CHMOD=1 -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1 -DHAVE_ENDPWENT=1 -DHAVE_EXECVP=1 -DHAVE_EXPM1=1 -DHAVE_EXPM1F=1 -DHAVE_FCNTL=1 -DHAVE_FORK=1 -DHAVE_FSTAT=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETGRENT=1 -DHAVE_GETGRGID=1 -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1 -DHAVE_GETPID=1 -DHAVE_GETPPID=1 -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_GETUID=1 -DHAVE_GETWD=1 -DHAVE_KILL=1 -DHAVE_LGAMMA=1 -DHAVE_LGAMMAF=1 -DHAVE_LGAMMA_R=1 -DHAVE_LGAMMAF_R=1 -DHAVE_LINK=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LOG1P=1 -DHAVE_LOG1PF=1 -DHAVE_LSTAT=1 -DHAVE_MEMMOVE=1 -DHAVE_MKDIR=1 -DHAVE_MKFIFO=1 -DHAVE_MKSTEMP=1 -DHAVE_ON_EXIT=1 -DHAVE_PIPE=1 -DHAVE_POLL=1 -DHAVE_PUTENV=1 -DHAVE_RAISE=1 -DHAVE_READLINK=1 -DHAVE_REALPATH=1 -DHAVE_RENAME=1 -DHAVE_RINDEX=1 -DHAVE_RMDIR=1 -DHAVE_ROUNDL=1 -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 -DHAVE_SETLOCALE=1 -DHAVE_SETPWENT=1 -DHAVE_SETVBUF=1 -DHAVE_SIGACTION=1 -DHAVE_SIGLONGJMP=1 -DHAVE_SIGPENDING=1 -DHAVE_SIGPROCMASK=1 -DHAVE_SIGSUSPEND=1 -DHAVE_SNPRINTF=1 -DHAVE_STAT=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRERROR=1 -DHAVE_STRNCASECMP=1 -DHAVE_STRPTIME=1 -DHAVE_STRSIGNAL=1 -DHAVE_SYMLINK=1 -DHAVE_TEMPNAM=1 -DHAVE_TGAMMAF=1 -DHAVE_TRUNC=1 -DHAVE_UMASK=1 -DHAVE_UNAME=1 -DHAVE_UNLINK=1 -DHAVE_USLEEP=1 -DHAVE_UTIME=1 -DHAVE_VFPRINTF=1 -DHAVE_VSPRINTF=1 -DHAVE_VSNPRINTF=1 -DHAVE_WAITPID=1 -DHAVE_DECL_EXP2=1 -DHAVE_DECL_ROUND=1 -DHAVE_DECL_TGAMMA=1 -DHAVE_EXP2=1 -DHAVE_ROUND=1 -DHAVE_TGAMMA=1 -DHAVE_STRFTIME=1 -DHAVE_C99_VSNPRINTF=1 -DHAVE_LIBDL=1 -DHAVE_DLOPEN=1 -DHAVE_DLSYM=1 -DHAVE_DLERROR=1 -DHAVE_DLCLOSE=1 -DHAVE_DLOPEN_API=1 -DENABLE_DYNAMIC_LINKING=1 -DHAVE_TIMEVAL=1 -DHAVE_CMATH_ISNAN=1 -DHAVE_CMATH_ISNANF=1 -DHAVE_CMATH_ISINF=1 -DHAVE_CMATH_ISINFF=1 -DHAVE_CMATH_ISFINITE=1 -DHAVE_CMATH_ISFINITEF=1 -DHAVE_FINITE=1 -DHAVE_ISNAN=1 -DHAVE_ISINF=1 -DHAVE_COPYSIGN=1 -DHAVE_DECL_SIGNBIT=1 -DHAVE_ACOSH=1 -DHAVE_ACOSHF=1 -DHAVE_ASINH=1 -DHAVE_ASINHF=1 -DHAVE_ATANH=1 -DHAVE_ATANHF=1 -DHAVE_ERF=1 -DHAVE_ERFF=1 -DHAVE_ERFC=1 -DHAVE_ERFCF=1 -DHAVE_EXP2F=1 -DHAVE_LOG2=1 -DHAVE_LOG2F=1 -DHAVE_HYPOTF=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DUSE_READLINE=1 -DEXCEPTION_IN_MATH=1 -DRETSIGTYPE=void -DHAVE_DECL_SYS_SIGLIST=1 -DHAVE_POSIX_SIGNALS=1 -DRETSIGTYPE_IS_VOID=1 -DHAVE_GETRUSAGE=1 -DHAVE_TIMES=1 -DYYTEXT_POINTER=1

CC = gcc
CC_VERSION = 4.2.1
CFLAGS = -g -O2
CPICFLAG = -fPIC
XTRA_CFLAGS = 
WARN_CFLAGS =  -Wall -W -Wshadow -Wformat
ALL_CFLAGS = $(INCFLAGS) $(DLL_CDEFS) $(DEFS) $(XTRA_CFLAGS) $(WARN_CFLAGS) $(CFLAGS)
BUG_CFLAGS = $(DEFS) $(XTRA_CFLAGS) $(WARN_CFLAGS) $(CFLAGS)

BUILD_CC = $(CC)
BUILD_CFLAGS = $(CFLAGS)

DEPEND_FLAGS = -M
DEPEND_EXTRA_SED_PATTERN = 
INCLUDE_DEPS = true
ifeq ($(INCLUDE_DEPS),false)
  omit_deps = true;
endif

GRAPHICS_CFLAGS = 

CXX = g++
CXX_VERSION = 4.2.1
CXXCPP = g++ -E
CXXFLAGS = -g -O2
CXXPICFLAG = -fPIC
XTRA_CXXFLAGS = 
WARN_CXXFLAGS =  -Wall -W -Wshadow -Wold-style-cast -Wformat
ALL_CXXFLAGS = \
  $(INCFLAGS) $(DLL_CXXDEFS) $(DEFS) $(XTRA_CXXFLAGS) $(WARN_CXXFLAGS) $(CXXFLAGS)
BUG_CXXFLAGS = $(DEFS) $(XTRA_CXXFLAGS) $(WARN_CXXFLAGS) $(CXXFLAGS)

BUILD_CXX = $(CXX)
BUILD_CXXFLAGS = $(CXXFLAGS)

CPPFLAGS =  

LD_CXX = $(CXX)
LDFLAGS = 
LD_STATIC_FLAG = 
ALL_LDFLAGS = $(LIBFLAGS) $(LD_STATIC_FLAG) $(CPICFLAG) $(LDFLAGS)

BUILD_LDFLAGS = $(LDFLAGS)

SH_LD = $(CXX)
SH_LDFLAGS = -shared

DL_LD = $(SH_LD)
DL_LDFLAGS = $(SH_LDFLAGS)

SONAME_FLAGS = -Wl,-soname -Wl,$@

RDYNAMIC_FLAG = -rdynamic

RLD_FLAG = -Wl,-rpath -Wl,$(octlibdir)

FLIBS = /usr/lib/libf2c.a

LIBGLOB = 
LIBOCTINTERP = -loctinterp
LIBOCTAVE = -loctave
LIBCRUFT = -lcruft
LIBREADLINE = -lreadline
TERMLIBS =  -lncurses

FT2_LIBS = 
GRAPHICS_LIBS = 
QHULL_LIBS = -lqhull
REGEX_LIBS = -L/usr/lib -lpcre
BLAS_LIBS = -llapack -lblas
FFTW_LIBS = -lfftw3 -lfftw3f
GLPK_LIBS = 
CURL_LIBS = -lcurl
AMD_LIBS = -lamd
CAMD_LIBS = -lcamd
UMFPACK_LIBS = -lumfpack
COLAMD_LIBS = -lcolamd
CCOLAMD_LIBS = -lccolamd
CHOLMOD_LIBS = -lcholmod
CXSPARSE_LIBS = -lcxsparse
OPENGL_LIBS = 
QRUPDATE_LIBS = 
ARPACK_LIBS = 
LIBS = -lreadline  -lncurses -ldl -lz -lm 

USE_64_BIT_IDX_T = false

TEXINFO_COLAMD = @set HAVE_COLAMD
TEXINFO_CHOLMOD = @set HAVE_CHOLMOD
TEXINFO_UMFPACK = @set HAVE_UMFPACK
TEXINFO_QHULL = @set HAVE_QHULL

# The arguments passed to configure.
config_opts =  '--prefix=/opt/octave/' '--enable-readline' '--without-x' 'FLIBS=/usr/lib/libf2c.a'

CONFIG_SUBDIRS =  scripts

# ==================== Where To Install Things ====================

# The default location for installation.  Everything is placed in
# subdirectories of this directory.  The default values for many of
# the variables below are expressed in terms of this one, so you may
# not need to change them.  This defaults to /usr/local.
prefix = /opt/octave/

# Like `prefix', but used for architecture-specific files.
exec_prefix = ${prefix}

# Where to install Octave and other binaries that people will want to
# run directly.
bindir = ${exec_prefix}/bin

# Normally the directory for installing executables that system
# administrators run.  This is the same as libexecdir on Cygwin systems.
sbindir = ${exec_prefix}/sbin

# The root of the directory tree for read-only
# architecture-independent data files.
datarootdir = ${prefix}/share

# Where to install architecture-independent data files.  ${fcnfiledir}
# and ${localfcnfiledir} are subdirectories of this.
datadir = ${datarootdir}

libdir = ${exec_prefix}/lib

# Where to install and expect extra files like NEWS and doc-cache.
octetcdir = $(datadir)/octave/$(version)/etc

# Where to install and expect libraries like libcruft.a, liboctave.a,
# and other architecture-dependent data.
octlibdir = $(libdir)/octave-$(version)

# Where to install and expect executable programs to be run by Octave
# rather than directly by users.
libexecdir = ${exec_prefix}/libexec

# The prefix for Octave's include file directory.  The default is
# ${prefix}/include
includedir = ${prefix}/include

# Where to install Octave's man pages, and what extension they should
# have.  The default is ${prefix}/man/man1
mandir = ${datarootdir}/man
man1dir = $(mandir)/man1
man1ext = .1

# The full path to the default doc cache file.
doc_cache_file = $(octetcdir)/doc-cache

# Where to install and expect the info files describing Octave..
infodir = ${datarootdir}/info

# The full path to the default info file.
infofile = $(infodir)/octave.info

# ==================== Octave-specific directories ====================

# These variables hold the values specific to Octave.  They are
# based on the values of the standard Make variables above.

# What is the path separation character
sepchar = :

# Where to install Octave's include files (they will actually be
# installed in a subdirectory called octave).  The default is
# ${includedir}/octave-${version}
octincludedir = $(includedir)/octave-$(version)

# Where to install the function file distributed with
# Octave.  This includes the Octave version, so that the
# function files for different versions of Octave will install
# themselves in separate directories.
fcnfiledir = $(datadir)/octave/$(version)/m

# Directories Octave should search for function files specific
# to this site (i.e. customizations), before consulting
# ${fcnfiledir}.  This should be a colon-separated list of
# directories.
localfcnfiledir = $(datadir)/octave/site/m
localapifcnfiledir = $(datadir)/octave/site/$(api_version)/m
localverfcnfiledir = $(datadir)/octave/$(version)/site/m

# Where to put executables to be run by Octave rather than
# the user.  This path usually includes the Octave version
# and configuration name, so that multiple configurations
# for multiple versions of Octave may be installed at once.
archlibdir = $(libexecdir)/octave/$(version)/exec/$(canonical_host_type)

# Where to put executables to be run by Octave rather than by the
# user that are specific to this site.
localarchlibdir = $(libexecdir)/octave/site/exec/$(canonical_host_type)
localapiarchlibdir = $(libexecdir)/octave/$(api_version)/site/exec/$(canonical_host_type)
localverarchlibdir = $(libexecdir)/octave/$(version)/site/exec/$(canonical_host_type)

# Where to put object files that will by dynamically loaded.
# This path usually includes the Octave version and configuration
# name, so that multiple configurations for multiple versions of
# Octave may be installed at once. 
octfiledir = $(libexecdir)/octave/$(version)/oct/$(canonical_host_type)

# Directories Octave should search for object files that will be
# dynamically loaded and that are specific to this site
# (i.e. customizations), before consulting ${octfiledir}.  This should
# be a colon-separated list of directories.
localoctfiledir = $(libexecdir)/octave/site/oct/$(canonical_host_type)
localapioctfiledir = $(libexecdir)/octave/site/oct/$(api_version)/$(canonical_host_type)
localveroctfiledir = $(libexecdir)/octave/$(version)/site/oct/$(canonical_host_type)

# Where Octave will search to find image files.
imagedir = $(datadir)/octave/$(version)/imagelib

# The type of computer we are running on.
canonical_host_type = arm-unknown-linux-gnueabi

# Where Octave will look for startup files
startupfiledir = ${fcnfiledir}/startup
localstartupfiledir = ${localfcnfiledir}/startup

# LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PATH, ...
library_path_var = LD_LIBRARY_PATH

NO_OCT_FILE_STRIP = false

# The following pattern rules and the substitution functions require
# GNU make.  If you don't have it, get it!

# How to make .o files:

%.o : %.f
	$(FC) -c $(ALL_FFLAGS) -o $@ $<

%.o : %.c
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< -o $@

%.o : %.cc
	$(CXX) -c $(CPPFLAGS) $(ALL_CXXFLAGS) $< -o $@

pic/%.o : %.f
	$(FC) -c $(FPICFLAG) $(ALL_FFLAGS) $< -o $@

pic/%.o : %.c
	$(CC) -c $(CPPFLAGS) $(CPICFLAG) $(ALL_CFLAGS) $< -o $@

pic/%.o : %.cc
	$(CXX) -c $(CPPFLAGS) $(CXXPICFLAG) $(ALL_CXXFLAGS) $< -o $@

# Here is a rule for generating dependencies for .cc files:

%.d : %.cc
	@echo making $@ from $<
	@rm -f $@
	@$(CXX) $(DEPEND_FLAGS) $(CPPFLAGS) $(ALL_CXXFLAGS) $< | \
	  $(SED) \
              $(DEPEND_EXTRA_SED_PATTERN) \
	      -e 's,^[^:]*/\(.*\.o\):,\1:,' \
	      -e 's,$*\.o,pic/& & $*.df $@,g' > $@-t
	@mv $@-t $@

# And one for .c files.too:

%.d : %.c
	@echo making $@ from $<
	@rm -f $@
	@$(CC) $(DEPEND_FLAGS) $(CPPFLAGS) $(ALL_CFLAGS) $< | \
	  $(SED) \
              $(DEPEND_EXTRA_SED_PATTERN) \
	      -e 's,^[^:]*/\(.*\.o\):,\1:,' \
	      -e 's,$*\.o,pic/& & $@,g' > $@-t
	@mv $@-t $@

define do-subdir-for-command
echo making $@ in $d; $(MAKE) -C $d $@;
endef

define subdir-for-command
$(foreach d, $(SUBDIRS), $(do-subdir-for-command))
endef

define simple-move-if-change-rule
if [ -s $@-t ]; then \
  $(top_srcdir)/move-if-change $@-t $@; \
else \
  echo "$@-t is empty!" 1>&2; \
  rm -f $@-t; \
  exit 1; \
fi
endef

define builddir-move-if-change-rule
if [ -s $(@F)-t ]; then \
  $(top_srcdir)/move-if-change $(@F)-t $(@F); \
else \
  echo "$(@F)-t is empty!" 1>&2; \
  rm -f $(@F)-t; \
  exit 1; \
fi
endef

# Yes, the second sed command near the end is needed, to avoid limits
# in command lengths for some versions of sed.  UGLY_DEFS is often
# quite large, so it makes sense to split this command there.

define do-subst-config-vals
echo "making $@ from $<"
$(SED) < $< \
  -e "s|%NO_OCT_FILE_STRIP%|${NO_OCT_FILE_STRIP}|" \
  -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \
  -e "s|%OCTAVE_CONF_ALL_CFLAGS%|\"${ALL_CFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_ALL_CXXFLAGS%|\"${ALL_CXXFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_ALL_FFLAGS%|\"${ALL_FFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_ALL_LDFLAGS%|\"${ALL_LDFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_AR%|\"${AR}\"|" \
  -e "s|%OCTAVE_CONF_ARFLAGS%|\"${ARFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_BLAS_LIBS%|\"${BLAS_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \
  -e "s|%OCTAVE_CONF_CARBON_LIBS%|\"${CARBON_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_CC%|\"${CC}\"|" \
  -e "s|%OCTAVE_CONF_CC_VERSION%|\"${CC_VERSION}\"|" \
  -e "s|%OCTAVE_CONF_CFLAGS%|\"${CFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_CPICFLAG%|\"${CPICFLAG}\"|" \
  -e "s|%OCTAVE_CONF_CPPFLAGS%|\"${CPPFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_CURL_LIBS%|\"${CURL_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_CXX%|\"${CXX}\"|" \
  -e "s|%OCTAVE_CONF_CXXCPP%|\"${CXXCPP}\"|" \
  -e "s|%OCTAVE_CONF_CXXFLAGS%|\"${CXXFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_CXXPICFLAG%|\"${CXXPICFLAG}\"|" \
  -e "s|%OCTAVE_CONF_CXX_VERSION%|\"${CXX_VERSION}\"|" \
  -e "s|%OCTAVE_CONF_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \
  -e "s|%OCTAVE_CONF_DEPEND_FLAGS%|\"${DEPEND_FLAGS}\"|" \
  -e "s|%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%|\"${DEPEND_EXTRA_SED_PATTERN}\"|" \
  -e "s|%OCTAVE_CONF_DL_LD%|\"${DL_LD}\"|" \
  -e "s|%OCTAVE_CONF_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_EXEEXT%|\"${EXEEXT}\"|" \
  -e "s|%OCTAVE_CONF_F77%|\"${F77}\"|" \
  -e "s|%OCTAVE_CONF_F77_FLOAT_STORE_FLAG%|\"${F77_FLOAT_STORE_FLAG}\"|" \
  -e "s|%OCTAVE_CONF_FC%|\"${FC}\"|" \
  -e "s|%OCTAVE_CONF_FFLAGS%|\"${FFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_FFTW_LIBS%|\"${FFTW_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_FLIBS%|\"${FLIBS}\"|" \
  -e "s|%OCTAVE_CONF_FPICFLAG%|\"${FPICFLAG}\"|" \
  -e "s|%OCTAVE_CONF_GLPK_LIBS%|\"${GLPK_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_GNUPLOT%|\"${GNUPLOT}\"|" \
  -e "s|%OCTAVE_CONF_INCFLAGS%|\"${INCFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_INCLUDEDIR%|\"${includedir}\"|" \
  -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \
  -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_LD_STATIC_FLAG%|\"${LD_STATIC_FLAG}\"|" \
  -e "s|%OCTAVE_CONF_LEX%|\"${LEX}\"|" \
  -e "s|%OCTAVE_CONF_LEXLIB%|\"${LEXLIB}\"|" \
  -e "s|%OCTAVE_CONF_LFLAGS%|\"${LFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_LIBCRUFT%|\"${LIBCRUFT}\"|" \
  -e "s|%OCTAVE_CONF_LIBDIR%|\"${libdir}\"|" \
  -e "s|%OCTAVE_CONF_LIBEXT%|\"${LIBEXT}\"|" \
  -e "s|%OCTAVE_CONF_LIBFLAGS%|\"${LIBFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_LIBGLOB%|\"${LIBGLOB}\"|" \
  -e "s|%OCTAVE_CONF_LIBOCTAVE%|\"${LIBOCTAVE}\"|" \
  -e "s|%OCTAVE_CONF_LIBOCTINTERP%|\"${LIBOCTINTERP}\"|" \
  -e "s|%OCTAVE_CONF_LIBREADLINE%|\"${LIBREADLINE}\"|" \
  -e "s|%OCTAVE_CONF_LIBS%|\"${LIBS}\"|" \
  -e "s|%OCTAVE_CONF_LN_S%|\"${LN_S}\"|" \
  -e "s|%OCTAVE_CONF_MAGICK_INCFLAGS%|\"${MAGICK_INCFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_MAGICK_LIBS%|\"${MAGICK_LIBS}\"|" \
  -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"-shared -Wl,-Bsymbolic\"|' \
  -e "s|%OCTAVE_CONF_OCTINCLUDEDIR%|\"${octincludedir}\"|" \
  -e "s|%OCTAVE_CONF_OCTLIBDIR%|\"${octlibdir}\"|" \
  -e "s|%OCTAVE_CONF_PREFIX%|\"${prefix}\"|" \
  -e "s|%OCTAVE_CONF_RANLIB%|\"${RANLIB}\"|" \
  -e "s|%OCTAVE_CONF_RDYNAMIC_FLAG%|\"${RDYNAMIC_FLAG}\"|" \
  -e "s|%OCTAVE_CONF_RLD_FLAG%|\"${RLD_FLAG}\"|" \
  -e "s|%OCTAVE_CONF_SED%|\"${SED}\"|" \
  -e "s|%OCTAVE_CONF_SHARED_LIBS%|\"${SHARED_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_SHLEXT%|\"${SHLEXT}\"|" \
  -e "s|%OCTAVE_CONF_SHLLINKEXT%|\"${SHLLINKEXT}\"|" \
  -e "s|%OCTAVE_CONF_SHLEXT_VER%|\"${SHLEXT_VER}\"|" \
  -e "s|%OCTAVE_CONF_SH_LD%|\"${SH_LD}\"|" \
  -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_SONAME_FLAGS%|\"${SONAME_FLAGS}\"|" \
  -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_UGLY_DEFS%|\"${UGLY_DEFS}\"|" \
  -e "s|%OCTAVE_CONF_USE_64_BIT_IDX_T%|\"${USE_64_BIT_IDX_T}\"|" \
  -e "s|%OCTAVE_CONF_VERSION%|\"${version}\"|" \
  -e "s|%OCTAVE_CONF_ENABLE_DYNAMIC_LINKING%|\"${ENABLE_DYNAMIC_LINKING}\"|" \
  -e "s|%OCTAVE_CONF_X11_INCFLAGS%|\"${X11_INCFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_X11_LIBS%|\"${X11_LIBS}\"|" \
  -e "s|%OCTAVE_CONF_XTRA_CFLAGS%|\"${XTRA_CFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_XTRA_CXXFLAGS%|\"${XTRA_CXXFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_YACC%|\"${YACC}\"|" \
  -e "s|%OCTAVE_CONF_YFLAGS%|\"${YFLAGS}\"|" \
  -e "s|%OCTAVE_CONF_config_opts%|\"${config_opts}\"|" | \
  $(SED)  -e "s|%OCTAVE_CONF_DEFS%|\"${UGLY_DEFS}\"|" > $@-t
$(simple-move-if-change-rule)
endef

define do-subst-default-vals
echo "making $@ from $<"
$(SED) < $< > $@-t \
  -e "s|%OCTAVE_ARCHLIBDIR%|\"${archlibdir}\"|" \
  -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \
  -e "s|%OCTAVE_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \
  -e "s|%OCTAVE_DATADIR%|\"${datadir}\"|" \
  -e "s|%OCTAVE_DATAROOTDIR%|\"${datarootdir}\"|" \
  -e "s|%OCTAVE_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \
  -e "s|%OCTAVE_DOC_CACHE_FILE%|\"${doc_cache_file}\"|" \
  -e "s|%OCTAVE_EXEC_PREFIX%|\"${exec_prefix}\"|" \
  -e "s|%OCTAVE_FCNFILEDIR%|\"${fcnfiledir}\"|" \
  -e "s|%OCTAVE_IMAGEDIR%|\"${imagedir}\"|" \
  -e "s|%OCTAVE_INCLUDEDIR%|\"${includedir}\"|" \
  -e "s|%OCTAVE_INFODIR%|\"${infodir}\"|" \
  -e "s|%OCTAVE_INFOFILE%|\"${infofile}\"|" \
  -e "s|%OCTAVE_LIBDIR%|\"${libdir}\"|" \
  -e "s|%OCTAVE_LIBEXECDIR%|\"${libexecdir}\"|" \
  -e "s|%OCTAVE_LOCALAPIFCNFILEDIR%|\"${localapifcnfiledir}\"|" \
  -e "s|%OCTAVE_LOCALAPIOCTFILEDIR%|\"${localapioctfiledir}\"|" \
  -e "s|%OCTAVE_LOCALARCHLIBDIR%|\"${localarchlibdir}\"|" \
  -e "s|%OCTAVE_LOCALFCNFILEDIR%|\"${localfcnfiledir}\"|" \
  -e "s|%OCTAVE_LOCALOCTFILEDIR%|\"${localoctfiledir}\"|" \
  -e "s|%OCTAVE_LOCALSTARTUPFILEDIR%|\"${localstartupfiledir}\"|" \
  -e "s|%OCTAVE_LOCALAPIARCHLIBDIR%|\"${localapiarchlibdir}\"|" \
  -e "s|%OCTAVE_LOCALVERARCHLIBDIR%|\"${localverarchlibdir}\"|" \
  -e "s|%OCTAVE_LOCALVERFCNFILEDIR%|\"${localverfcnfiledir}\"|" \
  -e "s|%OCTAVE_LOCALVEROCTFILEDIR%|\"${localveroctfiledir}\"|" \
  -e "s|%OCTAVE_MAN1DIR%|\"${man1dir}\"|" \
  -e "s|%OCTAVE_MAN1EXT%|\"${man1ext}\"|" \
  -e "s|%OCTAVE_MANDIR%|\"${mandir}\"|" \
  -e "s|%OCTAVE_OCTFILEDIR%|\"${octfiledir}\"|" \
  -e "s|%OCTAVE_OCTETCDIR%|\"${octetcdir}\"|" \
  -e "s|%OCTAVE_OCTINCLUDEDIR%|\"${octincludedir}\"|" \
  -e "s|%OCTAVE_OCTLIBDIR%|\"${octlibdir}\"|" \
  -e "s|%OCTAVE_STARTUPFILEDIR%|\"${startupfiledir}\"|" \
  -e "s|%OCTAVE_PREFIX%|\"${prefix}\"|" \
  -e "s|%OCTAVE_API_VERSION%|\"${api_version}\"|" \
  -e "s|%OCTAVE_RELEASE%|\"${OCTAVE_RELEASE}\"|" \
  -e "s|%OCTAVE_VERSION%|\"${version}\"|"
$(simple-move-if-change-rule)
endef

define do-subst-texinfo-vals
echo "making $@ from $<"
$(SED) < $< \
  -e "s|%abs_top_srcdir%|${abs_top_srcdir}|" \
  -e "s|%top_srcdir%|${top_srcdir}|" \
  -e "s|%OCTAVE_HOME%|${prefix}|" \
  -e "s|%OCTAVE_VERSION%|${version}|" \
  -e "s|%TEXINFO_COLAMD%|${TEXINFO_COLAMD}|" \
  -e "s|%TEXINFO_CHOLMOD%|${TEXINFO_CHOLMOD}|" \
  -e "s|%TEXINFO_UMFPACK%|${TEXINFO_UMFPACK}|" \
  -e "s|%TEXINFO_QHULL%|${TEXINFO_QHULL}|" | \
  $(SED) -e "s|%OCTAVE_CONF_DEFS%|\"${UGLY_DEFS}\"|" > $@-t
$(simple-move-if-change-rule)
endef

define do-subst-script-vals
echo "making $@ from $<"
$(SED) < $< \
  -e "s|%AWK%|${AWK}|g" \
  -e "s|%FIND%|${FIND}|g" \
  -e "s|%SED%|${SED}|g" \
  -e "s|%library_path_var%|${library_path_var}|g" \
  -e "s|%liboctinterp%|${SHLPRE}octinterp.${SHLEXT}|g" \
  -e "s|%liboctave%|${SHLPRE}octave.${SHLEXT}|g" \
  -e "s|%libcruft%|${SHLPRE}cruft.${SHLEXT}|g" \
  -e "s|%srcdir%|${srcdir}|" \
  -e "s|%top_srcdir%|${top_srcdir}|" \
  -e "s|%abs_top_srcdir%|${abs_top_srcdir}|" \
  -e "s|%builddir%|$(shell pwd)|" > $@-t
$(simple-move-if-change-rule)
endef

define do-subst-f77-mangling
echo "making $@ from $<"
$(SED) < $< \
  -e "s|%F77_TOLOWER%|${F77_TOLOWER}|g" \
  -e "s|%F77_APPEND_UNDERSCORE%|${F77_APPEND_UNDERSCORE}|" \
  -e "s|%F77_APPEND_EXTRA_UNDERSCORE%|${F77_APPEND_EXTRA_UNDERSCORE}|" > $@-t
$(simple-move-if-change-rule)
endef

define do-mkpkgadd
$(top_srcdir)/mkpkgadd $(srcdir) > PKG_ADD.t
if [ -n "`cat PKG_ADD.t`" ]; then \
  mv PKG_ADD.t PKG_ADD ; \
else \
  rm -f PKG_ADD.t ; \
fi
endef

define do-script-install
$(top_srcdir)/mkinstalldirs \
  $(addprefix $(DESTDIR), $(fcnfiledir)/$(script_sub_dir))
for f in $(FCN_FILES); do \
  fbase=`basename $$f`; \
  rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \
  $(INSTALL_DATA) $$f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \
done
$(top_srcdir)/mkpkgadd $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) > $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t
if [ -n "`cat $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t`" ]; then \
  $(INSTALL_DATA) $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD ; \
else \
  rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t ; \
fi
endef

define do-script-uninstall
for f in $(FCN_FILES_NO_DIR); \
  do rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$f; \
done
rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD
-rmdir $(addprefix $(DESTDIR), $(fcnfiledir)/$(script_sub_dir))
endef

define do-check-m-sources
for f in $(notdir $(wildcard $(srcdir)/*.m)); do \
  found=false; \
  for m in $(SOURCES); do \
    if [ "$$f" = "$$m" ]; then \
      found=true; \
      break; \
    fi; \
  done; \
  if $$found; then \
    true; \
  else \
    echo "$(script_sub_dir)/$$f: not listed in SOURCES"; \
  fi; \
done
endef
