Windows: MinGW fixes

This commit is contained in:
Matthew Flatt 2014-11-01 08:09:43 -06:00
parent cceda78374
commit cdf0dc8ed2
5 changed files with 18 additions and 13 deletions

View File

@ -52,15 +52,19 @@ Quick Instructions: In-place Build
On Unix, `make' (or `make in-place') creates a build in the "racket" On Unix, `make' (or `make in-place') creates a build in the "racket"
directory. directory.
On Mac OS X, see the notes below on git submodules, and then `make' On Mac OS X, see the notes below on Git submodules, and then `make'
(or `make in-place') creates a build in the "racket" directory. (or `make in-place') creates a build in the "racket" directory.
On Windows with Microsoft Visual Studio (any version between 2008/9.0 On Windows with Microsoft Visual Studio (any version between 2008/9.0
and 2013/12.0), see the notes below on git submodules, and then `nmake and 2013/12.0), see the notes below on Git submodules, and then `nmake
win32-in-place' creates a build in the "racket" directory. For win32-in-place' creates a build in the "racket" directory. For
information on configuring your command-line environment for Visual information on configuring your command-line environment for Visual
Studio, see "racket/src/worksp/README". Studio, see "racket/src/worksp/README".
On Windows with MinGW, see the notes below on Git submodules, and then
`make PLAIN_RACkET=racket/racket', since MinGW uses Unix-style tools
but generates a Windows-layout Racket build.
In all cases, an in-place build includes (via links) packages that are In all cases, an in-place build includes (via links) packages that are
in the "pkgs" directory. in the "pkgs" directory.
@ -74,7 +78,7 @@ On Unix, `make unix-style PREFIX=<dir>' builds and installs into <dir>
with binaries in "<dir>/bin", packages in "<dir>/share/racket/pkgs", with binaries in "<dir>/bin", packages in "<dir>/share/racket/pkgs",
documentation in "<dir>/share/racket/doc", etc. documentation in "<dir>/share/racket/doc", etc.
On Mac OS X, see the notes below on git submodules, and then `make On Mac OS X, see the notes below on Git submodules, and then `make
unix-style PREFIX=<dir>' builds and installs into "<dir>" with unix-style PREFIX=<dir>' builds and installs into "<dir>" with
binaries in "<dir>/bin", packges in "<dir>/share/pkgs", documentation binaries in "<dir>/bin", packges in "<dir>/share/pkgs", documentation
in "<dir>/doc", etc. in "<dir>/doc", etc.
@ -91,7 +95,7 @@ assembles the installation in "<dest-dir>". Then, copy the content of
See "More Instructions: Building Racket" below for more information. See "More Instructions: Building Racket" below for more information.
git Submodules (Mac OS X and Windows) Git Submodules (Mac OS X and Windows)
===================================== =====================================
On Mac OS X and Windows, you'll need native-library packages in the On Mac OS X and Windows, you'll need native-library packages in the
@ -100,7 +104,7 @@ install. The "native-pkgs" directory is treated in the same way as
"pkgs"; for example, in-place build uses links into the "native-pkgs" "pkgs"; for example, in-place build uses links into the "native-pkgs"
directory. directory.
The "native-pkgs" directory is a git submodule, so you'll need The "native-pkgs" directory is a Git submodule, so you'll need
git submodule init git submodule init
git submodule update git submodule update
@ -132,7 +136,7 @@ Racket distribution, plus some additional packages (such as tests). A
copies packages out of "pkgs" to install them. copies packages out of "pkgs" to install them.
Either way, if you're building on Mac OS X or Windows, be sure to Either way, if you're building on Mac OS X or Windows, be sure to
start with "git Submodules", above. start with "Git Submodules", above.
To install a subset of the packages in "pkgs", supply `PKGS' value to To install a subset of the packages in "pkgs", supply `PKGS' value to
`make'. For example, `make'. For example,
@ -238,7 +242,7 @@ scope. Packages are linked with the `--no-setup' flag (effectively),
which means that a `raco setup' is needed after installing links. which means that a `raco setup' is needed after installing links.
Native-library packages provide (on Mac OS X and Windows) pre-built Native-library packages provide (on Mac OS X and Windows) pre-built
native libraries, such as Cairo. They are available through a git native libraries, such as Cairo. They are available through a Git
submodule "native-pkgs", so use `git submodule init' and `git submodule "native-pkgs", so use `git submodule init' and `git
submodule update' as needed. submodule update' as needed.
@ -371,7 +375,7 @@ For snapshot management, the destination of the files generated for
snapshots. The configuration file can use `(current-stamp)' to get a snapshots. The configuration file can use `(current-stamp)' to get a
string that represents the current build, and then use the string both string that represents the current build, and then use the string both
for `#:dist-base-url' and `#:site-dest'. Normally, the stamp string is for `#:dist-base-url' and `#:site-dest'. Normally, the stamp string is
a combination of the date and git commit hash. a combination of the date and Git commit hash.
Snapshot management includes creating an "index.html" file in the Snapshot management includes creating an "index.html" file in the
snapshots directory (essentially a copy of the snapshot's own snapshots directory (essentially a copy of the snapshot's own

View File

@ -4563,7 +4563,7 @@ case "$host_os" in
MZINSTALLBINDIR="${MZINSTALLBINDIR}/.." MZINSTALLBINDIR="${MZINSTALLBINDIR}/.."
EXE_SUFFIX=".exe" EXE_SUFFIX=".exe"
COLLECTS_PATH="collects" COLLECTS_PATH="collects"
CONFIG_PATH="lib" CONFIG_PATH="etc"
skip_iconv_check=yes skip_iconv_check=yes
check_for_mprotect=no check_for_mprotect=no

View File

@ -205,7 +205,7 @@ install-lib-cgc-wx_xt:
install-wx_xt-cgc: install-wx_xt-cgc:
$(MAKE) @MRLIBINSTALL@-cgc-wx_xt $(MAKE) @MRLIBINSTALL@-cgc-wx_xt
cd ..; $(ICP) gracket/gracket@CGC@ "$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@" cd ..; $(ICP) gracket/gracket@CGC@ "$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@"
cd ..; @STRIP_DEBUG@ "$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@" cd ..; @STRIP_DEBUG@ "$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@@EXE_SUFFIX@"
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @COLLECTS_PATH@ @CONFIG_PATH@ @RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @COLLECTS_PATH@ @CONFIG_PATH@
install-wx_xt-cgc-final: install-wx_xt-cgc-final:
@ -220,7 +220,7 @@ install-lib-3m-wx_xt:
install-wx_xt-3m: install-wx_xt-3m:
$(MAKE) @MRLIBINSTALL@-3m-wx_xt $(MAKE) @MRLIBINSTALL@-3m-wx_xt
cd ..; $(ICP) gracket/gracket@MMM@ "$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@" cd ..; $(ICP) gracket/gracket@MMM@ "$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@"
cd ..; @STRIP_DEBUG@ "$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@" cd ..; @STRIP_DEBUG@ "$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@@EXE_SUFFIX@"
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @COLLECTS_PATH@ @CONFIG_PATH@ @RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @COLLECTS_PATH@ @CONFIG_PATH@
install-wx_xt-3m-final: install-wx_xt-3m-final:

View File

@ -699,7 +699,7 @@ case "$host_os" in
MZINSTALLBINDIR="${MZINSTALLBINDIR}/.." MZINSTALLBINDIR="${MZINSTALLBINDIR}/.."
EXE_SUFFIX=".exe" EXE_SUFFIX=".exe"
COLLECTS_PATH="collects" COLLECTS_PATH="collects"
CONFIG_PATH="lib" CONFIG_PATH="etc"
skip_iconv_check=yes skip_iconv_check=yes
check_for_mprotect=no check_for_mprotect=no
AC_DEFINE(HAVE_STDINT_H,1,[Have stdint.h]) AC_DEFINE(HAVE_STDINT_H,1,[Have stdint.h])

View File

@ -2221,6 +2221,7 @@ typedef struct mz_REPARSE_DATA_BUFFER {
} mz_REPARSE_DATA_BUFFER; } mz_REPARSE_DATA_BUFFER;
#define mzFILE_FLAG_OPEN_REPARSE_POINT 0x200000 #define mzFILE_FLAG_OPEN_REPARSE_POINT 0x200000
#define mzFSCTL_GET_REPARSE_POINT 0x900A8
static char *UNC_readlink(const char *fn) static char *UNC_readlink(const char *fn)
{ {
@ -2247,7 +2248,7 @@ static char *UNC_readlink(const char *fn)
while (1) { while (1) {
buffer = (char *)scheme_malloc_atomic(size); buffer = (char *)scheme_malloc_atomic(size);
if (DeviceIoControlProc(h, FSCTL_GET_REPARSE_POINT, NULL, 0, buffer, size, if (DeviceIoControlProc(h, mzFSCTL_GET_REPARSE_POINT, NULL, 0, buffer, size,
&got, NULL)) &got, NULL))
break; break;
else if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { else if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {