diff --git a/BUILDING b/BUILDING index a3b411fd6e..59f9f18265 100644 --- a/BUILDING +++ b/BUILDING @@ -167,15 +167,18 @@ The make file supports several targets: WINDOWS -Building Chez Scheme under Windows with Cygwin follows the -instructions above except that make install is not supported: +Building Chez Scheme under Windows with Cygwin or Bash/WSL follows the +instructions above, except that 'make install' is not supported, and +the 'OS' environment variable must be set to 'Windows_NT' on Bash/WSL +(to indicate a build for Windows, as opposed to a build for Linux on +Windows): -./configure -make +env OS=Windows_NT ./configure +env OS=Windows_NT make Prerequisites: -* Cygwin with bash, grep, make, sed, etc. +* Cygwin or Bash/WSL with bash, grep, make, sed, etc. * Microsoft Visual Studio 2015 * WiX Toolset (for making an install) diff --git a/LOG b/LOG index bddd429b36..b9f706b8b8 100644 --- a/LOG +++ b/LOG @@ -511,8 +511,15 @@ cp0.ss, misc.ms, release_notes.stex +- support Windows build on Bash/WSL + BUILDING, configure, workarea, c/vs.bat (new), mats/vs.bat (new), + c/Mf-*nt, mats/Mf-*, s/Mf-base +- fix c/version.h for FreeBDS (machine types i3fb, ti3fb, a6fb, ta6fb) +- fix reference to libc.so to be libc.so.7 for FreeBSD (machine types + i3fb, ti3fb, a6fb, ta6fb) + foreign.ms +- added CC option to configure for selecting the compiler + configure, + c/Mf-* - Suppress warnings from implicit fallthrough in case labels. - Mf-a6{fb,le,nb,ob,osx,s2}, Mf-arm32le, - Mf-i3{fb,le,nb,ob,osx,s2}, Mf-ppc32le, - Mf-ta6{fb,le,nb,ob,osx,s2}, - Mf-ti3{fb,le,nb,ob,osx,s2}, Mf-tpp32le + Mf-{a6,arm32,i3,ppc,ta6,ti3,tpp32}le diff --git a/c/Mf-a6fb b/c/Mf-a6fb index 21699ff56d..9a55d7ae89 100644 --- a/c/Mf-a6fb +++ b/c/Mf-a6fb @@ -1,12 +1,12 @@ # Mf-a6fb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = X86_64 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-a6le b/c/Mf-a6le index 8c3c4fb486..c6b9b93389 100644 --- a/c/Mf-a6le +++ b/c/Mf-a6le @@ -1,12 +1,12 @@ # Mf-a6le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = a6le Cpu = X86_64 mdclib = -lm -ldl -lncurses -lrt -C = gcc ${CPPFLAGS} -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-a6nb b/c/Mf-a6nb index dfa597e019..f3869b360e 100644 --- a/c/Mf-a6nb +++ b/c/Mf-a6nb @@ -1,12 +1,12 @@ # Mf-a6nb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = X86_64 mdinclude = -I/usr/X11R7/include -I/usr/pkg/include -I/usr/pkg/include/ncurses -I/usr/local/include -I/usr/X11R6/include mdclib = /usr/lib/i18n/libiconv_std.a -lm /usr/pkg/lib/libncurses.a -C = gcc ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-a6nt b/c/Mf-a6nt index d9190b2a91..8b51ff88d9 100644 --- a/c/Mf-a6nt +++ b/c/Mf-a6nt @@ -25,27 +25,11 @@ mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe* include Mf-base ${Scheme}: make.bat - ./make.bat + cmd.exe /c make.bat cp ../bin/$m/scheme.exe ../bin/$m/petite.exe -vs.bat: - echo '@echo off' > $@ - echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@ - echo 'echo Visual Studio 2015 must be installed.' >> $@ - echo 'exit 1' >> $@ - echo ':VS' >> $@ - echo 'set INCLUDE=' >> $@ - echo 'set LIB=' >> $@ - echo 'set LIBPATH=' >> $@ - echo 'set MACHINETYPE=amd64' >> $@ - echo 'if exist "%VS140COMNTOOLS%..\..\VC\bin\x86_amd64\vcvarsx86_amd64.bat" set MACHINETYPE=x86_amd64' >> $@ - echo 'if exist "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat" set MACHINETYPE=amd64' >> $@ - echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %MACHINETYPE%' >> $@ - echo '%*' >> $@ - chmod +x $@ - make.bat: vs.bat echo '@echo off' > $@ echo 'set MAKEFLAGS=' >> $@ - echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@ + echo 'vs.bat x86_amd64 amd64 && nmake /f Makefile.$m /nologo %*' >> $@ chmod +x $@ diff --git a/c/Mf-a6ob b/c/Mf-a6ob index 2292d93624..03ab059065 100644 --- a/c/Mf-a6ob +++ b/c/Mf-a6ob @@ -1,12 +1,12 @@ # Mf-a6ob # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = X86_64 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -Wpointer-arith -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-a6osx b/c/Mf-a6osx index a7db5b00e0..fe0756b378 100644 --- a/c/Mf-a6osx +++ b/c/Mf-a6osx @@ -17,7 +17,7 @@ m = a6osx Cpu = X86_64 mdclib = -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -m64 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -I/opt/X11/include/ ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -Wpointer-arith -Wall -Wextra -Werror -O2 -I/opt/X11/include/ ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-a6s2 b/c/Mf-a6s2 index 19fb299791..6d172cc73b 100644 --- a/c/Mf-a6s2 +++ b/c/Mf-a6s2 @@ -1,12 +1,12 @@ # Mf-a6s2 # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = a6s2 Cpu = X86_64 mdclib = -lnsl -ldl -lm -lcurses -lrt -C = gcc ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-arm32le b/c/Mf-arm32le index 198e48928e..c4564a5264 100644 --- a/c/Mf-arm32le +++ b/c/Mf-arm32le @@ -1,12 +1,12 @@ # Mf-arm32le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = arm32le Cpu = ARMV6 mdclib = -lm -ldl -lncurses -lrt -C = gcc ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 ${CFLAGS} o = o mdsrc = arm32le.c mdobj = arm32le.o diff --git a/c/Mf-i3fb b/c/Mf-i3fb index 0096fc783f..834d8ab846 100644 --- a/c/Mf-i3fb +++ b/c/Mf-i3fb @@ -1,12 +1,12 @@ # Mf-i3fb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = I386 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-i3le b/c/Mf-i3le index 66ec258cbb..9d3b30db49 100644 --- a/c/Mf-i3le +++ b/c/Mf-i3le @@ -1,12 +1,12 @@ # Mf-i3le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = i3le Cpu = I386 mdclib = -lm -ldl -lncurses -lrt -C = gcc ${CPPFLAGS} -m32 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -fno-stack-protector ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -fno-stack-protector ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-i3nb b/c/Mf-i3nb index 2797901d97..f7378865c1 100644 --- a/c/Mf-i3nb +++ b/c/Mf-i3nb @@ -1,12 +1,12 @@ # Mf-i3nb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = I386 mdinclude = -I/usr/X11R7/include -I/usr/pkg/include -I/usr/pkg/include/ncurses -I/usr/X11R6/include mdclib = /usr/lib/i18n/libiconv_std.a -lm /usr/pkg/lib/libncurses.a -C = gcc ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-i3nt b/c/Mf-i3nt index b41c755208..855721aa9d 100644 --- a/c/Mf-i3nt +++ b/c/Mf-i3nt @@ -25,24 +25,11 @@ mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe* include Mf-base ${Scheme}: make.bat - ./make.bat + cmd.exe /c make.bat cp ../bin/$m/scheme.exe ../bin/$m/petite.exe -vs.bat: - echo '@echo off' > $@ - echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@ - echo 'echo Visual Studio 2015 must be installed.' >> $@ - echo 'exit 1' >> $@ - echo ':VS' >> $@ - echo 'set INCLUDE=' >> $@ - echo 'set LIB=' >> $@ - echo 'set LIBPATH=' >> $@ - echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86' >> $@ - echo '%*' >> $@ - chmod +x $@ - make.bat: vs.bat echo '@echo off' > $@ echo 'set MAKEFLAGS=' >> $@ - echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@ + echo 'vs.bat x86 && nmake /f Makefile.$m /nologo %*' >> $@ chmod +x $@ diff --git a/c/Mf-i3ob b/c/Mf-i3ob index b750dfe250..ee9ceec21b 100644 --- a/c/Mf-i3ob +++ b/c/Mf-i3ob @@ -1,12 +1,12 @@ # Mf-i3ob # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = I386 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -Wpointer-arith -Werror -Wno-implicit-fallthrough -O ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Werror -O ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-i3osx b/c/Mf-i3osx index 32fa43577b..833cea7ee0 100644 --- a/c/Mf-i3osx +++ b/c/Mf-i3osx @@ -1,12 +1,12 @@ # Mf-i3osx # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = i3osx Cpu = I386 mdclib = -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -m32 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -msse2 -I/opt/X11/include/ ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -Wpointer-arith -Wall -Wextra -Werror -O2 -msse2 -I/opt/X11/include/ ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-i3s2 b/c/Mf-i3s2 index 03ab0a51c9..7f2c52963d 100644 --- a/c/Mf-i3s2 +++ b/c/Mf-i3s2 @@ -1,12 +1,12 @@ # Mf-i3s2 # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = i3s2 Cpu = I386 mdclib = -lnsl -ldl -lm -lcurses -lrt -C = gcc ${CFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O ${CPPFLAGS} +C = ${CC} ${CFLAGS} -m32 -Wpointer-arith -Wextra -Werror -O ${CPPFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ppc32le b/c/Mf-ppc32le index ae77d7d0b9..bf209fb233 100644 --- a/c/Mf-ppc32le +++ b/c/Mf-ppc32le @@ -1,12 +1,12 @@ # Mf-ppc32le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = ppc32le Cpu = PPC32 mdclib = -lm -ldl -lncurses -lrt -C = gcc ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 ${CFLAGS} o = o mdsrc = ppc32.c mdobj = ppc32.o diff --git a/c/Mf-ta6fb b/c/Mf-ta6fb index a45f8b7f58..81800dcacc 100644 --- a/c/Mf-ta6fb +++ b/c/Mf-ta6fb @@ -1,12 +1,12 @@ # Mf-ta6fb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = X86_64 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -lpthread -C = gcc ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ta6le b/c/Mf-ta6le index 76e0161743..206afc5070 100644 --- a/c/Mf-ta6le +++ b/c/Mf-ta6le @@ -1,12 +1,12 @@ # Mf-ta6le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = ta6le Cpu = X86_64 mdclib = -lm -ldl -lncurses -lpthread -lrt -C = gcc ${CPPFLAGS} -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ta6nb b/c/Mf-ta6nb index adbc8014fd..6dbd83c74a 100644 --- a/c/Mf-ta6nb +++ b/c/Mf-ta6nb @@ -1,12 +1,12 @@ # Mf-ta6nb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = X86_64 mdinclude = -I/usr/X11R7/include -I/usr/pkg/include -I/usr/pkg/include/ncurses -I/usr/X11R6/include mdclib = /usr/lib/i18n/libiconv_std.a -lm /usr/pkg/lib/libncurses.a -lpthread -C = gcc ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ta6nt b/c/Mf-ta6nt index 0129efd815..35638cb319 100644 --- a/c/Mf-ta6nt +++ b/c/Mf-ta6nt @@ -25,27 +25,11 @@ mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe* include Mf-base ${Scheme}: make.bat - ./make.bat + cmd.exe /c make.bat cp ../bin/$m/scheme.exe ../bin/$m/petite.exe -vs.bat: - echo '@echo off' > $@ - echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@ - echo 'echo Visual Studio 2015 must be installed.' >> $@ - echo 'exit 1' >> $@ - echo ':VS' >> $@ - echo 'set INCLUDE=' >> $@ - echo 'set LIB=' >> $@ - echo 'set LIBPATH=' >> $@ - echo 'set MACHINETYPE=amd64' >> $@ - echo 'if exist "%VS140COMNTOOLS%..\..\VC\bin\x86_amd64\vcvarsx86_amd64.bat" set MACHINETYPE=x86_amd64' >> $@ - echo 'if exist "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat" set MACHINETYPE=amd64' >> $@ - echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %MACHINETYPE%' >> $@ - echo '%*' >> $@ - chmod +x $@ - make.bat: vs.bat echo '@echo off' > $@ echo 'set MAKEFLAGS=' >> $@ - echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@ + echo 'vs.bat x86_amd64 amd64 && nmake /f Makefile.$m /nologo %*' >> $@ chmod +x $@ diff --git a/c/Mf-ta6ob b/c/Mf-ta6ob index 3484ed91c4..45e29e8955 100644 --- a/c/Mf-ta6ob +++ b/c/Mf-ta6ob @@ -1,12 +1,12 @@ # Mf-ta6ob # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = X86_64 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -lpthread -C = gcc ${CPPFLAGS} -Wpointer-arith -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Werror -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ta6osx b/c/Mf-ta6osx index 785a5decda..15fe45b375 100644 --- a/c/Mf-ta6osx +++ b/c/Mf-ta6osx @@ -17,7 +17,7 @@ m = ta6osx Cpu = X86_64 mdclib = -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -m64 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -I/opt/X11/include/ ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -Wpointer-arith -Wall -Wextra -Werror -O2 -I/opt/X11/include/ ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ta6s2 b/c/Mf-ta6s2 index 60d2825d2e..ed260d054c 100644 --- a/c/Mf-ta6s2 +++ b/c/Mf-ta6s2 @@ -1,12 +1,12 @@ # Mf-ta6s2 # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = ta6s2 Cpu = X86_64 mdclib = -lnsl -ldl -lm -lpthread -lcurses -lrt -C = gcc ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m64 -Wpointer-arith -Wextra -Werror -O2 -D_REENTRANT ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ti3fb b/c/Mf-ti3fb index 1c0e269b63..58af09cfcd 100644 --- a/c/Mf-ti3fb +++ b/c/Mf-ti3fb @@ -1,12 +1,12 @@ # Mf-ti3fb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = I386 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -lpthread -C = gcc ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Wextra -Werror -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ti3le b/c/Mf-ti3le index 034e036f18..388360282b 100644 --- a/c/Mf-ti3le +++ b/c/Mf-ti3le @@ -1,12 +1,12 @@ # Mf-ti3le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = ti3le Cpu = I386 mdclib = -lm -ldl -lncurses -lpthread -lrt -C = gcc ${CPPFLAGS} -m32 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ti3nb b/c/Mf-ti3nb index 2b0d9a9c36..fd102dce25 100644 --- a/c/Mf-ti3nb +++ b/c/Mf-ti3nb @@ -1,12 +1,12 @@ # Mf-ti3nb # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = I386 mdinclude = -I/usr/X11R7/include -I/usr/pkg/include -I/usr/pkg/include/ncurses -I/usr/X11R6/include mdclib = /usr/lib/i18n/libiconv_std.a -lm /usr/pkg/lib/libncurses.a -lpthread -C = gcc ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ti3nt b/c/Mf-ti3nt index b2ac822097..5503422757 100644 --- a/c/Mf-ti3nt +++ b/c/Mf-ti3nt @@ -25,24 +25,11 @@ mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe* include Mf-base ${Scheme}: make.bat - ./make.bat + cmd.exe /c make.bat cp ../bin/$m/scheme.exe ../bin/$m/petite.exe -vs.bat: - echo '@echo off' > $@ - echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@ - echo 'echo Visual Studio 2015 must be installed.' >> $@ - echo 'exit 1' >> $@ - echo ':VS' >> $@ - echo 'set INCLUDE=' >> $@ - echo 'set LIB=' >> $@ - echo 'set LIBPATH=' >> $@ - echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86' >> $@ - echo '%*' >> $@ - chmod +x $@ - make.bat: vs.bat echo '@echo off' > $@ echo 'set MAKEFLAGS=' >> $@ - echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@ + echo 'vs.bat x86 && nmake /f Makefile.$m /nologo %*' >> $@ chmod +x $@ diff --git a/c/Mf-ti3ob b/c/Mf-ti3ob index 37287db1f4..b6b529fd91 100644 --- a/c/Mf-ti3ob +++ b/c/Mf-ti3ob @@ -1,12 +1,12 @@ # Mf-ti3ob # Copyright 1984-2017 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. @@ -18,7 +18,7 @@ Cpu = I386 mdinclude = -I/usr/local/include -I/usr/X11R6/include mdclib = -L/usr/local/lib -liconv -lm -lncurses -lpthread -C = gcc ${CPPFLAGS} -Wpointer-arith -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -Wpointer-arith -Werror -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ti3osx b/c/Mf-ti3osx index 60fd7bd7d1..27d3e62bfc 100644 --- a/c/Mf-ti3osx +++ b/c/Mf-ti3osx @@ -1,12 +1,12 @@ # Mf-ti3osx # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = ti3osx Cpu = I386 mdclib = -liconv -lm -lncurses -C = gcc ${CPPFLAGS} -m32 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2 -msse2 -I/opt/X11/include/ ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -Wpointer-arith -Wall -Wextra -Werror -O2 -msse2 -I/opt/X11/include/ ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-ti3s2 b/c/Mf-ti3s2 index 7488808d5c..2f9ec15e5f 100644 --- a/c/Mf-ti3s2 +++ b/c/Mf-ti3s2 @@ -1,12 +1,12 @@ # Mf-ti3s2 # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = ti3s2 Cpu = I386 mdclib = -lnsl -ldl -lm -lpthread -lcurses -lrt -C = gcc ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -O2 -D_REENTRANT ${CFLAGS} o = o mdsrc = i3le.c mdobj = i3le.o diff --git a/c/Mf-tppc32le b/c/Mf-tppc32le index 84bb076ad1..c888664fe1 100644 --- a/c/Mf-tppc32le +++ b/c/Mf-tppc32le @@ -1,12 +1,12 @@ # Mf-tppc32le # Copyright 1984-2017 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. @@ -17,7 +17,7 @@ m = tppc32le Cpu = PPC32 mdclib = -lm -ldl -lncurses -lpthread -lrt -C = gcc ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} +C = ${CC} ${CPPFLAGS} -m32 -Wpointer-arith -Wextra -Werror -Wno-implicit-fallthrough -O2 -D_REENTRANT -pthread ${CFLAGS} o = o mdsrc = ppc32le.c mdobj = ppc32le.o diff --git a/c/version.h b/c/version.h index 30bd8bd9c4..7be60a1212 100644 --- a/c/version.h +++ b/c/version.h @@ -140,7 +140,7 @@ typedef int tputsputcchar; #define NSECATIME(sb) (sb).st_atimespec.tv_nsec #define NSECCTIME(sb) (sb).st_ctimespec.tv_nsec #define NSECMTIME(sb) (sb).st_mtimespec.tv_nsec -#define ICONV_INBUF_TYPE const char ** +#define ICONV_INBUF_TYPE char ** #define UNUSED __attribute__((__unused__)) #endif diff --git a/c/vs.bat b/c/vs.bat new file mode 100644 index 0000000000..103db58cd6 --- /dev/null +++ b/c/vs.bat @@ -0,0 +1,39 @@ +@echo off + +:: Set up Visual Studio command line environment variables given a +:: sequence of machine types to try ("x86", "x86_amd64", and "amd64"). + +:: Note: VS 11.0 (2012) and earlier won't work, because they +:: don't support C99 mid-block declarations. Also, there's no +:: such thing as VS 13.0. + +:: Clear environment variables that we might otherwise inherit +set INCLUDE= +set LIB= +set LIBPATH= + +:: Find visual studio +set VCDIR=%VS140COMNTOOLS%\..\..\vc +if not exist "%VCDIR%\vcvarsall.bat" set VCDIR=%VS120COMNTOOLS%\..\..\vc + +:: Loop to find a requested machine type +if exist "%VCDIR%\vcvarsall.bat" goto :VCDIR +echo Could not find Visual Studio installed. +exit 1 + +:VCDIR + +set MACHINETYPE=%1 +if "%MACHINETYPE%" neq "" goto :MACHINE +echo Could not find working machine type. +exit 1 + +:MACHINE +if "%MACHINETYPE%" == "x86" goto :VS +if exist "%VCDIR%\bin\%MACHINETYPE%\vcvars%MACHINETYPE%.bat" goto :VS +shift +goto :VCDIR + +:: Set environment variables +:VS +"%VCDIR%\vcvarsall.bat" %MACHINETYPE% diff --git a/configure b/configure index 577b3b4003..4c3c6b8dd5 100755 --- a/configure +++ b/configure @@ -37,11 +37,20 @@ installman="" installschemename="scheme" installpetitename="petite" installscriptname="scheme-script" +: ${CC:="gcc"} : ${CPPFLAGS:=""} : ${CFLAGS:=""} : ${LDFLAGS:=""} -case `uname` in +# On WSL, set OS to "Windows_NT" to create a Windows +# build instead of a Linux (on Windows) build: +if [ "$OS" = "Windows_NT" ] ; then + CONFIG_UNAME="CYGWIN_NT-" +else + CONFIG_UNAME=`uname` +fi + +case "${CONFIG_UNAME}" in Linux) if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then m32=i3le @@ -191,6 +200,9 @@ while [ $# != 0 ] ; do --help) help=yes ;; + CC=*) + CC=`echo $1 | sed -e 's/^CC=//'` + ;; CPPFLAGS=*) CPPFLAGS=`echo $1 | sed -e 's/^CPPFLAGS=//'` ;; @@ -348,6 +360,7 @@ cat > $w/c/config.h << END END cat > $w/c/Mf-config << END +CC=$CC CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS diff --git a/mats/Mf-a6nt b/mats/Mf-a6nt index 333892e41e..6fec7b426e 100644 --- a/mats/Mf-a6nt +++ b/mats/Mf-a6nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - ../c/vs.bat cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc) + cmd.exe /c "vs.bat x86_amd64 amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)" cat_flush: cat_flush.c - ../c/vs.bat cl /DWIN32 /DX86_64 /MD /nologo $< + cmd.exe /c "vs.bat x86_amd64 amd64 && cl /DWIN32 /DX86_64 /MD /nologo $<" diff --git a/mats/Mf-base b/mats/Mf-base index f4486d669c..3ddca00b24 100644 --- a/mats/Mf-base +++ b/mats/Mf-base @@ -39,9 +39,17 @@ ifeq (${OS},Windows_NT) else dirsep = : endif + +# Explicit ".exe" needed for WSL +ifeq ($(OS),Windows_NT) + ExeSuffix = .exe +else + ExeSuffix = +endif + # Scheme is the scheme executable to test, and SCHEMEHEAPDIRS tells # it where to find its boot files -Scheme = ../bin/$m/scheme +Scheme = ../bin/$m/scheme${ExeSuffix} export SCHEMEHEAPDIRS=.${dirsep}../boot/%m # Include is the directory holding scheme.h. diff --git a/mats/Mf-i3nt b/mats/Mf-i3nt index 1c49b8a855..e76e0d35c0 100644 --- a/mats/Mf-i3nt +++ b/mats/Mf-i3nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - ../c/vs.bat cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc) + cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)" cat_flush: cat_flush.c - ../c/vs.bat cl /DWIN32 /MD /nologo $< + cmd.exe /c "vs.bat x86 && cl /DWIN32 /MD /nologo $<" diff --git a/mats/Mf-ta6nt b/mats/Mf-ta6nt index 3a6333045d..51f63e744d 100644 --- a/mats/Mf-ta6nt +++ b/mats/Mf-ta6nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - ../c/vs.bat cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc) + cmd.exe /c "vs.bat x86_amd64 amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)" cat_flush: cat_flush.c - ../c/vs.bat cl /DWIN32 /DX86_64 /MD /nologo $< + cmd.exe /c "vs.bat x86_amd64 amd64 && cl /DWIN32 /DX86_64 /MD /nologo $<" diff --git a/mats/Mf-ti3nt b/mats/Mf-ti3nt index 85c1fdedbc..b6939e6d08 100644 --- a/mats/Mf-ti3nt +++ b/mats/Mf-ti3nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - ../c/vs.bat cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc) + cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)" cat_flush: cat_flush.c - ../c/vs.bat cl /DWIN32 /MD /nologo $< + cmd.exe /c "vs.bat x86 && cl /DWIN32 /MD /nologo $<" diff --git a/mats/foreign.ms b/mats/foreign.ms index 09142fb2bd..c4f93fb672 100644 --- a/mats/foreign.ms +++ b/mats/foreign.ms @@ -176,7 +176,7 @@ (+ v ...))))))))) (machine-case - [(i3ob ti3ob a6ob ta6ob i3fb ti3fb a6fb ta6fb a6s2 ta6s2 i3s2 ti3s2 i3qnx ti3qnx) + [(i3ob ti3ob a6ob ta6ob a6s2 ta6s2 i3s2 ti3s2 i3qnx ti3qnx) (mat load-shared-object (file-exists? "foreign1.so") (begin (load-shared-object "./foreign1.so") #t) @@ -192,6 +192,14 @@ (error? (load-shared-object 3)) ) ] + [(i3fb ti3fb a6fb ta6fb) + (mat load-shared-object + (file-exists? "foreign1.so") + (begin (load-shared-object "./foreign1.so") #t) + (begin (load-shared-object "libc.so.7") #t) + (error? (load-shared-object 3)) + ) + ] [(i3nb ti3nb a6nb ta6nb) (mat load-shared-object (file-exists? "foreign1.so") @@ -2582,10 +2590,12 @@ (begin (define load-libc (machine-case - [(i3ob ti3ob a6ob ta6ob i3fb ti3fb a6fb ta6fb a6s2 ta6s2 i3s2 ti3s2 i3qnx ti3qnx i3nb ti3nb a6nb ta6nb) + [(i3ob ti3ob a6ob ta6ob a6s2 ta6s2 i3s2 ti3s2 i3qnx ti3qnx i3nb ti3nb a6nb ta6nb) '(load-shared-object "libc.so")] [(i3le ti3le a6le ta6le arm32le tarm32le ppc32le tppc32le) '(load-shared-object "libc.so.6")] + [(i3fb ti3fb a6fb ta6fb) + '(load-shared-object "libc.so.7")] [(i3nt ti3nt a6nt ta6nt) '(load-shared-object "msvcrt.dll")] [(i3osx ti3osx a6osx ta6osx) diff --git a/mats/vs.bat b/mats/vs.bat new file mode 100644 index 0000000000..85e733ed24 --- /dev/null +++ b/mats/vs.bat @@ -0,0 +1,3 @@ +:: Redirect to "..\c\vs.bat" without having to use +:: backslashes in the makefile +..\c\vs.bat %* diff --git a/s/Mf-base b/s/Mf-base index 9805933c4d..200d444394 100644 --- a/s/Mf-base +++ b/s/Mf-base @@ -67,10 +67,17 @@ gic = f # pps determines whether pass timings are printed pps = f +# Explicit ".exe" needed for WSL +ifeq ($(OS),Windows_NT) + ExeSuffix = .exe +else + ExeSuffix = +endif + # The following control where files sit and typically don't need to be changed, except # that Scheme and SCHEMEHEAPDIRS are set by Mf-cross to point to the host Scheme # implementation -Scheme = ../bin/$m/scheme +Scheme = ../bin/$m/scheme${ExeSuffix} export SCHEMEHEAPDIRS=../boot/%m # Define the libdirs separator character @@ -278,7 +285,7 @@ checkboot: '(#%$$fasl-file-equal? "../boot/$m/sbb" "../boot/$m/petite.boot" #t)'\ '(#%$$fasl-file-equal? "../boot/$m/scb" "../boot/$m/scheme.boot" #t)'\ '(printf "bootfile comparison succeeded\n"))'\ - | ../bin/$m/scheme -b ../boot/$m/sbb -q + | ../bin/$m/scheme${ExeSuffix} -b ../boot/$m/sbb -q xcheckboot: ${macroobj} ${patchfile} @echo '(reset-handler abort)'\ diff --git a/workarea b/workarea index efe290a866..31bfda6115 100755 --- a/workarea +++ b/workarea @@ -133,6 +133,12 @@ fi if [ ! -e $W/c/Mf-config ] ; then touch $W/c/Mf-config fi +case $M in + *nt) + (cd $W/c; workln ../../c/vs.bat vs.bat) + ;; +esac + workdir $W/s (cd $W/s; workln ../../s/Mf-$M Mf-$M) @@ -147,6 +153,11 @@ workdir $W/mats (cd $W/mats; forceworkln Mf-$M Makefile) (cd $W/mats; workln ../../mats/Mf-base Mf-base) (cd $W/mats; workln ../../mats/Mf-exobj Mf-exobj) +case $M in + *nt) + (cd $W/mats; workln ../../mats/vs.bat vs.bat) + ;; +esac for dir in `echo examples unicode` ; do workdir $W/$dir