changeset 3029:9ce32027e269

[project @ 1997-06-05 06:39:06 by jwe]
author jwe
date Thu, 05 Jun 1997 06:46:03 +0000
parents 6d56646a2d1f
children 353071b4970b
files ChangeLog Makeconf.in Makefile.in configure.in libcruft/ChangeLog libcruft/Makefile.in libcruft/Makerules.in libcruft/misc/Makefile.in liboctave/ChangeLog liboctave/Makefile.in octMakefile.in src/ChangeLog src/Makefile.in
diffstat 13 files changed, 255 insertions(+), 235 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun  5 01:38:04 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makeconf.in (LIBEXT, SHLEXT_VER): New macros.
+	(octlibdir, mk-libdir-link): Delete.
+
 Wed Jun  4 00:07:29 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Makeconf.in (mk-includedir-link, mk-libdir-link): Make them work.
--- a/Makeconf.in
+++ b/Makeconf.in
@@ -9,6 +9,14 @@
  
 SHELL = /bin/sh
 
+# A shell command to extract the version number from version.h.
+getversion = sed -e '/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))
+
 #### Start of system configuration section. ####
 
 EXE = @EXE@
@@ -42,6 +50,9 @@
 
 SHARED_LIBS = @SHARED_LIBS@
 SHLEXT = @SHLEXT@
+SHLEXT_VER = $(SHLEXT).$(version)
+
+LIBEXT = a
 
 # Fortran to C translator and associated flags.
 
@@ -129,14 +140,6 @@
 # The arguments passed to configure.
 config_opts = @config_opts@
 
-# A shell command to extract the version number from version.h.
-getversion = sed -e '/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))
-
 # ==================== Where To Install Things ====================
 
 # The default location for installation.  Everything is placed in
@@ -186,10 +189,6 @@
 # These variables hold the values specific to Octave.  They are
 # based on the values of the standard Make variables above.
 
-# Where to install Octave's library files.  The default is
-# ${libdir}/octave-${version}
-octlibdir = @octlibdir@
-
 # Where to install Octave's include files.  The default is
 # ${includedir}/octave-${version}
 octincludedir = @octincludedir@
@@ -328,7 +327,7 @@
   -e "s;%LDFLAGS%;\"${LDFLAGS}\";" \
   -e "s;%LEXLIB%;\"${LEXLIB}\";" \
   -e "s;%LIBDLFCN%;\"${LIBDLFCN}\";" \
-  -e "s;%LIBFLAGS%;\"-L${octlibdir} -L${libdir}\";" \
+  -e "s;%LIBFLAGS%;\"-L${libdir}\";" \
   -e "s;%LIBPLPLOT%;\"${LIBPLPLOT}\";" \
   -e "s;%LIBS%;\"${LIBS}\";" \
   -e "s;%NO_IMPLICIT_TEMPLATES%;\"${NO_IMPLICIT_TEMPLATES}\";" \
@@ -373,28 +372,13 @@
 # of $includedir.
 
 define mk-includedir-link
-src=`echo $(octincludedir) | sed 's|^$(includedir)/*||'` ; \
-echo $$src ; \
-if [ "$$src" = "octave" ] ; then \
-  true ; \
+src=`echo $(octincludedir) | sed 's|^$(includedir)/*||'`; \
+echo $$src; \
+if [ "$$src" = "octave" ]; then \
+  true; \
 else \
-  cd $(includedir) ; \
-  rm -f octave ; \
-  $(LN_S) $$src octave ; \
+  cd $(includedir); \
+  rm -f octave; \
+  $(LN_S) $$src octave; \
 fi
 endef
-
-# Make a relative symbolic link from $libdir/octave to $octlibdir. 
-
-# XXX FIXME XXX -- this assumes that $octlibdir is a subdirectory of $libdir.
-
-define mk-libdir-link
-src=`echo $(octlibdir) | sed 's|^$(libdir)/*||'` ; \
-if [ "$$src" = "octave" ] ; then \
-  true ; \
-else \
-  cd $(libdir) ; \
-  rm -f octave ; \
-  $(LN_S) $$src octave ; \
-fi
-endef
--- a/Makefile.in
+++ b/Makefile.in
@@ -23,13 +23,13 @@
 	$(MAKE) -f octMakefile omit_deps=true $@
 
 binary-dist: FORCE
-	@if test -f configure && test -f octMakefile.in ; then \
-	  ./configure --disable-shared --disable-dl --disable-shl ; \
+	@if test -f configure && test -f octMakefile.in; then \
+	  ./configure --disable-shared --disable-dl --disable-shl; \
 	else \
-	  echo "" ; \
-	  echo "*** You must run make binary-dist in the source directory." ; \
-	  echo "" ; \
-	  exit 1 ; \
+	  echo ""; \
+	  echo "*** You must run make binary-dist in the source directory."; \
+	  echo ""; \
+	  exit 1; \
 	fi
 	$(MAKE) -f octMakefile CFLAGS=-O CXXFLAGS=-O LDFLAGS=-static all
 	$(MAKE) -f octMakefile binary-dist
@@ -101,17 +101,17 @@
 	@echo ""
 
 config-check:
-	@if test -f octMakefile ; then \
-	  true ; \
+	@if test -f octMakefile; then \
+	  true; \
 	else \
-	  echo "" ; \
-	  echo "*** You must run configure before running make." ; \
-	  echo "***" ; \
-	  echo "*** Please read the INSTALL and INSTALL.OCTAVE files" ; \
-	  echo "*** for more information about how to configure and" ; \
-	  echo "*** compile Octave." ; \
-	  echo "" ; \
-	  exit 1 ; \
+	  echo ""; \
+	  echo "*** You must run configure before running make."; \
+	  echo "***"; \
+	  echo "*** Please read the INSTALL and INSTALL.OCTAVE files"; \
+	  echo "*** for more information about how to configure and"; \
+	  echo "*** compile Octave."; \
+	  echo ""; \
+	  exit 1; \
 	fi
 
 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.272 $)
+AC_REVISION($Revision: 1.273 $)
 AC_PREREQ(2.9)
 AC_INIT(src/octave.cc)
 AC_CONFIG_HEADER(config.h)
@@ -45,18 +45,22 @@
 OCTAVE_SET_DEFAULT(man1dir, '$(mandir)/man1')
 OCTAVE_SET_DEFAULT(man1ext, '.1')
 OCTAVE_SET_DEFAULT(infofile, '$(infodir)/octave.info')
-OCTAVE_SET_DEFAULT(octlibdir, '$(libdir)/octave-$(version)')
-OCTAVE_SET_DEFAULT(octincludedir, '$(includedir)/octave')
-OCTAVE_SET_DEFAULT(fcnfiledir, '$(datadir)/octave/m')
+OCTAVE_SET_DEFAULT(octincludedir, '$(includedir)/octave-$(version)/octave')
+OCTAVE_SET_DEFAULT(fcnfiledir, '$(datadir)/octave/$(version)/m')
 OCTAVE_SET_DEFAULT(localfcnfiledir, '$(datadir)/octave/site/m')
 OCTAVE_SET_DEFAULT(localfcnfilepath, '$(localfcnfiledir)//')
-OCTAVE_SET_DEFAULT(archlibdir, '$(libexecdir)/octave/exec/$(target_host_type)')
-OCTAVE_SET_DEFAULT(localarchlibdir, '$(libexecdir)/octave/site/exec/$(target_host_type)')
-OCTAVE_SET_DEFAULT(octfiledir, '$(libexecdir)/octave/oct/$(target_host_type)')
-OCTAVE_SET_DEFAULT(localoctfiledir, '$(libexecdir)/octave/site/oct/$(target_host_type)')
+OCTAVE_SET_DEFAULT(archlibdir,
+  '$(libexecdir)/octave/$(version)/exec/$(target_host_type)')
+OCTAVE_SET_DEFAULT(localarchlibdir,
+  '$(libexecdir)/octave/site/exec/$(target_host_type)')
+OCTAVE_SET_DEFAULT(octfiledir,
+  '$(libexecdir)/octave/$(version)/oct/$(target_host_type)')
+OCTAVE_SET_DEFAULT(localoctfiledir,
+  '$(libexecdir)/octave/site/oct/$(target_host_type)')
 OCTAVE_SET_DEFAULT(localoctfilepath, '$(localoctfiledir)//')
-OCTAVE_SET_DEFAULT(fcnfilepath, '.:$(localoctfilepath):$(localfcnfilepath):$(octfiledir)//:$(fcnfiledir)//')
-OCTAVE_SET_DEFAULT(imagedir, '$(datadir)/octave/imagelib')
+OCTAVE_SET_DEFAULT(fcnfilepath,
+  '.:$(localoctfilepath):$(localfcnfilepath):$(octfiledir)//:$(fcnfiledir)//')
+OCTAVE_SET_DEFAULT(imagedir, '$(datadir)/octave/$(version)/imagelib')
 OCTAVE_SET_DEFAULT(imagepath, '.:$(imagedir)//')
 
 ### Make configure args available for other uses.
--- a/libcruft/ChangeLog
+++ b/libcruft/ChangeLog
@@ -1,3 +1,12 @@
+Thu Jun  5 01:40:36 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makerules.in (stamp-picdir): Delete.
+	(pic): New target.  Don't worry so much about creating pic
+	directory only when it is really needed.
+
+	* Makefile.in (stamp-shared): Delete.
+	(shared-lib): New target.  Depend on shared libraries directly.
+
 Wed May 21 16:29:42 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* misc/Makefile.in (install): Ensure include directory link is made.
--- a/libcruft/Makefile.in
+++ b/libcruft/Makefile.in
@@ -34,11 +34,11 @@
 	$(SOURCES) STOP.patch
 
 ifeq ($(SHARED_LIBS), true)
-  BINDISTFILES = libcruft.$(SHLEXT)
-  BINDISTLIBS = $(addprefix libcruft/, libcruft.$(SHLEXT))
+  BINDISTFILES = libcruft.$(SHLEXT_VER)
+  BINDISTLIBS = libcruft/libcruft.$(SHLEXT_VER)
 endif
 
-all: $(SUBDIRS) stamp-shared
+all: $(SUBDIRS) shared-lib
 .PHONY: all
 
 $(SUBDIRS):
@@ -68,13 +68,19 @@
   endif
 endif
 
-stamp-shared: $(CRUFT_PICOBJ)
-	if $(SHARED_LIBS); then \
-	  $(SH_LD) $(SH_LDFLAGS) -o libcruft.$(SHLEXT) $(CRUFT_PICOBJ) ; \
-	else \
-	  true ; \
-	fi
-	touch stamp-shared
+ifeq ($(SHARED_LIBS), true)
+shared-lib: libcruft.$(SHLEXT)
+else
+shared-lib:
+endif
+.PHONY: shared-lib
+
+libcruft.$(SHLEXT): libcruft.$(SHLEXT_VER)
+	rm -f libcruft.$(SHLEXT)
+	$(LN_S) libcruft.$(SHLEXT_VER) libcruft.$(SHLEXT)
+
+libcruft.$(SHLEXT_VER): $(CRUFT_PICOBJ)
+	$(SH_LD) $(SH_LDFLAGS) -o libcruft.$(SHLEXT_VER) $(CRUFT_PICOBJ)
 
 $(CRUFT_OBJ):
 
@@ -85,22 +91,24 @@
 	@$(subdir-for-command)
 
 install::
-	$(top_srcdir)/mkinstalldirs $(octlibdir)
-	rm -f $(octlibdir)/libcruft.a
-	$(INSTALL_DATA) libcruft.a $(octlibdir)/libcruft.a
-	$(RANLIB) $(octlibdir)/libcruft.a
+	$(top_srcdir)/mkinstalldirs $(libdir)
+	rm -f $(libdir)/libcruft.$(LIBEXT)
+	$(INSTALL_DATA) libcruft.$(LIBEXT) $(libdir)/libcruft.$(LIBEXT)
+	$(RANLIB) $(libdir)/libcruft.a
 	if $(SHARED_LIBS); then \
-	  rm -f $(octlibdir)/libcruft.$(SHLEXT); \
+	  rm -f $(libdir)/libcruft.$(SHLEXT_VER); \
 	  $(INSTALL_PROGRAM) \
-	    libcruft.$(SHLEXT) $(octlibdir)/libcruft.$(SHLEXT); \
+	    libcruft.$(SHLEXT_VER) $(libdir)/libcruft.$(SHLEXT_VER); \
+	  cd $(libdir); \
+	  rm -f libcruft.$(SHLEXT); \
+	  $(LN_S) libcruft.$(SHLEXT_VER) libcruft.$(SHLEXT); \
 	fi
-	$(mk-libdir-link)
 
 install-strip::
 	$(MAKE) INSTALL_PROGRAM="$(INSTALL_PROGRAM) -s" install
 
 uninstall::
-	rm -f $(octlibdir)/libcruft.a
+	rm -f $(libdir)/libcruft.$(LIBEXT)
 
 tags TAGS:: $(SOURCES)
 	$(SUBDIR_FOR_COMMAND)
@@ -112,16 +120,17 @@
 	etags $(SOURCES)
 
 clean mostlyclean::
-	rm -f *.a *.o
-	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi
+	rm -f *.$(LIBEXT) *.o
+	if $(SHARED_LIBS); then rm -f *.$(SHLEXT_VER) *.$(SHLEXT); fi
 
 distclean::
-	rm -f *.a *.o Makefile Makerules so_locations stamp-shared
-	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi
+	rm -f *.$(LIBEXT) *.o Makefile Makerules so_locations
+	if $(SHARED_LIBS); then rm -f *.$(SHLEXT_VER); fi
 
 maintainer-clean::
-	rm -f *.a *.o configure Makefile Makerules so_locations tags TAGS
-	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi
+	rm -f *.$(LIBEXT) *.o configure Makefile Makerules 
+	rm -f so_locations tags TAGS
+	if $(SHARED_LIBS); then rm -f *.$(SHLEXT_VER); fi
 
 dist:
 	for dir in $(SUBDIRS); do mkdir ../`cat ../.fname`/libcruft/$$dir; cd $$dir; $(MAKE) $@; cd ..; done
@@ -130,9 +139,9 @@
 
 bin-dist:
 	if [ -n "$(BINDISTFILES)" ]; then \
-	  ln $(BINDISTFILES) ../`cat ../.fname`/libcruft ; \
+	  ln $(BINDISTFILES) ../`cat ../.fname`/libcruft; \
 	fi
 	if [ -n "$(BINDISTLIBS)" ]; then \
-	  echo $(BINDISTLIBS) >> ../`cat ../.fname`/LIBRARIES ; \
+	  echo $(BINDISTLIBS) >> ../`cat ../.fname`/LIBRARIES; \
 	fi
 .PHONY: bin-dist
--- a/libcruft/Makerules.in
+++ b/libcruft/Makerules.in
@@ -33,7 +33,7 @@
 
 LIBCRUFT_DEPS = $(LIBCRUFT)($(LIBCRUFT_OBJS))
 
-all: stamp-picdir $(LIBCRUFT) $(CRUFT_PICOBJ) $(SPECIAL_PICDEPEND)
+all: pic $(LIBCRUFT) $(CRUFT_PICOBJ) $(SPECIAL_PICDEPEND)
 .PHONY: all
 
 # Cancel the default action for when an archive member is out of
@@ -53,20 +53,13 @@
 
 .PRECIOUS: $(LIBCRUFT_OBJS)
 
-stamp-picdir:
-	@if $(SHARED_LIBS); then \
-	  if [ -n "$(FPICFLAG)" ]; then \
-	    if [ -d pic ]; then \
-	      true ; \
-	    else \
-	      echo "mkdir pic" ; \
-	      mkdir pic ; \
-	    fi ; \
-	  fi ; \
+pic:
+	@if [ -d pic ]; then \
+	  true; \
 	else \
-	  true ; \
+	  echo "mkdir pic"; \
+	  mkdir pic; \
 	fi
-	touch stamp-picdir
 
 install:: all
 .PHONY: install
@@ -89,12 +82,12 @@
 .PHONY: mostlyclean
 
 distclean:: clean
-	rm -f Makefile stamp-picdir
+	rm -f Makefile
 	-rmdir pic
 .PHONY: distclean
 	
 maintainer-clean::
-	rm -f tags TAGS stamp-picdir Makefile
+	rm -f tags TAGS Makefile
 	-rmdir pic
 .PHONY: maintainer-clean
 
--- a/libcruft/misc/Makefile.in
+++ b/libcruft/misc/Makefile.in
@@ -41,14 +41,14 @@
 
 install install-strip::
 	$(top_srcdir)/mkinstalldirs $(octincludedir)
-	for f in $(INCLUDES) ; do \
-	  rm -f $(octincludedir)/$$f ; \
-	  $(INSTALL_DATA) $(srcdir)/$$f $(octincludedir)/$$f ; \
+	for f in $(INCLUDES); do \
+	  rm -f $(octincludedir)/$$f; \
+	  $(INSTALL_DATA) $(srcdir)/$$f $(octincludedir)/$$f; \
 	done
 	$(mk-includedir-link)
 
 uninstall::
-	for f in $(INCLUDES) ; do rm -f $(octincludedir)/$$f ; done
+	for f in $(INCLUDES); do rm -f $(octincludedir)/$$f; done
 
 # Don't optimize.
 
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,11 @@
+Thu Jun  5 01:44:43 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (stamp-picdir): Delete.
+	(pic): New target.  Don't worry so much about creating pic
+	directory only when it is really needed.
+	(stamp-interp): Delete.
+	(libraries): New target.  Depend on shared library directly.
+
 Wed Jun  4 00:08:55 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* pathsearch.h, pathsearch.cc (dir_pat::set_program_name):
--- a/liboctave/Makefile.in
+++ b/liboctave/Makefile.in
@@ -48,7 +48,7 @@
 	glob-match.h idx-vector.h lo-ieee.h lo-mappers.h lo-sysdep.h \
 	lo-utils.h mach-info.h oct-alloc.h oct-cmplx.h oct-env.h \
 	oct-math.h oct-group.h oct-passwd.h oct-syscalls.h pathsearch.h \
-	prog-args.h statdefs.h str-vec.h sun-utils.h sysdir.h \
+	prog-args.h statdefs.h str-vec.h sun-utils.h sysdir.h syswait.h \
 	$(MATRIX_INC) \
 	$(MX_OP_INC)
 
@@ -97,8 +97,8 @@
 	$(SOURCES) $(INCLUDES) $(EXTRAS)
 
 ifeq ($(SHARED_LIBS), true)
-  BINDISTFILES = liboctave.$(SHLEXT)
-  BINDISTLIBS = $(addprefix liboctave/, liboctave.$(SHLEXT))
+  BINDISTFILES = liboctave.$(SHLEXT_VER)
+  BINDISTLIBS = liboctave/liboctave.$(SHLEXT_VER)
 endif
 
 MAKEDEPS_1 := $(patsubst %.cc, %.d, $(SOURCES))
@@ -115,40 +115,39 @@
   endif
 endif
 
-LIBOCTAVE_DEPEND := $(patsubst %, liboctave.a(%), $(OBJECTS))
+LIBOCTAVE_DEPEND := $(patsubst %, liboctave.$(LIBEXT)(%), $(OBJECTS))
 
-all: liboctave.a stamp-shared
+all: libraries
 .PHONY: all
 
-stamp-prereq: stamp-picdir safe-stat.h safe-lstat.h
+stamp-prereq: pic safe-stat.h safe-lstat.h
 	touch stamp-prereq
 
-stamp-picdir:
-	@if $(SHARED_LIBS); then \
-	  if [ -n "$(CPICFLAG)" ] || [ -n "$(CXXPICFLAG)" ]; then \
-	    if [ -d pic ]; then \
-	      true ; \
-	    else \
-	      echo "mkdir pic" ; \
-	      mkdir pic ; \
-	    fi ; \
-	  fi ; \
+pic:
+	@if [ -d pic ]; then \
+	  true; \
 	else \
-	  true ; \
+	  echo "mkdir pic"; \
+	  mkdir pic; \
 	fi
-	touch stamp-picdir
 
-liboctave.a: stamp-prereq $(OBJECTS)
-	$(AR) $(ARFLAGS) liboctave.a $(OBJECTS)
-	$(RANLIB) liboctave.a
+ifeq ($(SHARED_LIBS), true)
+libraries: liboctave.$(LIBEXT) liboctave.$(SHLEXT)
+else
+libraries: liboctave.$(LIBEXT)
+endif
+.PHONY: libraries
 
-stamp-shared: stamp-prereq $(PICOBJ)
-	if $(SHARED_LIBS); then \
-	  $(SH_LD) $(SH_LDFLAGS) -o liboctave.$(SHLEXT) $(PICOBJ) ; \
-	else \
-	  true ; \
-	fi
-	touch stamp-shared
+liboctave.$(LIBEXT): stamp-prereq $(OBJECTS)
+	$(AR) $(ARFLAGS) liboctave.$(LIBEXT) $(OBJECTS)
+	$(RANLIB) liboctave.$(LIBEXT)
+
+liboctave.$(SHLEXT): liboctave.$(SHLEXT_VER)
+	rm -f liboctave.$(SHLEXT)
+	$(LN_S) liboctave.$(SHLEXT_VER) liboctave.$(SHLEXT)
+
+liboctave.$(SHLEXT_VER): stamp-prereq $(PICOBJ)
+	$(SH_LD) $(SH_LDFLAGS) -o liboctave.$(SHLEXT_VER) $(PICOBJ)
 
 extract_stat = sed 's/@l@//g; s/@L@//g; /@LSTAT_ONLY@/d'
 extract_lstat = sed 's/@l@/l/g; s/@L@/L/g; s/	*@LSTAT_ONLY@//'
@@ -187,30 +186,34 @@
 .PHONY: install-strip
 
 install-lib:
-	$(top_srcdir)/mkinstalldirs $(octlibdir)
-	rm -f $(octlibdir)/liboctave.a
-	$(INSTALL_DATA) liboctave.a $(octlibdir)/liboctave.a
-	$(RANLIB) $(octlibdir)/liboctave.a
+	$(top_srcdir)/mkinstalldirs $(libdir)
+	rm -f $(libdir)/liboctave.$(LIBEXT)
+	$(INSTALL_DATA) liboctave.$(LIBEXT) $(libdir)/liboctave.$(LIBEXT)
+	$(RANLIB) $(libdir)/liboctave.$(LIBEXT)
 	if $(SHARED_LIBS); then \
-	  rm -f $(octlibdir)/liboctave.$(SHLEXT); \
+	  rm -f $(libdir)/liboctave.$(SHLEXT_VER); \
 	  $(INSTALL_PROGRAM) \
-	    liboctave.$(SHLEXT) $(octlibdir)/liboctave.$(SHLEXT); \
+	    liboctave.$(SHLEXT_VER) $(libdir)/liboctave.$(SHLEXT_VER); \
+	  cd $(libdir); \
+	  rm -f liboctave.$(SHLEXT); \
+	  $(LN_S) liboctave.$(SHLEXT_VER) liboctave.$(SHLEXT); \
 	fi
-	$(mk-libdir-link)
 .PHONY: install-lib
 
 install-inc:
 	$(top_srcdir)/mkinstalldirs $(octincludedir)
-	for f in $(INCLUDES_FOR_INSTALL) ; do \
-	  rm -f $(octincludedir)/$$f ; \
-	  $(INSTALL_DATA) $(srcdir)/$$f $(octincludedir)/$$f ; \
+	for f in $(INCLUDES_FOR_INSTALL); do \
+	  rm -f $(octincludedir)/$$f; \
+	  $(INSTALL_DATA) $(srcdir)/$$f $(octincludedir)/$$f; \
 	done
 	$(mk-includedir-link)
 .PHONY: install-inc
 
 uninstall:
-	rm -f $(octlibdir)/liboctave.a $(octlibdir)/liboctave.$(SHLEXT)
-	for f in $(INCLUDES) ; do rm -f $(octincludedir)/$$f ; done
+	rm -f $(libdir)/liboctave.$(LIBEXT)
+	rm -f $(libdir)/liboctave.$(SHLEXT)
+	rm -f $(libdir)/liboctave.$(SHLEXT_VER)
+	for f in $(INCLUDES); do rm -f $(octincludedir)/$$f; done
 .PHONY: uninstall
 
 tags: $(SOURCES)
@@ -220,21 +223,20 @@
 	etags $(SOURCES)
 
 clean:
-	rm -f safe-stat.h safe-lstat.h *.a *.o *.d pic/*.o
-	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi
+	rm -f safe-stat.h safe-lstat.h *.$(LIBEXT) *.o *.d pic/*.o
+	if $(SHARED_LIBS); then rm -f *.$(SHLEXT_VER) *.$(SHLEXT); fi
 .PHONY: clean
 
 mostlyclean: clean
 .PHONY: mostlyclean
 
 distclean: clean
-	rm -f Makefile so_locations stamp-picdir stamp-shared stamp-prereq
+	rm -f Makefile so_locations stamp-prereq
 	-rmdir pic
 .PHONY: distclean
 
 maintainer-clean: distclean
-	rm -f tags TAGS stamp-picdir stamp-shared stamp-prereq
-	-rmdir pic
+	rm -f tags TAGS
 .PHONY: maintainer-clean
 
 dist:
@@ -243,10 +245,10 @@
 
 bin-dist:
 	if [ -n "$(BINDISTFILES)" ]; then \
-	  ln $(BINDISTFILES) ../`cat ../.fname`/liboctave ; \
+	  ln $(BINDISTFILES) ../`cat ../.fname`/liboctave; \
 	fi
 	if [ -n "$(BINDISTLIBS)" ]; then \
-	  echo $(BINDISTLIBS) >> ../`cat ../.fname`/LIBRARIES ; \
+	  echo $(BINDISTLIBS) >> ../`cat ../.fname`/LIBRARIES; \
 	fi
 .PHONY: bin-dist
 
--- a/octMakefile.in
+++ b/octMakefile.in
@@ -81,7 +81,7 @@
 
 $(SUBDIRS):
 	echo making all in $@
-	cd $@ ; $(MAKE) all
+	cd $@; $(MAKE) all
 .PHONY: $(SUBDIRS)
 
 check:
@@ -89,29 +89,29 @@
 .PHONY: check
 
 kpathsea.info:
-	cd kpathsea ; $(MAKE) kpathsea.info
+	cd kpathsea; $(MAKE) kpathsea.info
 .PHONY: kpathsea.info
 
 octave.info:
-	cd doc/interpreter ; $(MAKE) octave.info
+	cd doc/interpreter; $(MAKE) octave.info
 .PHONY: octave.info
 
 INSTALL.OCTAVE:
-	cd doc ; $(MAKE) ../INSTALL.OCTAVE
+	cd doc; $(MAKE) ../INSTALL.OCTAVE
 .PHONY: INSTALL.OCTAVE
 
 BUGS:
-	cd doc ; $(MAKE) ../BUGS
+	cd doc; $(MAKE) ../BUGS
 .PHONY: BUGS
 
 install install-strip ::
 	$(top_srcdir)/mkinstalldirs $(DIRS_TO_MAKE)
 	rm -f $(bindir)/octave-bug
 	$(INSTALL_SCRIPT) octave-bug $(bindir)/octave-bug-$(version)
-	cd $(bindir) ; $(LN_S) octave-bug-$(version) octave-bug
+	cd $(bindir); $(LN_S) octave-bug-$(version) octave-bug
 	rm -f $(bindir)/mkoctfile
 	$(INSTALL_SCRIPT) mkoctfile $(bindir)/mkoctfile-$(version)
-	cd $(bindir) ; $(LN_S) mkoctfile-$(version) mkoctfile
+	cd $(bindir); $(LN_S) mkoctfile-$(version) mkoctfile
 	$(INSTALL_DATA) config.h $(octincludedir)/config.h
 	$(mk-includedir-link)
 
@@ -156,10 +156,10 @@
 	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 .. ; \
+	  mkdir `cat .fname`/$$dir; \
+	  cd $$dir; \
+	  $(MAKE) dist; \
+	  cd ..; \
 	done
 	tar chf `cat .fname`.tar `cat .fname`
 	rm -rf `cat .fname`
@@ -202,10 +202,10 @@
 	mkdir `cat .fname`
 	ln $(CONF_DISTFILES) `cat .fname`
 	for dir in $(CONF_DISTSUBDIRS); do \
-	  mkdir `cat .fname`/$$dir ; \
-	  cd $$dir ; \
-	  $(MAKE) conf-dist ; \
-	  cd .. ; \
+	  mkdir `cat .fname`/$$dir; \
+	  cd $$dir; \
+	  $(MAKE) conf-dist; \
+	  cd ..; \
 	done
 	tar chf `cat .fname`.tar `cat .fname`
 	rm -rf `cat .fname`
@@ -229,10 +229,10 @@
 	mkdir `cat .fname`
 	ln $(BINDISTFILES) `cat .fname`
 	for dir in $(BINDISTSUBDIRS); do \
-	  mkdir `cat .fname`/$$dir ; \
-	  cd $$dir ; \
-	  $(MAKE) bin-dist ; \
-	  cd .. ; \
+	  mkdir `cat .fname`/$$dir; \
+	  cd $$dir; \
+	  $(MAKE) bin-dist; \
+	  cd ..; \
 	done
 	tar chf `cat .fname`.tar `cat .fname`
 	rm -rf `cat .fname`
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+Thu Jun  5 01:42:39 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (stamp-picdir): Delete.
+	(pic): New target.  Don't worry so much about creating pic
+	directory only when it is really needed.
+	(stamp-interp): Delete.
+	(libraries): New target.  Depend on shared library directly.
+
 Wed Jun  4 00:09:42 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* octave.cc (main): Call dir_path::set_program_name here.
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -84,7 +84,7 @@
 	oct-stdstrm.h oct-stream.h oct-strstrm.h \
 	oct-lvalue.h oct.h ops.h pager.h parse.h \
 	pr-output.h procstream.h sighandlers.h symtab.h sysdep.h \
-	systime.h syswait.h token.h toplev.h unwind-prot.h utils.h \
+	systime.h token.h toplev.h unwind-prot.h utils.h \
 	variables.h version.h xdiv.h xpow.h $(OV_INCLUDES) $(PT_INCLUDES)
 
 TI_XSRC := Array-oc.cc Array-os.cc Array-sym.cc Array-tc.cc Map-fnc.cc \
@@ -171,11 +171,7 @@
 	-L../dlfcn -L. $(RLD_FLAG)
 
 OCTAVE_LIBS = -loctinterp -loctave -lcruft $(LIBPLPLOT) \
-	$(LIBREADLINE) ../kpathsea/libkpathsea.a -lglob $(LIBDLFCN)
-
-LIBS_TO_INSTALL = liboctinterp.a
-
-SH_LIBS_TO_INSTALL = liboctinterp.$(SHLEXT)
+	$(LIBREADLINE) ../kpathsea/libkpathsea.$(LIBEXT) -lglob $(LIBDLFCN)
 
 LIBS = @LIBS@
 
@@ -185,8 +181,8 @@
 	$(INCLUDES) $(DLD_SRC) $(SOURCES)
 
 ifeq ($(SHARED_LIBS), true)
-  BINDISTFILES = octave $(OCT_FILES) $(SH_LIBS_TO_INSTALL)
-  BINDISTLIBS = $(addprefix src/, $(SH_LIBS_TO_INSTALL))
+  BINDISTFILES = octave $(OCT_FILES) liboctinterp.$(SHLEXT_VER)
+  BINDISTLIBS = src/liboctinterp.$(SHLEXT_VER)
 else
   BINDISTFILES = octave $(OCT_FILES)
 endif
@@ -196,11 +192,11 @@
 
 stamp-oct-links: $(OCT_FILES)
 	if [ -n "$(OCT_FILES)" ]; then \
-	  $(srcdir)/mk-oct-links . $(addprefix $(srcdir)/, $(DLD_SRC)) ; \
+	  $(srcdir)/mk-oct-links . $(addprefix $(srcdir)/, $(DLD_SRC)); \
 	fi
 	touch stamp-oct-links
 
-stamp-prereq: stamp-picdir defaults.h oct-conf.h
+stamp-prereq: pic defaults.h oct-conf.h
 	touch stamp-prereq
 
 octave: octave.o builtins.o ops.o $(DLD_STATIC_OBJ) libraries
@@ -210,34 +206,31 @@
 	$(OCTAVE_LIBS) \
 	$(FLIBS) $(LEXLIB) $(TERMLIBS) $(LIBS)
 
-stamp-picdir:
-	@if $(SHARED_LIBS) || [ "$(OCTAVE_LITE)" = true ]; then \
-	  if [ -n "$(CPICFLAG)" ] || [ -n "$(CXXPICFLAG)" ]; then \
-	    if [ -d pic ]; then \
-	      true ; \
-	    else \
-	      echo "mkdir pic" ; \
-	      mkdir pic ; \
-	    fi ; \
-	  fi ; \
+pic:
+	@if [ -d pic ]; then \
+	  true; \
 	else \
-	  true ; \
+	  echo "mkdir pic"; \
+	  mkdir pic; \
 	fi
-	touch stamp-picdir
 
-libraries: liboctinterp.a stamp-interp
-
-liboctinterp.a: stamp-prereq $(OBJECTS)
-	$(AR) $(ARFLAGS) liboctinterp.a $(OBJECTS)
-	$(RANLIB) liboctinterp.a
+ifeq ($(SHARED_LIBS), true)
+libraries: liboctinterp.$(LIBEXT) liboctinterp.$(SHLEXT)
+else
+libraries: liboctinterp.$(LIBEXT)
+endif
+.PHONY: libraries
 
-stamp-interp: stamp-prereq $(PICOBJ)
-	if $(SHARED_LIBS); then \
-	  $(SH_LD) $(SH_LDFLAGS) -o liboctinterp.$(SHLEXT) $(PICOBJ) ; \
-	else \
-	  true ; \
-	fi
-	touch stamp-interp
+liboctinterp.$(LIBEXT): stamp-prereq $(OBJECTS)
+	$(AR) $(ARFLAGS) liboctinterp.$(LIBEXT) $(OBJECTS)
+	$(RANLIB) liboctinterp.$(LIBEXT)
+
+liboctinterp.$(SHLEXT): liboctinterp.$(SHLEXT_VER)
+	rm -f liboctinterp.$(SHLEXT)
+	$(LN_S) liboctinterp.$(SHLEXT_VER) liboctinterp.$(SHLEXT)
+
+liboctinterp.$(SHLEXT_VER): stamp-prereq $(PICOBJ)
+	$(SH_LD) $(SH_LDFLAGS) -o liboctinterp.$(SHLEXT_VER) $(PICOBJ)
 
 builtins.cc: $(DEF_FILES) mkbuiltins
 	@echo making $@
@@ -273,49 +266,54 @@
 	$(top_srcdir)/mkinstalldirs $(bindir)
 	rm -f $(bindir)/octave$(EXE)
 	$(INSTALL_PROGRAM) octave$(EXE) $(bindir)/octave-$(version)$(EXE)
-	cd $(bindir) ; $(LN_S) octave-$(version)$(EXE) octave$(EXE)
+	cd $(bindir); $(LN_S) octave-$(version)$(EXE) octave$(EXE)
 .PHONY: install-bin
 
 install-oct:
 	if [ -n "$(OCT_FILES)" ]; then \
-	  $(top_srcdir)/mkinstalldirs $(octfiledir) ; \
-	  xfiles="$(OCT_FILES)" ; \
-	  for f in $$xfiles ; do \
+	  $(top_srcdir)/mkinstalldirs $(octfiledir); \
+	  xfiles="$(OCT_FILES)"; \
+	  for f in $$xfiles; do \
 	    $(INSTALL_PROGRAM) $$f $(octfiledir)/$$f; \
-	  done ; \
+	  done; \
 	  $(srcdir)/mk-oct-links \
-	    $(octfiledir) $(addprefix $(srcdir)/, $(DLD_SRC)) ; \
+	    $(octfiledir) $(addprefix $(srcdir)/, $(DLD_SRC)); \
 	fi
 .PHONY: install-oct
 
 install-lib:
-	$(top_srcdir)/mkinstalldirs $(octlibdir)
-	for f in $(LIBS_TO_INSTALL); do \
-	  if [ -f $$f ]; then $(INSTALL_DATA) $$f $(octlibdir)/$$f; fi; \
-	done
-	for f in $(SH_LIBS_TO_INSTALL); do \
-	  if [ -f $$f ]; then $(INSTALL_PROGRAM) $$f $(octlibdir)/$$f; fi; \
-	done
-	$(mk-libdir-link)
+	$(top_srcdir)/mkinstalldirs $(libdir)
+	rm -f $(libdir)/liboctinterp.$(LIBEXT)
+	$(INSTALL_DATA) liboctinterp.$(LIBEXT) \
+	  $(libdir)/liboctinterp.$(LIBEXT)
+	if $(SHARED_LIBS); then \
+	  rm -f $(libdir)/liboctinterp.$(SHLEXT_VER); \
+	  $(INSTALL_PROGRAM) \
+	    liboctinterp.$(SHLEXT_VER) $(libdir)/liboctinterp.$(SHLEXT_VER); \
+	  cd $(libdir); \
+	  rm -f liboctinterp.$(SHLEXT); \
+	  $(LN_S) liboctinterp.$(SHLEXT_VER) liboctinterp.$(SHLEXT); \
+	fi
 .PHONY: install-lib
 
 install-inc:
 	$(top_srcdir)/mkinstalldirs $(octincludedir)
-	for f in $(INCLUDES) ; do \
-	  rm -f $(octincludedir)/$$f ; \
-	  $(INSTALL_DATA) $(srcdir)/$$f $(octincludedir)/$$f ; \
+	for f in $(INCLUDES); do \
+	  rm -f $(octincludedir)/$$f; \
+	  $(INSTALL_DATA) $(srcdir)/$$f $(octincludedir)/$$f; \
 	done
-	for f in defaults.h oct-conf.h oct-gperf.h ; do \
-	  rm -f $(octincludedir)/$$f ; \
-	  $(INSTALL_DATA) $$f $(octincludedir)/$$f ; \
+	for f in defaults.h oct-conf.h oct-gperf.h; do \
+	  rm -f $(octincludedir)/$$f; \
+	  $(INSTALL_DATA) $$f $(octincludedir)/$$f; \
 	done
 	$(mk-includedir-link)
 .PHONY: install-inc
 
 uninstall:
 	rm -f $(bindir)/octave$(EXE)
-	for f in $(LIBS_TO_INSTALL); do rm -f $(octlibdir)/$$f; done
-	for f in $(SH_LIBS_TO_INSTALL); do rm -f $(octlibdir)/$$f; done
+	rm -f $(libdir)/liboctinterp.$(LIBEXT)
+	rm -f $(libdir)/liboctinterp.$(SHLEXT)
+	rm -f $(libdir)/liboctinterp.$(SHLEXT_VER)
 	for f in $(INCLUDES) defaults.h oct-conf.h; do \
 	  rm -f $(octincludedir)/$$f; \
 	done
@@ -328,9 +326,9 @@
 	etags $(SOURCES) $(DLD_SRC)
 
 clean:
-	rm -f *.a *.o *.d *.df *.oct pic/*.o
+	rm -f *.$(LIBEXT) *.o *.d *.df *.oct pic/*.o
 	rm -f builtins.cc ops.cc defaults.h oct-conf.h def-files var-files
-	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi
+	if $(SHARED_LIBS); then rm -f *.$(SHLEXT_VER) *.$(SHLEXT); fi
 .PHONY: clean
 
 mostlyclean:
@@ -339,13 +337,13 @@
 
 distclean: clean
 	rm -f Makefile octave .fname so_locations
-	rm -f stamp-picdir stamp-interp stamp-prereq
+	rm -f stamp-prereq
 	-rmdir pic
 .PHONY: distclean
 
 maintainer-clean: distclean
 	rm -f tags TAGS y.tab.c y.tab.h y.output yy.lex.c lex.cc parse.cc
-	rm -f oct-gperf.h stamp-picdir stamp-interp stamp-prereq
+	rm -f oct-gperf.h stamp-prereq
 	-rmdir pic
 .PHONY: maintainer-clean
 
@@ -361,15 +359,15 @@
 
 bin-dist:
 	if [ -n "$(BINDISTFILES)" ]; then \
-	  ln $(BINDISTFILES) ../`cat ../.fname`/src ; \
+	  ln $(BINDISTFILES) ../`cat ../.fname`/src; \
 	fi
 	if [ -n "$(OCT_FILES)" ]; then \
 	  $(srcdir)/mk-oct-links -p $(octfiledir) \
 	    $(addprefix $(srcdir)/, $(DLD_SRC)) \
-	    > ../`cat ../.fname`/src/links-to-make ; \
+	    > ../`cat ../.fname`/src/links-to-make; \
 	fi
 	if [ -n "$(BINDISTLIBS)" ]; then \
-	  echo $(BINDISTLIBS) >> ../`cat ../.fname`/LIBRARIES ; \
+	  echo $(BINDISTLIBS) >> ../`cat ../.fname`/LIBRARIES; \
 	fi
 .PHONY: bin-dist