changeset 19066:d902542221c8

new data directory for storing data files we distribute * configure.ac (octdatadir): New variable. * common.mk (do_subst_default_vals): Also substitute octdatadir for %OCTAVE_OCTDATADIR%. * defaults.in.h, defaults.cc (OCTAVE_OCTDATADIR): New macro. (Voct_data_dir): New global variable. (set_default_oct_data_dir): New static function. (install_defaults): Call it. * load-path.cc (load_path::do_initialize): Add Voct_data_dir to the default system load path. * toplev.cc (Foctave_config_info): Include octdatadir in result. * octave-config.in.cc (help_msg, initialize): Include OCTDATADIR in the list of variables. * run-octave.in: Include $top_srcdir/etc/data in LOADPATH.
author John W. Eaton <jwe@octave.org>
date Tue, 19 Aug 2014 05:41:06 -0400
parents 1f36981ab323
children c8240a60dd01
files build-aux/common.mk configure.ac libinterp/corefcn/defaults.cc libinterp/corefcn/defaults.in.h libinterp/corefcn/load-path.cc libinterp/corefcn/toplev.cc run-octave.in src/octave-config.in.cc
diffstat 8 files changed, 34 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/build-aux/common.mk	Tue Aug 19 12:02:15 2014 -0400
+++ b/build-aux/common.mk	Tue Aug 19 05:41:06 2014 -0400
@@ -689,6 +689,7 @@
   -e "s|%OCTAVE_MAN1DIR%|\"${man1dir}\"|" \
   -e "s|%OCTAVE_MAN1EXT%|\"${man1ext}\"|" \
   -e "s|%OCTAVE_MANDIR%|\"${mandir}\"|" \
+  -e "s|%OCTAVE_OCTDATADIR%|\"${octdatadir}\"|" \
   -e "s|%OCTAVE_OCTFILEDIR%|\"${octfiledir}\"|" \
   -e "s|%OCTAVE_OCTETCDIR%|\"${octetcdir}\"|" \
   -e "s|%OCTAVE_OCTINCLUDEDIR%|\"${octincludedir}\"|" \
--- a/configure.ac	Tue Aug 19 12:02:15 2014 -0400
+++ b/configure.ac	Tue Aug 19 05:41:06 2014 -0400
@@ -113,6 +113,7 @@
 OCTAVE_SET_DEFAULT([octtestsdir], '$(octetcdir)/tests')
 OCTAVE_SET_DEFAULT([texi_macros_file], '$(octetcdir)/macros.texi')
 OCTAVE_SET_DEFAULT([imagedir], '$(datadir)/octave/$(version)/imagelib')
+OCTAVE_SET_DEFAULT([octdatadir], '$(datadir)/octave/$(version)/data')
 OCTAVE_SET_DEFAULT([man1dir], '$(mandir)/man1')
 OCTAVE_SET_DEFAULT([man1ext], '.1')
 OCTAVE_SET_DEFAULT([infofile], '$(infodir)/octave.info')
--- a/libinterp/corefcn/defaults.cc	Tue Aug 19 12:02:15 2014 -0400
+++ b/libinterp/corefcn/defaults.cc	Tue Aug 19 05:41:06 2014 -0400
@@ -74,6 +74,7 @@
 std::string Vlocal_api_fcn_file_dir;
 std::string Vlocal_fcn_file_dir;
 
+std::string Voct_data_dir;
 std::string Voct_etc_dir;
 std::string Voct_locale_dir;
 
@@ -219,6 +220,12 @@
 }
 
 static void
+set_default_oct_data_dir (void)
+{
+  Voct_data_dir = subst_octave_home (OCTAVE_OCTDATADIR);
+}
+
+static void
 set_default_oct_etc_dir (void)
 {
   Voct_etc_dir = subst_octave_home (OCTAVE_OCTETCDIR);
@@ -435,6 +442,7 @@
   set_default_local_api_fcn_file_dir ();
   set_default_local_fcn_file_dir ();
 
+  set_default_oct_data_dir ();
   set_default_oct_etc_dir ();
   set_default_oct_locale_dir ();
 
--- a/libinterp/corefcn/defaults.in.h	Tue Aug 19 12:02:15 2014 -0400
+++ b/libinterp/corefcn/defaults.in.h	Tue Aug 19 05:41:06 2014 -0400
@@ -148,6 +148,10 @@
 #define OCTAVE_MANDIR %OCTAVE_MANDIR%
 #endif
 
+#ifndef OCTAVE_OCTDATADIR
+#define OCTAVE_OCTDATADIR %OCTAVE_OCTDATADIR%
+#endif
+
 #ifndef OCTAVE_OCTFILEDIR
 #define OCTAVE_OCTFILEDIR %OCTAVE_OCTFILEDIR%
 #endif
@@ -202,6 +206,7 @@
 extern OCTINTERP_API std::string Vlocal_api_fcn_file_dir;
 extern OCTINTERP_API std::string Vlocal_fcn_file_dir;
 
+extern OCTINTERP_API std::string Voct_data_dir;
 extern OCTINTERP_API std::string Voct_etc_dir;
 extern OCTINTERP_API std::string Voct_locale_dir;
 
--- a/libinterp/corefcn/load-path.cc	Tue Aug 19 12:02:15 2014 -0400
+++ b/libinterp/corefcn/load-path.cc	Tue Aug 19 05:41:06 2014 -0400
@@ -569,6 +569,7 @@
       maybe_add_path_elts (sys_path, Vlocal_fcn_file_dir);
       maybe_add_path_elts (sys_path, Voct_file_dir);
       maybe_add_path_elts (sys_path, Vfcn_file_dir);
+      maybe_add_path_elts (sys_path, Voct_data_dir);
     }
 
   std::string tpath = load_path::command_line_path;
--- a/libinterp/corefcn/toplev.cc	Tue Aug 19 12:02:15 2014 -0400
+++ b/libinterp/corefcn/toplev.cc	Tue Aug 19 05:41:06 2014 -0400
@@ -1428,6 +1428,7 @@
     { true, "man1dir", OCTAVE_MAN1DIR },
     { false, "man1ext", OCTAVE_MAN1EXT },
     { true, "mandir", OCTAVE_MANDIR },
+    { true, "octdatadir", OCTAVE_OCTDATADIR },
     { true, "octfiledir", OCTAVE_OCTFILEDIR },
     { true, "octetcdir", OCTAVE_OCTETCDIR },
     { true, "octincludedir", OCTAVE_OCTINCLUDEDIR },
--- a/run-octave.in	Tue Aug 19 12:02:15 2014 -0400
+++ b/run-octave.in	Tue Aug 19 05:41:06 2014 -0400
@@ -33,18 +33,21 @@
 d1="$top_srcdir/scripts"
 d2="$builddir/scripts"
 d3="$builddir/libinterp"
+d4="$top_srcdir/examples/data"
 
 d1_list=`$FIND "$d1" -type d -a ! \( \( -name private -o -name '@*' \) -a -prune \) -exec echo '{}' ';' | $SED 's/$/:/'`
 d2_list=`$FIND "$d2" -type d -a ! \( \( -name private -o -name '@*' \) -a -prune \) -exec echo '{}' ';' | $SED 's/$/:/'`
 d3_list=`$FIND "$d3" -type d -a ! \( \( -name private -o -name '@*' \) -a -prune \) -exec echo '{}' ';' | $SED 's/$/:/'`
+d4_list=`$FIND "$d4" -type d -exec echo '{}' ';' | $SED 's/$/:/'`
 
 d1_path=`echo "$d1_list" | $AWK '{ t = (s $0); s = t; } END { sub (/:$/, "", s); print s; }'`
 d2_path=`echo "$d2_list" | $AWK '{ t = (s $0); s = t; } END { sub (/:$/, "", s); print s; }'`
 d3_path=`echo "$d3_list" | $AWK '{ t = (s $0); s = t; } END { sub (/:$/, "", s); print s; }'`
+d4_path=`echo "$d4_list" | $AWK '{ t = (s $0); s = t; } END { sub (/:$/, "", s); print s; }'`
 
 octave_executable="$builddir/src/octave"
 
-LOADPATH="$d1_path:$d2_path:$d3_path"
+LOADPATH="$d1_path:$d2_path:$d3_path:$d4_path"
 IMAGEPATH="$top_srcdir/scripts/image"
 DOCFILE="$builddir/doc/interpreter/doc-cache"
 BUILT_IN_DOCSTRINGS_FILE="$builddir/libinterp/DOCSTRINGS"
--- a/src/octave-config.in.cc	Tue Aug 19 12:02:15 2014 -0400
+++ b/src/octave-config.in.cc	Tue Aug 19 05:41:06 2014 -0400
@@ -56,23 +56,24 @@
 "  -p VAR, --print VAR   Print the value of the given configuration\n"
 "                        variable VAR.  Recognized variables are:\n"
 "\n"
-"                          API_VERSION            LOCALAPIOCTFILEDIR\n"
-"                          ARCHLIBDIR             LOCALARCHLIBDIR\n"
-"                          BINDIR                 LOCALFCNFILEDIR\n"
-"                          CANONICAL_HOST_TYPE    LOCALOCTFILEDIR\n"
-"                          DATADIR                LOCALSTARTUPFILEDIR\n"
-"                          DATAROOTDIR            LOCALVERARCHLIBDIR\n"
-"                          DEFAULT_PAGER          LOCALVERFCNFILEDIR\n"
-"                          EXEC_PREFIX            LOCALVEROCTFILEDIR\n"
-"                          FCNFILEDIR             MAN1DIR\n"
-"                          IMAGEDIR               MAN1EXT\n"
-"                          INCLUDEDIR             MANDIR\n"
+"                          API_VERSION            LOCALARCHLIBDIR\n"
+"                          ARCHLIBDIR             LOCALFCNFILEDIR\n"
+"                          BINDIR                 LOCALOCTFILEDIR\n"
+"                          CANONICAL_HOST_TYPE    LOCALSTARTUPFILEDIR\n"
+"                          DATADIR                LOCALVERARCHLIBDIR\n"
+"                          DATAROOTDIR            LOCALVERFCNFILEDIR\n"
+"                          DEFAULT_PAGER          LOCALVEROCTFILEDIR\n"
+"                          EXEC_PREFIX            MAN1DIR\n"
+"                          FCNFILEDIR             MAN1EXT\n"
+"                          IMAGEDIR               MANDIR\n"
+"                          INCLUDEDIR             OCTDATADIR\n"
 "                          INFODIR                OCTFILEDIR\n"
 "                          INFOFILE               OCTINCLUDEDIR\n"
 "                          LIBDIR                 OCTLIBDIR\n"
 "                          LIBEXECDIR             PREFIX\n"
 "                          LOCALAPIARCHLIBDIR     STARTUPFILEDIR\n"
 "                          LOCALAPIFCNFILEDIR     VERSION\n"
+"                          LOCALAPIOCTFILEDIR\n"
 "\n"
 "  -v, --version         Print the Octave version number.\n"
 "\n";
@@ -113,6 +114,7 @@
   vars["LOCALVEROCTFILEDIR"] = subst_octave_home (%OCTAVE_LOCALVEROCTFILEDIR%);
   vars["MAN1DIR"] = subst_octave_home (%OCTAVE_MAN1DIR%);
   vars["MANDIR"] = subst_octave_home (%OCTAVE_MANDIR%);
+  vars["OCTDATADIR"] = subst_octave_home (%OCTAVE_OCTDATADIR%);
   vars["OCTFILEDIR"] = subst_octave_home (%OCTAVE_OCTFILEDIR%);
   vars["OCTINCLUDEDIR"] = subst_octave_home (%OCTAVE_OCTINCLUDEDIR%);
   vars["OCTLIBDIR"] = subst_octave_home (%OCTAVE_OCTLIBDIR%);