# HG changeset patch # User jwe # Date 846662304 0 # Node ID dc870b8b229fbb26ec8acb0ac3a30957b9ad42b0 # Parent adde4cb6b15db7104c6781fd01863b3224170f46 [project @ 1996-10-30 07:57:31 by jwe] diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +Wed Oct 30 01:04:13 1996 John W. Eaton + + * octMakefile.in (DIRS_TO_MAKE): Add localarchlibdir to list. + + * configure.in (localarchlibdir): New variable. + * Makeconf.in (localarchlibdir): Substitute it. + (do-subst-default-vals): Likewise. + +Sun Oct 27 14:03:36 1996 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Split into two sed commands + to try to avoid fixed limits in some seds and/or systems. + Fri Oct 25 01:13:45 1996 John W. Eaton * config.h.bot: Add definition for GCC_ATTRIBUTE_UNUSED. diff --git a/Makeconf.in b/Makeconf.in --- a/Makeconf.in +++ b/Makeconf.in @@ -206,6 +206,10 @@ # for multiple versions of Octave may be installed at once. archlibdir = @archlibdir@ +# Where to put executables to be run by Octave rather than by the +# user that are specific to this site. +localarchlibdir = @localarchlibdir@ + # 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 @@ -300,7 +304,7 @@ define do-subst-config-vals echo "making $@ from $<" -sed < $< > $@.tmp \ +sed < $< \ -e "s;%VERSION%;\"${version}\";" \ -e "s;%config_opts%;\"${config_opts}\";" \ -e "s;%TARGET_HOST_TYPE%;\"${target_host_type}\";" \ @@ -332,8 +336,8 @@ -e "s;%LIBS%;\"${LIBS}\";" \ -e "s;%LEXLIB%;\"${LEXLIB}\";" \ -e "s;%LIBPLPLOT%;\"${LIBPLPLOT}\";" \ - -e "s;%LIBDLFCN%;\"${LIBDLFCN}\";" \ - -e "s;%DEFS%;\"${UGLY_DEFS}\";" + -e "s;%LIBDLFCN%;\"${LIBDLFCN}\";" | sed \ + -e "s;%DEFS%;\"${UGLY_DEFS}\";" > $@.tmp $(top_srcdir)/move-if-change $@.tmp $@ endef @@ -351,6 +355,7 @@ -e "s;%OCTAVE_LOCALFCNFILEDIR%;\"${localfcnfiledir}\";" \ -e "s;%OCTAVE_LOCALFCNFILEPATH%;\"${localfcnfilepath}\";" \ -e "s;%OCTAVE_ARCHLIBDIR%;\"${archlibdir}\";" \ + -e "s;%OCTAVE_LOCALARCHLIBDIR%;\"${localarchlibdir}\";" \ -e "s;%OCTAVE_OCTFILEDIR%;\"${octfiledir}\";" \ -e "s;%OCTAVE_LOCALOCTFILEPATH%;\"${localoctfilepath}\";" \ -e "s;%OCTAVE_FCNFILEPATH%;\"${fcnfilepath}\";" \ diff --git a/PROJECTS b/PROJECTS --- a/PROJECTS +++ b/PROJECTS @@ -65,6 +65,10 @@ * Optional inputs for fsqp. + * Allow parameters to be passed through the call to fsolve() to the + user-supplied function for Matlab compatibility. Don't place an + upper limit on the number of arguments. + * If possible, make economy QR factorization actually take advantage of the form of the result instead of just dropping columns. Lapack doesn't appear to do this yet. @@ -73,6 +77,9 @@ * Improve design of ODE, DAE, classes. + * Make it possible to specify a time which dassl and lsode should + not integrate past. + * Extend meaning of .* to include v .* M or M .* v (where v is a column vector with the same number of rows as M) to scale rows of M by elements of v. Similarly, if w is a row vector with as many @@ -365,6 +372,8 @@ * Make whos report total memory used by variables (and functions?). + * Rewrite whos and the symbol_record_info class. + ------- History: ------- diff --git a/configure.in b/configure.in --- a/configure.in +++ b/configure.in @@ -20,7 +20,7 @@ ### along with Octave; see the file COPYING. If not, write to the Free ### Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -AC_REVISION($Revision: 1.220 $) +AC_REVISION($Revision: 1.221 $) AC_PREREQ(2.9) AC_INIT(src/octave.cc) AC_CONFIG_HEADER(config.h) @@ -50,6 +50,7 @@ localfcnfiledir='$(datadir)/octave/site/m' localfcnfilepath='$(localfcnfiledir)//' archlibdir='$(libexecdir)/octave/$(version)/exec/$(target_host_type)' +localarchlibdir='$(libexecdir)/octave/site/exec/$(target_host_type)' octfiledir='$(libexecdir)/octave/$(version)/oct/$(target_host_type)' localoctfiledir='$(libexecdir)/octave/site/oct/$(target_host_type)' localoctfilepath='$(localoctfiledir)//' @@ -73,6 +74,7 @@ AC_MSG_RESULT([defining localfcnfiledir to be $localfcnfiledir]) AC_MSG_RESULT([defining localfcnfilepath to be $localfcnfilepath]) AC_MSG_RESULT([defining archlibdir to be $archlibdir]) +AC_MSG_RESULT([defining localarchlibdir to be $localarchlibdir]) AC_MSG_RESULT([defining octfiledir to be $octfiledir]) AC_MSG_RESULT([defining localoctfiledir to be $localoctfiledir]) AC_MSG_RESULT([defining localoctfilepath to be $localoctfilepath]) @@ -95,6 +97,7 @@ AC_SUBST(localfcnfiledir) AC_SUBST(localfcnfilepath) AC_SUBST(archlibdir) +AC_SUBST(localarchlibdir) AC_SUBST(octfiledir) AC_SUBST(localoctfiledir) AC_SUBST(localoctfilepath) diff --git a/octMakefile.in b/octMakefile.in --- a/octMakefile.in +++ b/octMakefile.in @@ -53,7 +53,7 @@ CLEANSUBDIRS = $(DISTSUBDIRS) glob kpathsea DIRS_TO_MAKE = $(bindir) $(libdir) $(octincludedir) $(fcnfiledir) \ - $(octfiledir) $(archlibdir) \ + $(octfiledir) $(archlibdir) $(localarchlibdir) \ `echo $(localfcnfilepath) | awk -F: '{for (i=1; i<=NF; i++) print $i}'` \ `echo $(localoctfilepath) | awk -F: '{for (i=1; i<=NF; i++) print $i}'` diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +Wed Oct 30 01:06:19 1996 John W. Eaton + + * derfaults.h.in, defaults.cc (local_arch_lib_dir): New variable. + * defaults.cc (set_default_local_arch_lib_dir): New function. + (install_defaults): Call it. + (exec_path): Use Vlocal_arch_lib_dir here. + * toplev.cc (octave_config_info): Add localarchlibdir to structure. + Tue Oct 29 15:54:27 1996 John W. Eaton * Makefile.in (install-oct): Don't do anything if $(OCT_FILES) is diff --git a/src/defaults.cc b/src/defaults.cc --- a/src/defaults.cc +++ b/src/defaults.cc @@ -32,6 +32,8 @@ #include #endif +#include + #include #include @@ -57,6 +59,7 @@ string Vlib_dir; string Vinfo_dir; string Varch_lib_dir; +string Vlocal_arch_lib_dir; string Vfcn_file_dir; // The path that will be searched for programs that we execute. @@ -119,6 +122,12 @@ } static void +set_default_local_arch_lib_dir (void) +{ + Vlocal_arch_lib_dir = subst_octave_home (OCTAVE_LOCALARCHLIBDIR); +} + +static void set_default_fcn_file_dir (void) { Vfcn_file_dir = subst_octave_home (OCTAVE_FCNFILEDIR); @@ -258,6 +267,8 @@ set_default_arch_lib_dir (); + set_default_local_arch_lib_dir (); + set_default_fcn_file_dir (); set_default_bin_dir (); @@ -302,15 +313,24 @@ { int status = 0; - if (Vexec_path.empty ()) + string s = builtin_string_variable ("EXEC_PATH"); + + if (s.empty ()) { gripe_invalid_value_specified ("EXEC_PATH"); status = -1; } else { - int len = Varch_lib_dir.length () + Vbin_dir.length () - + strlen (SEPCHAR_STR); + Vexec_path = s; + + string std_path = Vlocal_arch_lib_dir; + std_path.append (SEPCHAR_STR); + std_path.append (Varch_lib_dir); + std_path.append (SEPCHAR_STR); + std_path.append (Vbin_dir); + + int std_len = std_path.length (); static char *putenv_cmd = 0; @@ -325,50 +345,47 @@ int prepend = (Vexec_path[0] == ':'); int append = (eplen > 1 && Vexec_path[eplen-1] == ':'); + cerr << eplen << ", " << Vexec_path[eplen-1] << "\n"; + if (prepend) { if (append) { - putenv_cmd = new char [2 * len + eplen + 6]; - sprintf (putenv_cmd, - "PATH=%s" SEPCHAR_STR "%s%s%s" SEPCHAR_STR "%s", - Varch_lib_dir.c_str (), Vbin_dir.c_str (), - Vexec_path.c_str (), Varch_lib_dir.c_str (), - Vbin_dir.c_str ()); + putenv_cmd = new char [2 * std_len + eplen + 6]; + sprintf (putenv_cmd, "PATH=%s%s%s", + std_path.c_str (), Vexec_path.c_str (), + std_path.c_str ()); } else { - putenv_cmd = new char [len + eplen + 6]; - sprintf (putenv_cmd, - "PATH=%s" SEPCHAR_STR "%s%s", - Varch_lib_dir.c_str (), Vbin_dir.c_str (), - Vexec_path.c_str ()); + putenv_cmd = new char [std_len + eplen + 6]; + sprintf (putenv_cmd, "PATH=%s%s", + std_path.c_str (), Vexec_path.c_str ()); } } else { if (append) { - putenv_cmd = new char [len + eplen + 6]; - sprintf (putenv_cmd, - "PATH=%s%s" SEPCHAR_STR "%s", - Vexec_path.c_str (), Varch_lib_dir.c_str (), - Vbin_dir.c_str ()); + putenv_cmd = new char [std_len + eplen + 6]; + sprintf (putenv_cmd, "PATH=%s%s", + Vexec_path.c_str (), std_path.c_str ()); } else { - putenv_cmd = new char [len + eplen + 6]; + putenv_cmd = new char [eplen + 6]; sprintf (putenv_cmd, "PATH=%s", Vexec_path.c_str ()); } } } else { - putenv_cmd = new char [len+6]; - sprintf (putenv_cmd, "PATH=%s" SEPCHAR_STR "%s", - Varch_lib_dir.c_str (), Vbin_dir.c_str ()); + putenv_cmd = new char [std_len+6]; + sprintf (putenv_cmd, "PATH=%s", std_path.c_str ()); } + cerr << putenv_cmd << "\n"; + putenv (putenv_cmd); } diff --git a/src/defaults.h.in b/src/defaults.h.in --- a/src/defaults.h.in +++ b/src/defaults.h.in @@ -78,6 +78,10 @@ #define OCTAVE_ARCHLIBDIR %OCTAVE_ARCHLIBDIR% #endif +#ifndef OCTAVE_LOCALARCHLIBDIR +#define OCTAVE_LOCALARCHLIBDIR %OCTAVE_LOCALARCHLIBDIR% +#endif + #ifndef OCTAVE_OCTFILEDIR #define OCTAVE_OCTFILEDIR %OCTAVE_OCTFILEDIR% #endif @@ -120,6 +124,7 @@ extern string Vlib_dir; extern string Vinfo_dir; extern string Varch_lib_dir; +extern string Vlocal_arch_lib_dir; extern string Vfcn_file_dir; // The path that will be searched for programs that we execute. diff --git a/src/toplev.cc b/src/toplev.cc --- a/src/toplev.cc +++ b/src/toplev.cc @@ -792,6 +792,7 @@ m ["startupfiledir"] = OCTAVE_STARTUPFILEDIR; m ["localfcnfilepath"] = OCTAVE_LOCALFCNFILEPATH; m ["archlibdir"] = OCTAVE_ARCHLIBDIR; + m ["localarchlibdir"] = OCTAVE_LOCALARCHLIBDIR; m ["octfiledir"] = OCTAVE_OCTFILEDIR; m ["localoctfilepath"] = OCTAVE_LOCALOCTFILEPATH; m ["fcnfilepath"] = OCTAVE_FCNFILEPATH;