- added custom install options. workarea creates an empty config.h,

and configure creates a config.h that sets the default scheme heap
  path and scheme-script name based on the actual configuration.
    configure, newrelease, workarea, checkin,
    c/Mf-base, scheme.c, main.c,
    Mf-install.in
- renamed the installed example directory from lib to examples.
    Mf-install.in,
    scheme.1.in
- added force option to gzip during man page install to prevent gzip from
  asking for permission to overwrite existing man page files.
    Mf-install.in
- removed ~/lib/csv%v/%m from the default scheme heap path on unix-like
  systems.  documented inclusion of %x\..\..\boot\%m in the Windows
  default scheme heap path.
    main.c,
    use.stex
- added new configuration options: --installbin, --installlib,
  --installschemename, --installpetitename, and --installscriptname.
    configure
- updated the example library link to the nanopass framework.
    CONTRIBUTING.md
- now cleaning up petite.1 and scheme.1 left behind by make install
    Makefile-workarea.in, checkin
- now removing workarea after cleaning csug and release_notes so
  Mf-stex (included from csug/Makefile and release_notes/Makefile)
  doesn't complain trying to determine the machine type.
    Makefile.in
- added installsh support for --ifdiff so the csug make file can use it
  for the install target.
    installsh,
    csug/Makefile
- added instructions for building (cross-compiling) a boot file for
  a supported machine type for which a boot file is not built by default.
    BUILDING

original commit: df4194c83a9e67d1ec20165fc3e2def4ed8e8986
This commit is contained in:
Andy Keep 2016-05-06 18:30:06 -04:00
parent bf23095a18
commit a80f0fb0b3
18 changed files with 198 additions and 145 deletions

View File

@ -150,6 +150,15 @@ The make file supports several targets:
boot and header files can be committed as well. 'make bootfiles'
can take 5 minutes or more.
'make bootfiles' builds boot files for each machine type for which
a subdirectory exists in the top-level boot directory. to build
for a supported machine type that isn't built by default, simply
add the appropriate subdirectory, i.e., 'mkdir boot/$M', where M
is the machine type, before running 'make bootfiles'. You can
also run '(cd $W ; make -f Mf-boot $M.boot)', where W is the name
of a built work area for the host machine type, to build just the
boot files for machine-type M.
'make clean'
removes binaries from the workarea.

View File

@ -85,9 +85,9 @@ Please keep in mind the following guidance when preparing contributions:
of their own. If you are contributing a significant extension built
using Chez Scheme, consider whether your contribution is such an
independent project. An example of such a project is the [Nanopass
Framework](http://github.com/akeep/nanopass-framework) which is
both used by Chez Scheme and was initially written using Chez Scheme,
but evolves separately.
Framework](http://github.com/nanopass/nanopass-framework-scheme)
which is both used by Chez Scheme and was initially written using
Chez Scheme, but evolves separately.
Before investing significant effort preparing a contribution,
consider running the idea by one of the committers for additional

37
LOG
View File

@ -104,5 +104,38 @@
configure, makefiles/Makefile.in,
csug/Makefile, copyright.stex, csug.stex,
release_notes/Makefile
- added custom install options.
configure newrelease scheme.c heappath.h.in
- added custom install options. workarea creates an empty config.h,
and configure creates a config.h that sets the default scheme heap
path and scheme-script name based on the actual configuration.
configure, newrelease, workarea, checkin,
c/Mf-base, scheme.c, main.c,
Mf-install.in
- renamed the installed example directory from lib to examples.
Mf-install.in,
scheme.1.in
- added force option to gzip during man page install to prevent gzip from
asking for permission to overwrite existing man page files.
Mf-install.in
- removed ~/lib/csv%v/%m from the default scheme heap path on unix-like
systems. documented inclusion of %x\..\..\boot\%m in the Windows
default scheme heap path.
main.c,
use.stex
- added new configuration options: --installbin, --installlib,
--installschemename, --installpetitename, and --installscriptname.
configure
- updated the example library link to the nanopass framework.
CONTRIBUTING.md
- now cleaning up petite.1 and scheme.1 left behind by make install
Makefile-workarea.in, checkin
- now removing workarea after cleaning csug and release_notes so
Mf-stex (included from csug/Makefile and release_notes/Makefile)
doesn't complain trying to determine the machine type.
Makefile.in
- added installsh support for --ifdiff so the csug make file can use it
for the install target.
installsh,
csug/Makefile
- added instructions for building (cross-compiling) a boot file for
a supported machine type for which a boot file is not built by default.
BUILDING

View File

@ -27,7 +27,7 @@ kernelsrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-ocd.c gc-
kernelobj=${kernelsrc:%.c=%.$o} ${mdobj}
kernelhdr=system.h types.h version.h globals.h externs.h segment.h gc.c sort.h thread.h itest.c
kernelhdr=system.h types.h version.h globals.h externs.h segment.h gc.c sort.h thread.h config.h itest.c
mainsrc=main.c
@ -44,6 +44,7 @@ rootsrc=$(shell cd ../../c; echo *)
${rootsrc}: ; ln -s ../../c/$@ $@
scheme.o: itest.c
scheme.o main.o: config.h
${kernelobj}: system.h types.h version.h externs.h globals.h segment.h thread.h sort.h
${kernelobj}: ${Include}/equates.h ${Include}/scheme.h
${mainobj}: ${Include}/scheme.h

View File

@ -1,32 +0,0 @@
/* heappath.h
* Copyright 1984-2016 Cisco Systems, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* This file sets the default search path for the scheme boot directory. */
#define SEARCHPATHMAXSIZE 8192
#ifdef WIN32
#define SEARCHPATHSEP ';'
/* by default, look in executable directory or in parallel boot directory */
#define defaultsystemheappath "%x;%x\\..\\..\\boot\\%m"
#else /* not WIN32: */
#define SEARCHPATHSEP ':'
/* keep in sync with scheme.1 */
#define defaultsystemheappath "/usr/lib/csv%v/%m:/usr/local/lib/csv%v/%m"
#endif

View File

@ -25,6 +25,7 @@
#include <string.h>
#include <stdio.h>
#include "scheme.h"
#include "config.h"
/****
CUSTOM_INIT may be defined as a function with the signature shown to
@ -45,6 +46,10 @@
#define ABNORMAL_EXIT ((void (*)(void))0)
#endif /* ABNORMAL_EXIT */
#ifndef SCHEME_SCRIPT
#define SCHEME_SCRIPT "scheme-script"
#endif
static const char *path_last(const char *p) {
const char *s;
#ifdef WIN32
@ -92,7 +97,7 @@ int main(int argc, const char *argv[]) {
Sscheme_init(ABNORMAL_EXIT);
if (strcmp(path_last(execpath), "scheme-script") == 0) {
if (strcmp(path_last(execpath), SCHEME_SCRIPT) == 0) {
if (argc < 2) {
(void) fprintf(stderr,"%s requires program-path argument\n", execpath);
exit(1);

View File

@ -15,6 +15,7 @@
*/
#include "system.h"
#include "config.h"
#include <setjmp.h>
#include <limits.h>
#ifdef WIN32
@ -403,8 +404,13 @@ static const char *path_last(p) const char *p; {
return p;
}
#include "heappath.h"
#define SEARCHPATHMAXSIZE 8192
#ifdef WIN32
#ifndef DEFAULT_HEAP_PATH
/* by default, look in executable directory or in parallel boot directory */
#define DEFAULT_HEAP_PATH "%x;%x\\..\\..\\boot\\%m"
#endif
#define SEARCHPATHSEP ';'
static char *get_defaultheapdirs() {
char *result;
@ -412,20 +418,17 @@ static char *get_defaultheapdirs() {
char key[PATH_MAX];
snprintf(key, PATH_MAX, "HKEY_LOCAL_MACHINE\\Software\\Chez Scheme\\csv%s\\HeapSearchPath", VERSION);
result = S_GetRegistry(defaultheapdirs, SEARCHPATHMAXSIZE, key);
if (result == NULL) result = defaultsystemheappath;
if (result == NULL) result = DEFAULT_HEAP_PATH;
return result;
}
#else /* not WIN32: */
static char *get_defaultheapdirs() {
static char defaultheapdirs[SEARCHPATHMAXSIZE];
const char *home;
#define SEARCHPATHSEP ':'
#ifndef DEFAULT_HEAP_PATH
#define DEFAULT_HEAP_PATH "/usr/lib/csv%v/%m:/usr/local/lib/csv%v/%m"
#endif
if ((home = S_homedir()) != NULL &&
(snprintf(defaultheapdirs, SEARCHPATHMAXSIZE, "%s/lib/csv%%v/%%m:%s",
home, defaultsystemheappath) < SEARCHPATHMAXSIZE))
return defaultheapdirs;
else
return defaultsystemheappath;
static char *get_defaultheapdirs() {
return DEFAULT_HEAP_PATH;
}
#endif /* WIN32 */

View File

@ -90,6 +90,7 @@ echo '*** running "make clean" in source directories ***'
foreach x ($sdirs)
switch ($x)
case .:
(cd $W; /bin/rm -f petite.1 scheme.1)
(cd $W; /bin/rm -f Make.out)
case unicode:
case unicode/UNIDATA:
@ -121,7 +122,7 @@ end
set sfiles = ()
foreach x ($tmpsfiles)
if ("$x" == "./Makefile" || "$x" == "./Mf-install" || "$x" == "./Mf-boot") then
if ("$x" == "./Makefile" || "$x" == "./Mf-install" || "$x" == "./Mf-boot" || "$x" == "c/config.h") then
set ignorefiles = ($ignorefiles $x)
else
cmp $W/$x $x >& /dev/null
@ -190,7 +191,7 @@ set RESPONSE = ""
while ("$RESPONSE" != "y")
echo -n "proceed with check in? (y/n): "
set RESPONSE = $<
if ("$RESPONSE" == "n") goto error
if ("$RESPONSE" == "n") exit 0
end
set oldsfiles = ()

91
configure vendored
View File

@ -31,6 +31,12 @@ help=no
gzipmanpages=yes
installowner=""
installgroup=""
installbin=""
installlib=""
installman=""
installschemename="scheme"
installpetitename="petite"
installscriptname="scheme-script"
case `uname` in
Linux)
@ -46,8 +52,7 @@ case `uname` in
tm64=""
fi
installprefix=/usr
installlib=$installprefix/lib
installman=$installprefix/share/man
installmansuffix=share/man
;;
QNX)
if uname -a | egrep 'x86' > /dev/null 2>&1 ; then
@ -55,8 +60,7 @@ case `uname` in
tm32=ti3qnx
fi
installprefix=/usr/local
installlib=$installprefix/lib
installman=$installprefix/man
installmansuffix=man
;;
FreeBSD)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -66,8 +70,7 @@ case `uname` in
tm64=ta6fb
fi
installprefix=/usr/local
installlib=$installprefix/lib
installman=$installprefix/man
installmansuffix=man
;;
OpenBSD)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -77,8 +80,7 @@ case `uname` in
tm64=ta6ob
fi
installprefix=/usr/local
installlib=$installprefix/lib
installman=$installprefix/man
installmansuffix=man
;;
NetBSD)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -88,8 +90,7 @@ case `uname` in
tm64=ta6nb
fi
installprefix=/usr
installlib=$installprefix/lib
installman=$installprefix/share/man
installmansuffix=share/man
gzipmanpages=no
;;
Darwin)
@ -100,8 +101,7 @@ case `uname` in
tm64=ta6osx
fi
installprefix=/usr/local
installlib=$installprefix/lib
installman=$installprefix/share/man
installmansuffix=share/man
;;
SunOS)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -110,8 +110,7 @@ case `uname` in
tm32=ti3s2
tm64=ta6s2
installprefix=/usr
installlib=$installprefix/lib
installman=$installprefix/share/man
installmansuffix=share/man
gzipmanpages=no
fi
;;
@ -143,6 +142,9 @@ while [ $# != 0 ] ; do
--installlib=*)
installlib=`echo $1 | sed -e 's/^--installlib=//'`
;;
--installbin=*)
installbin=`echo $1 | sed -e 's/^--installbin=//'`
;;
--installman=*)
installman=`echo $1 | sed -e 's/^--installman=//'`
;;
@ -152,6 +154,15 @@ while [ $# != 0 ] ; do
--installgroup=*)
installgroup=`echo $1 | sed -e 's/^--installgroup=//'`
;;
--installschemename=*)
installschemename=`echo $1 | sed -e 's/^--installschemename=//'`
;;
--installpetitename=*)
installpetitename=`echo $1 | sed -e 's/^--installpetitename=//'`
;;
--installscriptname=*)
installscriptname=`echo $1 | sed -e 's/^--installscriptname=//'`
;;
--gzip-man-pages)
gzipmanpages=yes
;;
@ -199,24 +210,40 @@ if [ "$w" = "" ] ; then
w=$m
fi
if [ "$installbin" = "" ] ; then
installbin=$installprefix/bin
fi
if [ "$installlib" = "" ] ; then
installlib=$installprefix/lib
fi
if [ "$installman" = "" ] ; then
installman=$installprefix/$installmansuffix
fi
if [ "$help" = "yes" ]; then
echo "Purpose:"
echo " $0 determines the machine type and constructs a custom Makefile"
echo " and Mf-install, taking into account the options below."
echo ""
echo "Options (defaults shown in parens):"
echo " --machine=<machine type> explicitly specify machine type ($m)"
echo " -m=<machine type> same as --machine <machine type> ($m)"
echo " --threads specify threaded version ($threads)"
echo " --32|--64 specify 32/64-bit version ($bits)"
echo " --installprefix=<pathname> final installation root ($installprefix)"
echo " --installlib=<pathname> lib directory ($installlib)"
echo " --installman=<pathname> manpage directory ($installman)"
echo " --temproot=<pathname> staging root ($temproot)"
echo " --installowner=<ownername> install with owner ($installowner)"
echo " --installgroup=<groupname> install with group ($installgroup)"
echo " --[no]gzip-man-pages compress manual pages ($gzipmanpages)"
echo " --workarea=<pathname> build directory ($w)"
echo " --machine=<machine type> explicitly specify machine type ($m)"
echo " -m=<machine type> same as --machine <machine type> ($m)"
echo " --threads specify threaded version ($threads)"
echo " --32|--64 specify 32/64-bit version ($bits)"
echo " --installprefix=<pathname> final installation root ($installprefix)"
echo " --installbin=<pathname> lib directory ($installbin)"
echo " --installlib=<pathname> lib directory ($installlib)"
echo " --installman=<pathname> manpage directory ($installman)"
echo " --temproot=<pathname> staging root ($temproot)"
echo " --installowner=<ownername> install with owner ($installowner)"
echo " --installgroup=<groupname> install with group ($installgroup)"
echo " --installschemename=<schemename> install with group ($installschemename)"
echo " --installpetitename=<petitename> install with group ($installpetitename)"
echo " --installscriptname=<scriptname> install with group ($installscriptname)"
echo " --[no]gzip-man-pages compress manual pages ($gzipmanpages)"
echo " --workarea=<pathname> build directory ($w)"
echo ""
echo "Available machine types: $machs"
echo ""
@ -262,13 +289,19 @@ sed -e 's/$(m)/'$m'/g'\
sed -e "s;^m=none\$;m=$m;"\
-e "s;^InstallPrefix=.*\$;InstallPrefix=$installprefix;"\
-e "s;^InstallLib=.*\$;InstallLib=$installlib/csv9.4;"\
-e "s;^InstallBin=.*\$;InstallBin=$installbin;"\
-e "s;^InstallLib=.*\$;InstallLib=$installlib;"\
-e "s;^InstallMan=.*\$;InstallMan=$installman/man1;"\
-e "s;^InstallOwner=.*\$;InstallOwner=$installowner;"\
-e "s;^InstallGroup=.*\$;InstallGroup=$installgroup;"\
-e "s;^TempRoot=.*;TempRoot=$temproot;"\
-e "s;^GzipManPages=.*$;GzipManPages=$gzipmanpages;"\
-e "s;^InstallSchemeName=.*$;InstallSchemeName=$installschemename;"\
-e "s;^InstallPetiteName=.*$;InstallPetiteName=$installpetitename;"\
-e "s;^InstallScriptName=.*$;InstallScriptName=$installscriptname;"\
makefiles/Mf-install.in > $w/Mf-install
sed -e "s;\#define defaultsystemheappath \"/usr/lib/csv%v/%m:.*\$;\#define defaultsystemheappath \"$installlib/csv%v/%m\";"\
c/heappath.h.in > $w/c/heappath.h
cat > $w/c/config.h << END
#define SCHEME_SCRIPT "$installscriptname"
#define DEFAULT_HEAP_PATH "$installlib/csv%v/%m"
END

View File

@ -2,6 +2,7 @@ m = a6le
Scheme=../$m/bin/$m/scheme -b ../$m/boot/$m/petite.boot -b ../$m/boot/$m/scheme.boot
STEXLIB=../stex
installdir=/tmp/csug9
INSTALL=../$m/installsh
x = csug
latex = pdflatex
@ -14,14 +15,14 @@ DIR=$(shell basename `pwd`)
target: logcheck1 logcheck2 checklibs $(x).html
install: target
installsh -m 2755 -d $(installdir)
installsh -m 0644 --ifdiff *.html *.css $(installdir)
installsh -m 2755 -d $(installdir)/canned
installsh -m 0644 --ifdiff canned/* $(installdir)/canned
installsh -m 2755 -d $(installdir)/gifs
installsh -m 0644 --ifdiff gifs/*.gif $(installdir)/gifs
installsh -m 2755 -d $(installdir)/$(mathdir)
installsh -m 0644 --ifdiff $(mathdir)/*.gif $(installdir)/$(mathdir)
$(INSTALL) -m 2755 -d $(installdir)
$(INSTALL) -m 0644 --ifdiff *.html *.css $(installdir)
$(INSTALL) -m 2755 -d $(installdir)/canned
$(INSTALL) -m 0644 --ifdiff canned/* $(installdir)/canned
$(INSTALL) -m 2755 -d $(installdir)/gifs
$(INSTALL) -m 0644 --ifdiff gifs/*.gif $(installdir)/gifs
$(INSTALL) -m 2755 -d $(installdir)/$(mathdir)
$(INSTALL) -m 0644 --ifdiff $(mathdir)/*.gif $(installdir)/$(mathdir)
(cd $(installdir); ln -s -f $(x).html index.html)
# thrice is not enough when starting from scratch

View File

@ -1793,7 +1793,7 @@ arguments for which search tracing is desired.
Ordinarily, the search for
boot files is limited to a set of
default installation directories, but this may be overridden by setting
installation directories, but this may be overridden by setting
the environment variable \index{\scheme{SCHEMEHEAPDIRS}}\scheme{SCHEMEHEAPDIRS}.
\scheme{SCHEMEHEAPDIRS} should be a colon-separated list of directories, listed in
the order in which they should be searched.
@ -1810,7 +1810,8 @@ searched after those in \scheme{SCHEMEHEAPDIRS}; otherwise, only those listed in
Under Windows, semi-colons are used in place of colons, and one additional
escape is recognized: ``\scheme{%x},'' which is replaced by the directory in
which the executable file resides.
The default search path under Windows consists only of ``\scheme{%x}.''
The default search path under Windows consists of ``\scheme{%x}''
and ``\scheme{%x\..\..\boot\%m}.''
The registry key \scheme{HeapSearchPath} in
\scheme{HKLM\SOFTWARE\Chez Scheme\csv\var{version}}, where
\var{version} is the {\ChezScheme} version number, e.g.,

View File

@ -31,6 +31,7 @@ bootfiles: build
$(MAKE) -f Mf-boot
clean:
rm -f petite.1 scheme.1
(cd s ; $(MAKE) clean)
(cd c ; $(MAKE) clean)
(cd mats ; $(MAKE) clean)

View File

@ -35,8 +35,8 @@ clean:
(cd $(workarea) && $(MAKE) clean)
distclean:
rm -rf $(workarea)
(cd csug ; make reallyreallyclean)
(cd release_notes ; make reallyreallyclean)
rm -rf $(workarea)
rm -f Makefile
rm -f Make.out

View File

@ -1,4 +1,4 @@
# Mf-boot.in
# Mf-install.in
# Copyright 1984-2016 Cisco Systems, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
###############################################################################
# the following variables are set up by configure #
###############################################################################
m=none
# The following variables determine where the executables, boot files,
@ -22,56 +26,50 @@ m=none
# in the generated manual page
InstallPrefix=/usr
# executable directory
InstallBin=${InstallPrefix}/bin
# library directory
InstallLib=${InstallPrefix}/lib
# man page directory
InstallMan=${InstallPrefix}/man/man1
# installation owner
InstallOwner=
# installation group
InstallGroup=
# executable directory
InstallBin=${InstallPrefix}/bin
# library directory
InstallLib=${InstallPrefix}/lib/csv9.4
# example program directory
InstallLibLib=${InstallLib}/lib
# base executable and heap file directory
InstallLibBin=${InstallLib}/$m
# man page directory
InstallMan=${InstallPrefix}/man/man1
# compress man pages?
GzipManPages=yes
# executable names
InstallPetiteName=petite
InstallSchemeName=scheme
# the name "scheme-script" is hardwired in custom.c, so if
# InstallScriptName is changed, the executable may have to be
# rebuilt with a modified custom.c that looks for the new name
InstallScriptName=scheme-script
# Files are actually installed at ${TempRoot}${InstallPrefix}
# This useful for testing the install process and for building
# installation scripts
TempRoot=
# compress man pages?
GzipManPages=yes
# executable names
InstallSchemeName=scheme
InstallPetiteName=petite
InstallScriptName=scheme-script
###############################################################################
# no changes should be needed below this point #
###############################################################################
Version=csv9.4
Include=boot/$m
PetiteBoot=boot/$m/petite.boot
SchemeBoot=boot/$m/scheme.boot
Scheme=bin/$m/scheme
Petite=bin/$m/petite
InstallLibExamples=${InstallLib}/${Version}/examples
InstallLibBin=${InstallLib}/${Version}/$m
Bin=${TempRoot}${InstallBin}
Lib=${TempRoot}${InstallLib}
LibLib=${TempRoot}${InstallLibLib}
Lib=${TempRoot}${InstallLib}/${Version}
LibExamples=${TempRoot}${InstallLibExamples}
LibBin=${TempRoot}${InstallLibBin}
Man=${TempRoot}${InstallMan}
PetitePath=${Bin}/${InstallPetiteName}
@ -95,8 +93,7 @@ uninstall:
scheme.1 petite.1: scheme.1.in
sed -e "s;{InstallBin};${InstallBin};g" \
-e "s;{InstallLib};${InstallLib};g" \
-e "s;{InstallLibLib};${InstallLibLib};g" \
-e "s;{InstallLibExamples};${InstallLibExamples};g" \
-e "s;{InstallLibBin};${InstallLibBin};g" \
-e "s;{InstallPetiteName};${InstallPetiteName};g" \
-e "s;{InstallSchemeName};${InstallSchemeName};g" \
@ -134,8 +131,8 @@ maninstall: scheme.1 petite.1 ${Man}
$I -m 444 petite.1 ${Man}/${InstallPetiteName}.1
if [ ${GzipManPages} = yes ] ; then gzip -f ${Man}/${InstallPetiteName}.1 ; fi
liblibinstall: ${LibLib}
$I -m 444 ../examples/* ${LibLib}
liblibinstall: ${LibExamples}
$I -m 444 ../examples/* ${LibExamples}
${Lib}:
$I -d -m 755 ${Lib}
@ -143,8 +140,8 @@ ${Lib}:
${LibBin}: ${Lib}
$I -d -m 755 ${LibBin}
${LibLib}: ${Lib}
$I -d -m 755 ${LibLib}
${LibExamples}: ${Lib}
$I -d -m 755 ${LibExamples}
${Bin}:
$I -d -m 755 ${Bin}

View File

@ -6,6 +6,7 @@ fi
while ${TRUE} ; do
mkdirs=0
ifdiff=0
while [ $# -ge 0 ] ; do
case $1 in
@ -13,23 +14,23 @@ while ${TRUE} ; do
-o) shift; owner=$1 ;;
-g) shift; group=$1 ;;
-m) shift; mode=$1 ;;
--ifdiff) ifdiff=1 ;;
-*) break 2 ;;
*) break ;;
esac
shift
done
if [ $mkdirs -eq 1 ] && [ $ifdiff -eq 1 ] ; then
break
fi
if [ $mkdirs -eq 1 ] ; then
dirs=$*
for dir in $dirs ; do
case $dir in
/*) ;;
*) echo "directory name must begin with /; $dir does not" ; exit 1 ;;
esac
stack=""
while [ "$dir" != "/" ] ; do
while [ "$dir" != "/" -a "$dir" != "." -a "$dir" != ".." ] ; do
stack="$dir $stack"
dir=`dirname $dir`
done
@ -60,7 +61,7 @@ while ${TRUE} ; do
for file in $files ; do
destfile=$dest
if [ -d $destfile ] ; then destfile=$destfile/`basename $file` ; fi
if cp -f -p $file $destfile ; then
if [ $ifdiff == 1 ] && cmp -s $file $destfile || cp -f -p $file $destfile ; then
if [ "$owner" != "" ] ; then chown $owner $destfile ; fi
if [ "$group" != "" ] ; then chgrp $group $destfile ; fi
if [ "$mode" != "" ] ; then chmod $mode $destfile ; fi
@ -71,7 +72,7 @@ while ${TRUE} ; do
exit 0
done
echo "usage: $0 [ -o owner] [ -g group ] [ -m mode ] file dest"
echo " $0 [ -o owner] [ -g group ] [ -m mode ] file file ... dir"
echo "usage: $0 [ -o owner] [ -g group ] [ -m mode ] [ --ifdiff] file dest"
echo " $0 [ -o owner] [ -g group ] [ -m mode ] [ --ifdiff] file file ... dir"
echo " $0 -d [ -o owner] [ -g group ] [ -m mode ] dir dir ..."
exit 1

View File

@ -87,10 +87,6 @@ sed -e "s/Chez Scheme Version [^ ]*/Chez Scheme Version $R/" \
../NOTICE > NOTICE
set updatedfiles = ($updatedfiles NOTICE)
sed -e "s/csv[0-9]\.[0-9]\(\.[0-9]\)\?/csv$R/" ../configure > configure
chmod +x configure
set updatedfiles = ($updatedfiles configure)
mkdir makefiles
sed -e "s/csv[0-9]\.[0-9]\(\.[0-9]\)\?/csv$R/" ../makefiles/Mf-install.in > makefiles/Mf-install.in
set updatedfiles = ($updatedfiles makefiles/Mf-install.in)

View File

@ -3,7 +3,7 @@
.if t .ds c caf\o'\'e'
.if n .ds c cafe
.ds ]W
.TH SCHEME 1 "April 2016 Cisco Systems, Inc."
.TH SCHEME 1 "May 2016 Cisco Systems, Inc."
.SH NAME
\fIChez Scheme\fP
.br
@ -741,14 +741,14 @@ to a colon-separated (semi-colon under Windows) list of directories
in which to search for boot files.
.SH FILES
.if 0 COMMENT: put the longest path from below in the tab computation:
.ta \w'{InstallLibBin}'u+.25i
.ta \w'{InstallLibExamples}'u+.25i
{InstallBin}/{InstallSchemeName} executable file
.br
{InstallBin}/{InstallPetiteName} executable file
.br
{InstallBin}/{InstallScriptName} executable file
.br
{InstallLibLib} example program library
{InstallLibExamples} example program library
.br
{InstallLibBin} boot and include files
.sp

View File

@ -113,6 +113,9 @@ workdir $W/c
(cd $W/c; workln ../../c/Mf-$M Mf-$M)
(cd $W/c; forceworkln Mf-$M Makefile)
(cd $W/c; workln ../../c/Mf-base Mf-base)
if [ ! -e $W/c/config.h ] ; then
touch $W/c/config.h
fi
workdir $W/s
(cd $W/s; workln ../../s/Mf-$M Mf-$M)