Minimal open source build for Windows


Minimum open source development on Windows

Minimum … I like small things: TCL/Tk, Rebol, Rexx, K, C, bash, jam, autoit, wget, tinyedit, Go
This is a minimum tool set to deploy whiz-bang software tools on Windows:
  • Minimum GNU for Windows (MinGW) builds native Windows executables.
  • Minimum System (Msys) is the build infrastructure

There is a lot of churn on the web:  an all volunteer army, duplicate effort, conflicting information.
After studying this for a week, this is the minumum effort to create a Windows build environment.

I have tested this on an  HP Netbook running Win7 Starter.
Here’s the receipe … I’ll provide justification for my choices later.

Bare machine to Build (15 minutes)

  1. Start command prompt “as administrator”
    On Win7, Start / All Programs / Accessories / Command Prompt
    Right-Click and choose “Run as administrator”

    mkdir \Msys
    cd    \Msys
    
  2. Installation bootstrap tool:
    Use the browser to download wget.exe 1.11.4 to C:\Msys (400K)
    Copy MinInstall.bat and MinInstall.html to C:\Msys
  3. Back to the command prompt.
    MinInstall.bat
    
  4. Launch Msys using the desktop icon. Note forward slash (/).
    cd C:/Msys/tcl8.5.8
    configure
    make
    make install
    
    cd ../tk8.5.8
    configure
    make
    make install
    

MinInstall.bat

@echo off
time /T
:: wget progress messages are displayed in command title line
  Path=C:\Msys\bin;%Path%
  mkdir C:\Msys\bin
  mkdir C:\Msys\.D
  chdir C:\Msys

:: Bootstrap the essential tools:  7-zip, bsdtar
   wget -P .D   "http://sourceforge.net/projects/sevenzip/files/7-Zip/9.07 beta/7z907.exe/download"
   echo "Choose C:\Msys\7-Zip as the install directory
   pause
  .D\7z907.exe /SILENT /SP- /DIR=C:\Msys\7-Zip
   xcopy 7-Zip\7z.* bin\

::  Msys and MinGW required downloads
  wget -N -P .D -a .D\wget.log -B http://sourceforge.net/projects/mingw/files/ -i MinInstall.html
  7z.exe x -obin .D\bsdtar-2.7.900a_r1628-20091110-mingw32-alpha-bin.zip bsdtar.exe

:Install  MinGW into c:\_Msys
  bsdtar xzf  .D\binutils-2.20-1-mingw32-bin.tar.gz
  bsdtar xzf  .D\mingw-utils-0.4-1-mingw32-bin.tar.lzma
  bsdtar xzf  .D\gcc-core-4.4.0-mingw32-bin.tar.gz
  bsdtar xzf  .D\gcc-core-4.4.0-mingw32-dll.tar.gz
  bsdtar xzf  .D\libgmp-4.3.1-1-msys-1.0.11-dev.tar.lzma
  bsdtar xzf  .D\libgmp-4.3.1-1-msys-1.0.11-dll-3.tar.lzma
  bsdtar xzf  .D\gcc-full-4.4.0-mingw32-bin-2.tar.lzma   bin/cpp.exe bin/libgmp-3.dll
  bsdtar xzf  .D\libiconv-1.13.1-1-mingw32-bin.tar.lzma
  bsdtar xzf  .D\libiconv-1.13.1-1-mingw32-dev.tar.lzma
  bsdtar xzf  .D\libiconv-1.13.1-1-mingw32-dll-2.tar.lzma
  bsdtar xzf  .D\libintl-0.17-1-mingw32-dll-8.tar.lzma
  bsdtar xzf  .D\make-3.81-20090914-mingw32-bin.tar.gz
  bsdtar xzf  .D\mingwrt-3.17-mingw32-dev.tar.gz
  bsdtar xzf  .D\mingwrt-3.17-mingw32-dll.tar.gz
  bsdtar xzf  .D\mpfr-2.4.1-mingw32-dll.tar.gz
  bsdtar xzf  .D\pthreads-w32-2.8.0-mingw32-dll.tar.gz
  bsdtar xzf  .D\w32api-3.14-mingw32-dev.tar.gz

:: Msys packages
  .D\MSYS-1.0.11.exe /SILENT /SP- /SUPPRESSMSGBOXES /DIR=C:\Msys
  bsdtar xzf  .D\msysCORE-1.0.11-bin.tar.gz
  bsdtar xzf  .D\msysCORE-1.0.11-msys-1.0.11-base-bin.tar.lzma
  bsdtar xzf  .D\autoconf-7-1-mingw32-bin.tar.lzma
  bsdtar xzf  .D\automake-1.11-1-msys-1.0.11-bin.tar.lzma
  bsdtar xzf  .D\file-5.03-1-msys-1.0.11-bin.tar.lzma
  bsdtar xzf  .D\libltdl-2.2.7a-1-msys-1.0.11-dev.tar.lzma
  bsdtar xzf  .D\libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma
  bsdtar xzf  .D\libmagic-5.03-1-msys-1.0.11-dev.tar.lzma
  bsdtar xzf  .D\libmagic-5.03-1-msys-1.0.11-dll-1.tar.lzma
  bsdtar xzf  .D\libregex-0.12-1-msys-1.0.11-dll-0.tar.lzma
  bsdtar xzf  .D\libregex-1.20090805-1-msys-1.0.11-dev.tar.lzma
  bsdtar xzf  .D\libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
  bsdtar xzf  .D\man-1.6f-1-msys-1.0.11-bin.tar.lzma

:Opt  Optional packages
  bsdtar xzf  .D\bzip2-1.0.5-2-mingw32-bin.tar.gz
  bsdtar xzf  .D\bzip2-1.0.5-2-mingw32-dev.tar.gz
  bsdtar xzf  .D\cygutils-dos2unix-1.3.4-3-msys-1.0.11-bin.tar.lzma bin/d2u.exe bin/u2d.exe
  bsdtar xzf  .D\file-5.03-1-msys-1.0.11-bin.tar.lzma
  bsdtar xzf  .D\libmagic-5.03-1-msys-1.0.11-dev.tar.lzma
  bsdtar xzf  .D\libmagic-5.03-1-msys-1.0.11-dll-1.tar.lzma
  bsdtar xzf  .D\gdb-7.0-2-mingw32-bin.tar.gz
  bsdtar xzf  .D\locate-4.4.2-1-msys-1.0.11-bin.tar.lzma
  bsdtar xzf  .D\tar-1.22-1-msys-1.0.11-ext.tar.lzma
  bsdtar xzf  .D\vim-7.2-1-msys-1.0.11-bin.tar.lzma

  wget  -P bin "http://www.tinyedit.com/tinyedit.exe"
  rename  bin\tinyedit.exe t.exe

:Tcl
  mkdir .S
  wget    -P .S http://prdownloads.sourceforge.net/tcl/tcl8.5.8-src.tar.gz
  wget    -P .S http://prdownloads.sourceforge.net/tcl/tk8.5.8-src.tar.gz
  bsdtar xzf .S\tcl8.5.8-src.tar.gz
  bsdtar xzf .S\tk8.5.8-src.tar.gz
time /T

MinInstall.html

GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-4.4.0-mingw32-notes.txt/downloadGCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-core-4.4.0-mingw32-bin.tar.gz/download
GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-core-4.4.0-mingw32-dll.tar.gz/download
GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-full-4.4.0-mingw32-bin-2.tar.lzma/download
GCC%20Version%204/Current%20Release_%20gcc-4.4.0/mpfr-2.4.1-mingw32-dll.tar.gz/download
GCC%20Version%204/Current%20Release_%20gcc-4.4.0/pthreads-w32-2.8.0-mingw32-dll.tar.gz/download
GNU%20Binutils/binutils-2.20/binutils-2.20-1-mingw32-bin.tar.gz/download
GNU%20Source-Level%20Debugger/GDB-7.0/gdb-7.0-2-mingw32-bin.tar.gz/download
MSYS%20Base%20System/msys-1.0.11/MSYS-1.0.11.exe/download
MSYS%20Base%20System/msys-1.0.11/msysCORE-1.0.11-bin.tar.gz/download
MSYS%20Base%20System/msys-1.0.11/msysCORE-1.0.11-msys-1.0.11-base-bin.tar.lzma/download
MSYS%20automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download
MSYS%20cygutils/cygutils-1.3.4-3/cygutils-dos2unix-1.3.4-3-msys-1.0.11-bin.tar.lzma/download
MSYS%20file/file-5.03-1/file-5.03-1-msys-1.0.11-bin.tar.lzma/download
MSYS%20file/file-5.03-1/libmagic-5.03-1-msys-1.0.11-dev.tar.lzma/download
MSYS%20file/file-5.03-1/libmagic-5.03-1-msys-1.0.11-dll-1.tar.lzma/download
MSYS%20findutils/findutils-4.4.2-1/locate-4.4.2-1-msys-1.0.11-bin.tar.lzma/download
MSYS%20gmp/gmp-4.3.1-1/libgmp-4.3.1-1-msys-1.0.11-dev.tar.lzma/download
MSYS%20gmp/gmp-4.3.1-1/libgmp-4.3.1-1-msys-1.0.11-dll-3.tar.lzma/download
MSYS%20libtool/libtool-2.2.7a-1/libltdl-2.2.7a-1-msys-1.0.11-dev.tar.lzma/download
MSYS%20libtool/libtool-2.2.7a-1/libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma/download
MSYS%20libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download
MSYS%20man/man-1.6f-1/man-1.6f-1-msys-1.0.11-bin.tar.lzma/download
MSYS%20regex/regex-0.12-1/libregex-0.12-1-msys-1.0.11-dll-0.tar.lzma/download
MSYS%20regex/regex-1.20090805-1/libregex-1.20090805-1-msys-1.0.11-dev.tar.lzma/download
MSYS%20tar/tar-1.22-1/tar-1.22-1-msys-1.0.11-ext.tar.lzma/download
MSYS%20vim/vim-7.2-1/vim-7.2-1-msys-1.0.11-bin.tar.lzma/download
MinGW%20API%20for%20MS-Windows/w32api-3.14/w32api-3.14-mingw32-dev.tar.gz/download
MinGW%20Runtime/mingwrt-3.17/mingwrt-3.17-mingw32-dev.tar.gz/download
MinGW%20Runtime/mingwrt-3.17/mingwrt-3.17-mingw32-dll.tar.gz/download
MinGW%20Utilities/basic%20bsdtar/bsdtar-2.7.900a_r1628-20091110/bsdtar-2.7.900a_r1628-20091110-mingw32-alpha-bin.zip/download
MinGW%20Utilities/mingw-utils/mingw-utils-0.4-1/mingw-utils-0.4-1-mingw32-bin.tar.lzma/download
MinGW%20autoconf/wrapper/autoconf-7-1/autoconf-7-1-mingw32-bin.tar.lzma/download
MinGW%20bzip2/release%201.0.5-2/bzip2-1.0.5-2-mingw32-bin.tar.gz/download
MinGW%20bzip2/release%201.0.5-2/bzip2-1.0.5-2-mingw32-dev.tar.gz/download
MinGW%20bzip2/release%201.0.5-2/libbz2-1.0.5-2-mingw32-dll-2.tar.gz/download
MinGW%20gettext/gettext-0.17-1/libintl-0.17-1-mingw32-dll-8.tar.lzma/download
MinGW%20libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-bin.tar.lzma/download
MinGW%20libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-dev.tar.lzma/download
MinGW%20libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma/download
MinGW%20make/make-3.81-20090914-mingw32/make-3.81-20090914-mingw32-bin.tar.gz/download
MinGW%20make/mingw32-make-3.81-2/mingw32-make-3.81-2.tar.gz/download

Leave a comment