- 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' boot and header files can be committed as well. 'make bootfiles'
can take 5 minutes or more. 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' 'make clean'
removes binaries from the workarea. 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 of their own. If you are contributing a significant extension built
using Chez Scheme, consider whether your contribution is such an using Chez Scheme, consider whether your contribution is such an
independent project. An example of such a project is the [Nanopass independent project. An example of such a project is the [Nanopass
Framework](http://github.com/akeep/nanopass-framework) which is Framework](http://github.com/nanopass/nanopass-framework-scheme)
both used by Chez Scheme and was initially written using Chez Scheme, which is both used by Chez Scheme and was initially written using
but evolves separately. Chez Scheme, but evolves separately.
Before investing significant effort preparing a contribution, Before investing significant effort preparing a contribution,
consider running the idea by one of the committers for additional consider running the idea by one of the committers for additional

37
LOG
View File

@ -104,5 +104,38 @@
configure, makefiles/Makefile.in, configure, makefiles/Makefile.in,
csug/Makefile, copyright.stex, csug.stex, csug/Makefile, copyright.stex, csug.stex,
release_notes/Makefile release_notes/Makefile
- added custom install options. - added custom install options. workarea creates an empty config.h,
configure newrelease scheme.c heappath.h.in 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} 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 mainsrc=main.c
@ -44,6 +44,7 @@ rootsrc=$(shell cd ../../c; echo *)
${rootsrc}: ; ln -s ../../c/$@ $@ ${rootsrc}: ; ln -s ../../c/$@ $@
scheme.o: itest.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}: system.h types.h version.h externs.h globals.h segment.h thread.h sort.h
${kernelobj}: ${Include}/equates.h ${Include}/scheme.h ${kernelobj}: ${Include}/equates.h ${Include}/scheme.h
${mainobj}: ${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 <string.h>
#include <stdio.h> #include <stdio.h>
#include "scheme.h" #include "scheme.h"
#include "config.h"
/**** /****
CUSTOM_INIT may be defined as a function with the signature shown to CUSTOM_INIT may be defined as a function with the signature shown to
@ -45,6 +46,10 @@
#define ABNORMAL_EXIT ((void (*)(void))0) #define ABNORMAL_EXIT ((void (*)(void))0)
#endif /* ABNORMAL_EXIT */ #endif /* ABNORMAL_EXIT */
#ifndef SCHEME_SCRIPT
#define SCHEME_SCRIPT "scheme-script"
#endif
static const char *path_last(const char *p) { static const char *path_last(const char *p) {
const char *s; const char *s;
#ifdef WIN32 #ifdef WIN32
@ -92,7 +97,7 @@ int main(int argc, const char *argv[]) {
Sscheme_init(ABNORMAL_EXIT); Sscheme_init(ABNORMAL_EXIT);
if (strcmp(path_last(execpath), "scheme-script") == 0) { if (strcmp(path_last(execpath), SCHEME_SCRIPT) == 0) {
if (argc < 2) { if (argc < 2) {
(void) fprintf(stderr,"%s requires program-path argument\n", execpath); (void) fprintf(stderr,"%s requires program-path argument\n", execpath);
exit(1); exit(1);

View File

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

View File

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

67
configure vendored
View File

@ -31,6 +31,12 @@ help=no
gzipmanpages=yes gzipmanpages=yes
installowner="" installowner=""
installgroup="" installgroup=""
installbin=""
installlib=""
installman=""
installschemename="scheme"
installpetitename="petite"
installscriptname="scheme-script"
case `uname` in case `uname` in
Linux) Linux)
@ -46,8 +52,7 @@ case `uname` in
tm64="" tm64=""
fi fi
installprefix=/usr installprefix=/usr
installlib=$installprefix/lib installmansuffix=share/man
installman=$installprefix/share/man
;; ;;
QNX) QNX)
if uname -a | egrep 'x86' > /dev/null 2>&1 ; then if uname -a | egrep 'x86' > /dev/null 2>&1 ; then
@ -55,8 +60,7 @@ case `uname` in
tm32=ti3qnx tm32=ti3qnx
fi fi
installprefix=/usr/local installprefix=/usr/local
installlib=$installprefix/lib installmansuffix=man
installman=$installprefix/man
;; ;;
FreeBSD) FreeBSD)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -66,8 +70,7 @@ case `uname` in
tm64=ta6fb tm64=ta6fb
fi fi
installprefix=/usr/local installprefix=/usr/local
installlib=$installprefix/lib installmansuffix=man
installman=$installprefix/man
;; ;;
OpenBSD) OpenBSD)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -77,8 +80,7 @@ case `uname` in
tm64=ta6ob tm64=ta6ob
fi fi
installprefix=/usr/local installprefix=/usr/local
installlib=$installprefix/lib installmansuffix=man
installman=$installprefix/man
;; ;;
NetBSD) NetBSD)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -88,8 +90,7 @@ case `uname` in
tm64=ta6nb tm64=ta6nb
fi fi
installprefix=/usr installprefix=/usr
installlib=$installprefix/lib installmansuffix=share/man
installman=$installprefix/share/man
gzipmanpages=no gzipmanpages=no
;; ;;
Darwin) Darwin)
@ -100,8 +101,7 @@ case `uname` in
tm64=ta6osx tm64=ta6osx
fi fi
installprefix=/usr/local installprefix=/usr/local
installlib=$installprefix/lib installmansuffix=share/man
installman=$installprefix/share/man
;; ;;
SunOS) SunOS)
if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
@ -110,8 +110,7 @@ case `uname` in
tm32=ti3s2 tm32=ti3s2
tm64=ta6s2 tm64=ta6s2
installprefix=/usr installprefix=/usr
installlib=$installprefix/lib installmansuffix=share/man
installman=$installprefix/share/man
gzipmanpages=no gzipmanpages=no
fi fi
;; ;;
@ -143,6 +142,9 @@ while [ $# != 0 ] ; do
--installlib=*) --installlib=*)
installlib=`echo $1 | sed -e 's/^--installlib=//'` installlib=`echo $1 | sed -e 's/^--installlib=//'`
;; ;;
--installbin=*)
installbin=`echo $1 | sed -e 's/^--installbin=//'`
;;
--installman=*) --installman=*)
installman=`echo $1 | sed -e 's/^--installman=//'` installman=`echo $1 | sed -e 's/^--installman=//'`
;; ;;
@ -152,6 +154,15 @@ while [ $# != 0 ] ; do
--installgroup=*) --installgroup=*)
installgroup=`echo $1 | sed -e 's/^--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) --gzip-man-pages)
gzipmanpages=yes gzipmanpages=yes
;; ;;
@ -199,6 +210,18 @@ if [ "$w" = "" ] ; then
w=$m w=$m
fi 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 if [ "$help" = "yes" ]; then
echo "Purpose:" echo "Purpose:"
echo " $0 determines the machine type and constructs a custom Makefile" echo " $0 determines the machine type and constructs a custom Makefile"
@ -210,11 +233,15 @@ if [ "$help" = "yes" ]; then
echo " --threads specify threaded version ($threads)" echo " --threads specify threaded version ($threads)"
echo " --32|--64 specify 32/64-bit version ($bits)" echo " --32|--64 specify 32/64-bit version ($bits)"
echo " --installprefix=<pathname> final installation root ($installprefix)" echo " --installprefix=<pathname> final installation root ($installprefix)"
echo " --installbin=<pathname> lib directory ($installbin)"
echo " --installlib=<pathname> lib directory ($installlib)" echo " --installlib=<pathname> lib directory ($installlib)"
echo " --installman=<pathname> manpage directory ($installman)" echo " --installman=<pathname> manpage directory ($installman)"
echo " --temproot=<pathname> staging root ($temproot)" echo " --temproot=<pathname> staging root ($temproot)"
echo " --installowner=<ownername> install with owner ($installowner)" echo " --installowner=<ownername> install with owner ($installowner)"
echo " --installgroup=<groupname> install with group ($installgroup)" 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 " --[no]gzip-man-pages compress manual pages ($gzipmanpages)"
echo " --workarea=<pathname> build directory ($w)" echo " --workarea=<pathname> build directory ($w)"
echo "" echo ""
@ -262,13 +289,19 @@ sed -e 's/$(m)/'$m'/g'\
sed -e "s;^m=none\$;m=$m;"\ sed -e "s;^m=none\$;m=$m;"\
-e "s;^InstallPrefix=.*\$;InstallPrefix=$installprefix;"\ -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;^InstallMan=.*\$;InstallMan=$installman/man1;"\
-e "s;^InstallOwner=.*\$;InstallOwner=$installowner;"\ -e "s;^InstallOwner=.*\$;InstallOwner=$installowner;"\
-e "s;^InstallGroup=.*\$;InstallGroup=$installgroup;"\ -e "s;^InstallGroup=.*\$;InstallGroup=$installgroup;"\
-e "s;^TempRoot=.*;TempRoot=$temproot;"\ -e "s;^TempRoot=.*;TempRoot=$temproot;"\
-e "s;^GzipManPages=.*$;GzipManPages=$gzipmanpages;"\ -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 makefiles/Mf-install.in > $w/Mf-install
sed -e "s;\#define defaultsystemheappath \"/usr/lib/csv%v/%m:.*\$;\#define defaultsystemheappath \"$installlib/csv%v/%m\";"\ cat > $w/c/config.h << END
c/heappath.h.in > $w/c/heappath.h #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 Scheme=../$m/bin/$m/scheme -b ../$m/boot/$m/petite.boot -b ../$m/boot/$m/scheme.boot
STEXLIB=../stex STEXLIB=../stex
installdir=/tmp/csug9 installdir=/tmp/csug9
INSTALL=../$m/installsh
x = csug x = csug
latex = pdflatex latex = pdflatex
@ -14,14 +15,14 @@ DIR=$(shell basename `pwd`)
target: logcheck1 logcheck2 checklibs $(x).html target: logcheck1 logcheck2 checklibs $(x).html
install: target install: target
installsh -m 2755 -d $(installdir) $(INSTALL) -m 2755 -d $(installdir)
installsh -m 0644 --ifdiff *.html *.css $(installdir) $(INSTALL) -m 0644 --ifdiff *.html *.css $(installdir)
installsh -m 2755 -d $(installdir)/canned $(INSTALL) -m 2755 -d $(installdir)/canned
installsh -m 0644 --ifdiff canned/* $(installdir)/canned $(INSTALL) -m 0644 --ifdiff canned/* $(installdir)/canned
installsh -m 2755 -d $(installdir)/gifs $(INSTALL) -m 2755 -d $(installdir)/gifs
installsh -m 0644 --ifdiff gifs/*.gif $(installdir)/gifs $(INSTALL) -m 0644 --ifdiff gifs/*.gif $(installdir)/gifs
installsh -m 2755 -d $(installdir)/$(mathdir) $(INSTALL) -m 2755 -d $(installdir)/$(mathdir)
installsh -m 0644 --ifdiff $(mathdir)/*.gif $(installdir)/$(mathdir) $(INSTALL) -m 0644 --ifdiff $(mathdir)/*.gif $(installdir)/$(mathdir)
(cd $(installdir); ln -s -f $(x).html index.html) (cd $(installdir); ln -s -f $(x).html index.html)
# thrice is not enough when starting from scratch # 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 Ordinarily, the search for
boot files is limited to a set of 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}. the environment variable \index{\scheme{SCHEMEHEAPDIRS}}\scheme{SCHEMEHEAPDIRS}.
\scheme{SCHEMEHEAPDIRS} should be a colon-separated list of directories, listed in \scheme{SCHEMEHEAPDIRS} should be a colon-separated list of directories, listed in
the order in which they should be searched. 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 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 escape is recognized: ``\scheme{%x},'' which is replaced by the directory in
which the executable file resides. 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 The registry key \scheme{HeapSearchPath} in
\scheme{HKLM\SOFTWARE\Chez Scheme\csv\var{version}}, where \scheme{HKLM\SOFTWARE\Chez Scheme\csv\var{version}}, where
\var{version} is the {\ChezScheme} version number, e.g., \var{version} is the {\ChezScheme} version number, e.g.,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -113,6 +113,9 @@ workdir $W/c
(cd $W/c; workln ../../c/Mf-$M Mf-$M) (cd $W/c; workln ../../c/Mf-$M Mf-$M)
(cd $W/c; forceworkln Mf-$M Makefile) (cd $W/c; forceworkln Mf-$M Makefile)
(cd $W/c; workln ../../c/Mf-base Mf-base) (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 workdir $W/s
(cd $W/s; workln ../../s/Mf-$M Mf-$M) (cd $W/s; workln ../../s/Mf-$M Mf-$M)