diff --git a/LOG b/LOG index bce3b12eda..eaaa45447e 100644 --- a/LOG +++ b/LOG @@ -104,3 +104,5 @@ configure, makefiles/Makefile.in, csug/Makefile, copyright.stex, csug.stex, release_notes/Makefile +- added custom install options. + configure newrelease scheme.c heappath.h.in diff --git a/c/heappath.h.in b/c/heappath.h.in new file mode 100644 index 0000000000..fe53d691f0 --- /dev/null +++ b/c/heappath.h.in @@ -0,0 +1,32 @@ +/* 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 diff --git a/c/scheme.c b/c/scheme.c index 7f559cdf46..46e541d8d2 100644 --- a/c/scheme.c +++ b/c/scheme.c @@ -403,11 +403,8 @@ static const char *path_last(p) const char *p; { return p; } -#define SEARCHPATHMAXSIZE 8192 +#include "heappath.h" #ifdef WIN32 -/* by default, look in executable directory or in parallel boot directory */ -#define defaultsystemheappath "%x;%x\\..\\..\\boot\\%m" -#define SEARCHPATHSEP ';' static char *get_defaultheapdirs() { char *result; @@ -419,10 +416,6 @@ static char *get_defaultheapdirs() { return result; } #else /* not WIN32: */ -#define SEARCHPATHSEP ':' -/* keep in sync with scheme.1 */ -#define defaultsystemheappath "/usr/lib/csv%v/%m:/usr/local/lib/csv%v/%m" - static char *get_defaultheapdirs() { static char defaultheapdirs[SEARCHPATHMAXSIZE]; const char *home; diff --git a/configure b/configure index c15a117af2..45eb81f703 100755 --- a/configure +++ b/configure @@ -46,7 +46,8 @@ case `uname` in tm64="" fi installprefix=/usr - installman=/usr/share/man + installlib=$installprefix/lib + installman=$installprefix/share/man ;; QNX) if uname -a | egrep 'x86' > /dev/null 2>&1 ; then @@ -54,7 +55,8 @@ case `uname` in tm32=ti3qnx fi installprefix=/usr/local - installman=/usr/local/man + installlib=$installprefix/lib + installman=$installprefix/man ;; FreeBSD) if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then @@ -64,7 +66,8 @@ case `uname` in tm64=ta6fb fi installprefix=/usr/local - installman=/usr/local/man + installlib=$installprefix/lib + installman=$installprefix/man ;; OpenBSD) if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then @@ -74,7 +77,8 @@ case `uname` in tm64=ta6ob fi installprefix=/usr/local - installman=/usr/local/man + installlib=$installprefix/lib + installman=$installprefix/man ;; NetBSD) if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then @@ -84,7 +88,8 @@ case `uname` in tm64=ta6nb fi installprefix=/usr - installman=/usr/share/man + installlib=$installprefix/lib + installman=$installprefix/share/man gzipmanpages=no ;; Darwin) @@ -95,7 +100,8 @@ case `uname` in tm64=ta6osx fi installprefix=/usr/local - installman=/usr/local/share/man + installlib=$installprefix/lib + installman=$installprefix/share/man ;; SunOS) if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then @@ -104,7 +110,8 @@ case `uname` in tm32=ti3s2 tm64=ta6s2 installprefix=/usr - installman=/usr/share/man + installlib=$installprefix/lib + installman=$installprefix/share/man gzipmanpages=no fi ;; @@ -133,6 +140,9 @@ while [ $# != 0 ] ; do --installprefix=*) installprefix=`echo $1 | sed -e 's/^--installprefix=//'` ;; + --installlib=*) + installlib=`echo $1 | sed -e 's/^--installlib=//'` + ;; --installman=*) installman=`echo $1 | sed -e 's/^--installman=//'` ;; @@ -200,6 +210,7 @@ if [ "$help" = "yes" ]; then echo " --threads specify threaded version ($threads)" echo " --32|--64 specify 32/64-bit version ($bits)" echo " --installprefix= final installation root ($installprefix)" + echo " --installlib= lib directory ($installlib)" echo " --installman= manpage directory ($installman)" echo " --temproot= staging root ($temproot)" echo " --installowner= install with owner ($installowner)" @@ -251,9 +262,13 @@ 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;^InstallMan=.*\$;InstallMan=$installman/man1;"\ -e "s;^InstallOwner=.*\$;InstallOwner=$installowner;"\ -e "s;^InstallGroup=.*\$;InstallGroup=$installgroup;"\ -e "s;^TempRoot=.*;TempRoot=$temproot;"\ -e "s;^GzipManPages=.*$;GzipManPages=$gzipmanpages;"\ 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 diff --git a/makefiles/Mf-install.in b/makefiles/Mf-install.in index 3cfc4dfc83..c9952407ac 100644 --- a/makefiles/Mf-install.in +++ b/makefiles/Mf-install.in @@ -130,9 +130,9 @@ libbininstall: ${LibBin} maninstall: scheme.1 petite.1 ${Man} $I -m 444 scheme.1 ${Man}/${InstallSchemeName}.1 - if [ ${GzipManPages} = yes ] ; then gzip ${Man}/${InstallSchemeName}.1 ; fi + if [ ${GzipManPages} = yes ] ; then gzip -f ${Man}/${InstallSchemeName}.1 ; fi $I -m 444 petite.1 ${Man}/${InstallPetiteName}.1 - if [ ${GzipManPages} = yes ] ; then gzip ${Man}/${InstallPetiteName}.1 ; fi + if [ ${GzipManPages} = yes ] ; then gzip -f ${Man}/${InstallPetiteName}.1 ; fi liblibinstall: ${LibLib} $I -m 444 ../examples/* ${LibLib} diff --git a/newrelease b/newrelease index 96b5a02952..8cedc6b694 100755 --- a/newrelease +++ b/newrelease @@ -64,7 +64,7 @@ endif # clear running list of updated files set updatedfiles = () -workarea $M $W +./workarea $M $W if ($status != 0) exit 1 cd $W @@ -87,6 +87,10 @@ 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)