changeset 2629:20704e7e5e79

[project @ 1997-01-27 06:11:52 by jwe]
author jwe
date Mon, 27 Jan 1997 06:11:59 +0000
parents 92fff89649c5
children fdee6fe3e73b
files ChangeLog Makefile.in configure.in doc/faq/FAQ.texi doc/interpreter/install.texi octMakefile.in
diffstat 6 files changed, 168 insertions(+), 93 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Mon Jan 27 00:10:10 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in: Delete `internal' targets.
+	(static-binary-dist, dynamic-binary-dist): Special cases.
+
+	* octMakefile.in (static-binary-dist, dynamic-binary-dist):
+	New targets.
+	(binary-dist, bin-dist): Delete.
+
 Sun Jan 26 19:39:51 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* emacs/Makefile.in: New file.
--- a/Makefile.in
+++ b/Makefile.in
@@ -35,10 +35,7 @@
 
 TARGETS = octave-bug mkoctfile libcruft liboctave kpathsea info dlfcn \
 	src scripts doc check octave.info INSTALL.OCTAVE BUGS \
-	install uninstall tags TAGS clean-tar dist-z links-for-dist \
-	dist-tar clean-dist-tar dist links-for-bin-dist bin-dist-tar \
-	clean-bin-dist-tar binary-dist bin-dist conf-dist \
-	snapshot-z snapshot snapshot-version
+	install uninstall tags TAGS dist conf-dist snapshot snapshot-version
 
 NO_DEP_TARGETS = clean mostlyclean distclean maintainer-clean
 
@@ -50,4 +47,24 @@
 $(NO_DEP_TARGETS): FORCE
 	$(MAKE) -f octMakefile omit_deps=true $@
 
+binary-dist: FORCE
+	@echo "***"
+	@echo "*** you must specify either static or dynamic:"
+	@echo "***"
+	@echo "*** make dynamic-binary-dist"
+	@echo "***"
+	@echo "***   dynamically linked version typically including support"
+	@echo "***   for shared libraried and dynamically linked functions"
+	@echo "***"
+	@echo "*** make static-binary-dist"
+	@echo "***"
+	@echo "***   statically linked version"
+	@echo "***"
+
+static-binary-dist:
+	$(MAKE) -f octMakefile DIST_TYPE=static binary-dist
+
+dynamic-binary-dist:
+	$(MAKE) -f octMakefile DIST_TYPE=dynamic binary-dist
+
 FORCE:  
--- a/configure.in
+++ b/configure.in
@@ -21,7 +21,7 @@
 ### Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 ### 02111-1307, USA. 
 
-AC_REVISION($Revision: 1.248 $)
+AC_REVISION($Revision: 1.249 $)
 AC_PREREQ(2.9)
 AC_INIT(src/octave.cc)
 AC_CONFIG_HEADER(config.h)
@@ -1119,8 +1119,9 @@
 AC_OUTPUT(Makefile octMakefile Makeconf test/Makefile dlfcn/Makefile
   doc/Makefile doc/faq/Makefile doc/interpreter/Makefile
   doc/liboctave/Makefile doc/refcard/Makefile emacs/Makefile
-  examples/Makefile liboctave/Makefile src/Makefile libcruft/Makefile
-  libcruft/Makerules libcruft/blas/Makefile libcruft/balgen/Makefile
+  emacs/Makefile examples/Makefile liboctave/Makefile
+  src/Makefile libcruft/Makefile libcruft/Makerules
+  libcruft/blas/Makefile libcruft/balgen/Makefile
   libcruft/dassl/Makefile libcruft/eispack/Makefile
   libcruft/fftpack/Makefile libcruft/fsqp/Makefile
   libcruft/lapack/Makefile libcruft/linpack/Makefile
--- a/doc/faq/FAQ.texi
+++ b/doc/faq/FAQ.texi
@@ -3,16 +3,6 @@
 @setfilename FAQ.info
 @settitle Frequently asked questions about Octave (with answers)
 
-@c Smaller amounts of whitespace for the 8.5 by 11 inch format.
-@tex
-\global\chapheadingskip = 15pt plus 4pt minus 2pt 
-\global\secheadingskip = 12pt plus 3pt minus 2pt
-\global\subsecheadingskip = 9pt plus 2pt minus 2pt
-\global\parskip 5pt plus 1pt
-
-@finalout
-@end tex
-
 @setchapternewpage off
 
 @titlepage
--- a/doc/interpreter/install.texi
+++ b/doc/interpreter/install.texi
@@ -396,7 +396,7 @@
 To install Octave from a binary distribution, execute the command
 
 @example
-sh ./doinstall.sh
+sh ./install-octave
 @end example
 
 @noindent
@@ -409,24 +409,29 @@
 @item bin
 Octave and other binaries that people will want to run directly.
 
+@item lib
+Shared libraries that Octave needs in order to run.  These files are
+not included if you are installing a statically linked version of
+Octave.
+
 @item man/man1
 Unix-style man pages describing Octave.
 
 @item info
 Info files describing Octave.
 
-@item lib/octave/@var{version}/m
+@item share/octave/@var{version}/m
 Function files distributed with Octave.  This includes the Octave
 version, so that multiple versions of Octave may be installed at the
 same time.
 
-@item lib/octave/@var{version}/exec/@var{host_type}
+@item libexec/octave/@var{version}/exec/@var{host_type}
 Executables to be run by Octave rather than the user.
 
-@item lib/octave/@var{version}/oct/@var{host_type}
+@item libexec/octave/@var{version}/oct/@var{host_type}
 Object files that will be dynamically loaded.
 
-@item lib/octave/@var{version}/imagelib
+@item share/octave/@var{version}/imagelib
 Image files that are distributed with Octave.
 @end table
 
@@ -435,16 +440,30 @@
 interpreter, and @var{host_type} is the type of computer on which Octave
 is installed (for example, @samp{i486-unknown-gnu}).
 
-If these directories don't exist, the script @file{doinstall.sh} will
-create them for you.
+If these directories don't exist, the script @file{install-octave} will
+create them for you.  The installation script also creates the following
+subdirectories of @file{/usr/local} that are intended for locally
+installed functions:
+
+@table @file
+@item share/octave/site/m
+Locally installed M-files.
+
+@item libexec/octave/site/exec/@var{host_type}
+Locally installed binaries intendec to be run by Octave rather than by
+the user.
+
+@item libexec/octave/site/octave/@var{host_type}
+Local object files that will be dynamically linked.
+@end table
 
 If it is not possible for you to install Octave in @file{/usr/local}, or
 if you would prefer to install it in a different directory, you can
 specify the name of the top level directory as an argument to the
-doinstall.sh script.  For example:
+@file{install-octave} script.  For example:
 
 @example
-sh ./doinstall.sh /some/other/directory
+sh ./install-octave /some/other/directory
 @end example
 
 @noindent
@@ -459,16 +478,48 @@
 
 @itemize @bullet
 @item
-You must build Octave in the same directory as the source.  This is
-required since the @samp{binary-dist} targets in the makefiles will not
-work if you compile outside the source tree.
+Unpack the source distribution.
+
+@item
+Configure Octave using the command
+
+@example
+./configure --disable-dl --disable-shl --disable-shared
+@end example
+
+If your system supports shared libraries and dynamic linking, you should
+also build a binary that supports those features, but it is important to
+create a statically linked executable that will run no matter what
+versions of the libraries are installed on the target system.
+
+@item
+Build the binaries using the command
+
+@example
+make LDFLAGS=-static
+@end example
 
 @item
-Use @samp{CFLAGS=-O CXXFLAGS=-O LDFLAGS=} as arguments for Make because
-most people who get the binary distributions are probably not going to
-be interested in debugging Octave.
+Type @samp{make static-binary-dist}.  This will create a compressed tar
+file ready for distribution.  The file will have a name like
+@file{octave-@var{version}-@var{host_type}-static.tar.gz}.
 
 @item
-Type @samp{make binary-dist}.  This will build everything and then pack
-it up for distribution.
+If your system supports dynamic linking and shared libraries, build
+another version of Octave that supports these features.  Use the
+commands
+
+@example
+@group
+configure --enable-shared
+make
+make dynamic-binary-dist
+@end group
+@end example
+
+@noindent
+This will create a compressed tar file ready for distribution.  The file
+will have a name like
+@file{octave-@var{version}-@var{host_type}-dynamic.tar.gz}.
+
 @end itemize
--- a/octMakefile.in
+++ b/octMakefile.in
@@ -45,7 +45,7 @@
 
 XBINDISTFILES = BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \
 	PROJECTS README README.Linux README.NLP README.Windows \
-	SENDING-PATCHES THANKS octave-sh insatll-octave mkinstalldirs \
+	SENDING-PATCHES THANKS octave-sh install-octave mkinstalldirs \
 	ChangeLog ChangeLog.[0-9]
 
 BINDISTFILES = $(addprefix $(srcdir)/, $(XBINDISTFILES)) \
@@ -55,9 +55,6 @@
 BINDISTSUBDIRS = libcruft liboctave src kpathsea readline info \
 	scripts doc emacs examples
 
-# Complete directories trees to distribute with binary distributions.
-BINDISTDIRS = emacs
-
 # Subdirectories in which to run clean targets.
 CLEANSUBDIRS = $(DISTSUBDIRS) glob kpathsea
 
@@ -136,22 +133,20 @@
 dist-info-files: INSTALL.OCTAVE BUGS
 .PHONY: dist-info-files
 
-links-for-dist: dist-info-files
+dist: dist-info-files
 	echo octave-$(version) > .fname
 	rm -rf `cat .fname`
 	mkdir `cat .fname`
 	ln $(DISTFILES) `cat .fname`
 	for dir in $(DISTDIRS); do ln -s ../$$dir `cat .fname`; done
-	for dir in $(DISTSUBDIRS); do mkdir `cat .fname`/$$dir; cd $$dir; $(MAKE) dist; cd ..; done
-.PHONY: links-for-dist
-
-dist-tar: links-for-dist
+	for dir in $(DISTSUBDIRS); do \
+	  mkdir `cat .fname`/$$dir ; \
+	  cd $$dir ; \
+	  $(MAKE) dist ; \
+	  cd .. ; \
+	done
 	tar chf `cat .fname`.tar `cat .fname`
 	rm -rf `cat .fname`
-.PHONY: dist-tar
-
-dist: dist-tar
-	echo octave-$(version) > .fname
 	tar xf `cat .fname`.tar
 	find `cat .fname` \( \( -name RCS -a -type d \) \
 	  -o \( -name OLD -a -type d \) -o -name "=*" \
@@ -163,11 +158,59 @@
 	rm -rf `cat .fname`/test/octave.test/qpsol
 	chmod -R a+rwX `cat .fname`
 	tar cf `cat .fname`.tar `cat .fname`
-	rm -rf `cat .fname` .fname
+	rm -rf `cat .fname`
+	gzip --best `cat .fname`.tar
+	rm -f .fname
 .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 ; \
+	  cd $$dir ; \
+	  $(MAKE) conf-dist ; \
+	  cd .. ; \
+	done
+	tar chf `cat .fname`.tar `cat .fname`
+	rm -rf `cat .fname`
+	gzip --best `cat .fname`.tar
+	rm -f .fname
+.PHONY: conf-dist
+
 # Rules for making a binary distribution.
 
+bin-dist-type:
+	@if [ -z "$(DIST_TYPE)" ]; then \
+	  echo "***" ; \
+	  echo "*** Must specify a value for DIST_TYPE (static or dynamic)" ; \
+	  echo "***" ; \
+	  exit 1 ; \
+	else \
+	  exit 0 ; \
+	fi
+.PHONY: bin-dist-type
+
 VERSION:
 	echo $(version) > VERSION
 .PHONY: VERSION
@@ -176,23 +219,19 @@
 	echo $(target_host_type) > ARCH
 .PHONY: ARCH
 
-links-for-bin-dist: VERSION ARCH octave-bug dist-info-files
-	echo octave-$(version)-$(target_host_type) > .fname
+binary-dist: bin-dist-type VERSION ARCH octave-bug dist-info-files
+	echo octave-$(version)-$(target_host_type)-$(DIST_TYPE) > .fname
 	rm -rf `cat .fname`
 	mkdir `cat .fname`
 	ln $(BINDISTFILES) `cat .fname`
-#	for dir in $(BINDISTDIRS); do ln -s ../$$dir `cat .fname`; done
-	for dir in $(BINDISTSUBDIRS); do mkdir `cat .fname`/$$dir; cd $$dir; $(MAKE) bin-dist; cd ..; done
-.PHONY: links-for-bin-dist
-
-bin-dist-tar: links-for-bin-dist
-	echo octave-$(version)-$(target_host_type) > .fname
+	for dir in $(BINDISTSUBDIRS); do \
+	  mkdir `cat .fname`/$$dir ; \
+	  cd $$dir ; \
+	  $(MAKE) bin-dist ; \
+	  cd .. ; \
+	done
 	tar chf `cat .fname`.tar `cat .fname`
 	rm -rf `cat .fname`
-.PHONY: bin-dist-tar
-
-binary-dist bin-dist: bin-dist-tar
-	echo octave-$(version)-$(target_host_type) > .fname
 	tar xf `cat .fname`.tar
 	find `cat .fname` \( \( -name RCS -a -type d \) \
 	  -o \( -name OLD -a -type d \) -o -name "=*" \
@@ -204,39 +243,7 @@
 	rm -rf `cat .fname`/test/octave.test/qpsol
 	chmod -R a+rwX `cat .fname`
 	tar cf `cat .fname`.tar `cat .fname`
-	rm -rf `cat .fname` .fname
-.PHONY: binary-dist bin-dist
-
-# 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; cd $$dir; $(MAKE) conf-dist; cd ..; done
-	tar chf `cat .fname`.tar `cat .fname`
 	rm -rf `cat .fname`
 	gzip --best `cat .fname`.tar
 	rm -f .fname
-.PHONY: conf-dist
-
-# Rules for making a snapshot.
-
-snapshot-z: snapshot-version
-	$(MAKE) dist
-	$(MAKE) dist-z
-.PHONY: snapshot-z
-
-snapshot: snapshot-z
-.PHONY: 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
+.PHONY: binary-dist