lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 5f96fe4: Rework MinGW gcc installation for cy


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 5f96fe4: Rework MinGW gcc installation for cygwin
Date: Fri, 3 May 2019 19:20:07 -0400 (EDT)

branch: master
commit 5f96fe41ccf0f35abae852e9f9b8a7e1dacf99c9
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Rework MinGW gcc installation for cygwin
    
    Merged the important parts of branch odd/fruitbat, which attempted to
    make the 'INSTALL' instructions work for a cygwin-1.7 system installed
    from crouchingtigerhiddenfruitbat.org .
    
    * install_cygwin.bat: Repent of past practice (installing MinGW gcc in
    the msw root, then using that installation through a cygwin mount),
    which was cumbersome and unnecessary.
    
    * install_mingw.make: Use only subdirectories of /opt/lmi for extraction
    and installation of MinGW gcc archives. In the unfortunate case that the
    msw-native '7-Zip' program is used, extracting to a directory outside of
    cygwin can cause the extracted files and subdirectories to be invisible
    to cygwin, and inaccessible, too--such that a cygwin administrative user
    cannot 'rm' them due to msw ACLs. This may very well be the real reason
    for the problem described here:
      https://lists.nongnu.org/archive/html/lmi/2018-03/msg00017.html
    for which no convincing explanation had hitherto been found.
    Incidentally, add another fallback '7-Zip' command in case the first one
    fails, using 'cygpath' to translate its destination directory (as might
    also be necessary for the first '7-Zip' command).
    
    * install_libxml2_libxslt.make: Use new MinGW directories for cygwin.
    * install_wx.sh: Likewise.
    * install_wxpdfdoc.sh: Likewise.
    * msw_cygwin.make: Likewise. Abandon the idea of installing multiple
    MinGW gcc archives and selecting dynamically among them.
---
 install_cygwin.bat           |  1 -
 install_libxml2_libxslt.make |  2 +-
 install_mingw.make           |  7 ++++---
 install_wx.sh                |  2 +-
 install_wxpdfdoc.sh          |  2 +-
 msw_cygwin.make              | 10 ++--------
 6 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/install_cygwin.bat b/install_cygwin.bat
index ecd1254..64a2e7f 100644
--- a/install_cygwin.bat
+++ b/install_cygwin.bat
@@ -35,7 +35,6 @@ START "Installing Cygwin" /WAIT setup-x86_64 ^
    
"autoconf,automake,bsdtar,dos2unix,doxygen,gdb,git,libtool,make,openssh,patch,pkg-config,rsync,unzip,wget,zip,zsh"
 cd C:\cygwin64_lmi\etc
 echo # >> fstab
-echo C:/opt/lmi/MinGW-7_3_0 /MinGW_        lmi_specific binary,user 0 0 >> 
fstab
 echo C:/opt/lmi             /opt/lmi       lmi_specific binary,user 0 0 >> 
fstab
 echo C:/cache_for_lmi       /cache_for_lmi lmi_specific binary,user 0 0 >> 
fstab
 echo Cygwin installation seems to have succeeded
diff --git a/install_libxml2_libxslt.make b/install_libxml2_libxslt.make
index 77d44a5..e5574bd 100644
--- a/install_libxml2_libxslt.make
+++ b/install_libxml2_libxslt.make
@@ -46,7 +46,7 @@ host_path     := libxml2
 $(xz_version).tar.gz: host      := https://sourceforge.net
 $(xz_version).tar.gz: host_path := projects/lzmautils/files
 
-mingw_dir     := /MinGW_
+mingw_dir     := /opt/lmi/mingw
 
 LMI_COMPILER  ?= gcc
 LMI_TRIPLET   ?= i686-w64-mingw32
diff --git a/install_mingw.make b/install_mingw.make
index 4f5f1ea..21de260 100644
--- a/install_mingw.make
+++ b/install_mingw.make
@@ -42,11 +42,11 @@ file_list   = $($(version))
 #   http://article.gmane.org/gmane.comp.gnu.mingw.user/14748
 #     [2005-01-17T18:15:26Z from Aaron W. LaFramboise]
 
-prefix     := /MinGW_
+prefix     := /opt/lmi/mingw
 
 cache_dir  := /cache_for_lmi/downloads
 
-ad_hoc_dir := $(prefix)/ad_hoc
+ad_hoc_dir := /opt/lmi/zzz/mingw-ad_hoc/ad_hoc
 
 # In the past, it seemed necessary to specify a mirror, e.g.:
 #  mirror := http://easynews.dl.sourceforge.net/sourceforge/mingw
@@ -129,4 +129,5 @@ WGETFLAGS := --no-verbose
        cd $(cache_dir) && [ -e $@ ] || $(WGET) $(WGETFLAGS) $(mirror)/$@
        cd $(cache_dir) && $(ECHO) "$(address@hidden) *$@" | $(MD5SUM) --check
        $(BSDTAR) --extract $(BSDTARFLAGS) --directory=$(ad_hoc_dir) 
--file=$(cache_dir)/$@ \
-         || c:/Program\ Files/7-Zip/7z x `cygpath -w 
$(cache_dir)/address@hidden -o$(ad_hoc_dir)
+         || c:/Program\ Files/7-Zip/7z x `cygpath -w 
$(cache_dir)/address@hidden -o$(ad_hoc_dir) \
+         || c:/Program\ Files\ \(x86\)/7-Zip/7z x `cygpath -w 
$(cache_dir)/address@hidden -o`cygpath -w $(ad_hoc_dir)`
diff --git a/install_wx.sh b/install_wx.sh
index 13f0da7..294da80 100755
--- a/install_wx.sh
+++ b/install_wx.sh
@@ -46,7 +46,7 @@ LMI_TRIPLET=${LMI_TRIPLET:-"i686-w64-mingw32"}
 
 # Variables that normally should be left alone 
#################################
 
-mingw_dir=/MinGW_
+mingw_dir=/opt/lmi/mingw
 
 prefix=/opt/lmi/"${LMI_COMPILER}_${LMI_TRIPLET}"/local
 exec_prefix="$prefix"
diff --git a/install_wxpdfdoc.sh b/install_wxpdfdoc.sh
index 039fa93..b58ec1c 100755
--- a/install_wxpdfdoc.sh
+++ b/install_wxpdfdoc.sh
@@ -46,7 +46,7 @@ LMI_TRIPLET=${LMI_TRIPLET:-"i686-w64-mingw32"}
 
 # Variables that normally should be left alone 
#################################
 
-mingw_dir=/MinGW_
+mingw_dir=/opt/lmi/mingw
 
 prefix=/opt/lmi/"${LMI_COMPILER}_${LMI_TRIPLET}"/local
 exec_prefix="$prefix"
diff --git a/msw_cygwin.make b/msw_cygwin.make
index e4cc042..c9bf07e 100644
--- a/msw_cygwin.make
+++ b/msw_cygwin.make
@@ -54,13 +54,7 @@ system_root := /cygdrive/c
 # Full path to gcc binaries, slash-terminated if nonempty. Setting it
 # to an empty string finds gcc on $PATH instead.
 
-ifeq (i686-w64-mingw32,$(LMI_TRIPLET))
-  gcc_bin_dir := /MinGW_/mingw32/bin/
-else ifeq (x86_64-w64-mingw32,$(LMI_TRIPLET))
-  gcc_bin_dir := /MinGW_/mingw64/bin/
-else
-  $(warning Unexpected triplet '$(LMI_TRIPLET)')
-endif
+gcc_bin_dir := /opt/lmi/mingw/bin/
 
 # Oddly, MinGW-w64 provides prefixed versions of compilers, e.g.:
 #   i686-w64-mingw32-gcc.exe
@@ -85,7 +79,7 @@ RC      := $(gcc_bin_dir)$(host_hyphen)windres
 #   https://cygwin.com/ml/cygwin/2010-09/msg00553.html
 # Of course manipulating an lmi user's $PATH is out of the question.
 
-compiler_sysroot := /MinGW_/$(LMI_TRIPLET)/lib
+compiler_sysroot := /opt/lmi/mingw/$(LMI_TRIPLET)/lib
 
 compiler_runtime_files := \
   $(wildcard $(compiler_sysroot)/libgcc*.dll) \



reply via email to

[Prev in Thread] Current Thread [Next in Thread]