Annotation of embedaddon/libiconv/INSTALL.windows, revision 1.1
1.1 ! misho 1: Installation on Microsoft Windows:
! 2:
! 3: There are three ways to create binaries of this package for Microsoft Windows:
! 4: 1) Native binaries, built using the mingw tool chain.
! 5: 2) Native binaries, built using the MS Visual C/C++ tool chain.
! 6: 3) Binaries for the Cygwin environment.
! 7:
! 8: ===============================================================================
! 9: 1) Native binaries, built using the mingw tool chain.
! 10:
! 11: I recommend to use the Cygwin environment as the development environment
! 12: and mingw only as the target (runtime, deployment) environment.
! 13: For this, you need to install
! 14: * Cygwin (from https://cygwin.com/),
! 15: * some packages available from the Cygwin package installer:
! 16: make
! 17: * the mingw cross-compilation tools and runtime package, available from
! 18: the Cygwin package installer (setup-x86_64.exe):
! 19: - for creating 32-bit binaries: packages
! 20: mingw64-i686-gcc-core,
! 21: mingw64-i686-headers,
! 22: mingw64-i686-runtime
! 23: - for creating 64-bit binaries: packages
! 24: mingw64-x86_64-gcc-core,
! 25: mingw64-x86_64-headers,
! 26: mingw64-x86_64-runtime
! 27:
! 28: Building 32-bit binaries for mingw is achieved through the following
! 29: preparation, configure, and build commands:
! 30:
! 31: PATH=/usr/local/mingw32/bin:$PATH
! 32: export PATH
! 33: ./configure --host=i686-w64-mingw32 --prefix=/usr/local/mingw32 \
! 34: CC=i686-w64-mingw32-gcc \
! 35: CPPFLAGS="-I/usr/local/mingw32/include -Wall" \
! 36: LDFLAGS="-L/usr/local/mingw32/lib"
! 37: make
! 38: make check
! 39:
! 40: Building 64-bit binaries for mingw is achieved through the following
! 41: preparation, configure, and build commands:
! 42:
! 43: PATH=/usr/local/mingw64/bin:$PATH
! 44: export PATH
! 45: ./configure --host=x86_64-w64-mingw32 --prefix=/usr/local/mingw64 \
! 46: CC=x86_64-w64-mingw32-gcc \
! 47: CPPFLAGS="-I/usr/local/mingw64/include -Wall" \
! 48: LDFLAGS="-L/usr/local/mingw64/lib"
! 49: make
! 50: make check
! 51:
! 52: Installation:
! 53:
! 54: make install
! 55:
! 56: ===============================================================================
! 57: 2) Native binaries, built using the MS Visual C/C++ tool chain.
! 58:
! 59: Note that binaries created with MSVC have a distribution constraint: They
! 60: depend on a closed-source library ('msvcr90.dll' for MSVC 9.0,
! 61: 'vcruntime140.dll' for MSVC 14.0, and so on) which is not normally part of
! 62: a Windows installation.
! 63: You cannot distribute 'vcruntime*.dll' with the binaries - this would be a
! 64: violation of the GPL and of the Microsoft EULA.
! 65: You can distribute the binaries without including 'vcruntime*.dll'. Users
! 66: who don't have this library on their system will require to pull some files
! 67: (api-ms-win*.dll) through the Windows Update mechanism, see
! 68: https://support.microsoft.com/en-us/kb/2999226 .
! 69:
! 70: This recipe requires MS Visual C/C++ 9.0 or newer.
! 71: You don't need the Visual Studio IDE, just the C/C++ tool chain.
! 72: As of 2016, you can install the MS Visual C/C++ 14.0 tool chain from
! 73: http://landinghub.visualstudio.com/visual-cpp-build-tools (it's the file
! 74: visualcppbuildtools_full.exe).
! 75:
! 76: This recipe requires also a Cygwin environment (with 'bash', the common POSIX
! 77: commands, and 'make') as a build environment. Building with 'nmake' is not
! 78: supported.
! 79: For this, you need to install
! 80: * Cygwin (from https://cygwin.com/),
! 81: * some packages available from the Cygwin package installer:
! 82: make
! 83:
! 84: You also need the scripts 'ar-lib' and 'compile' from
! 85: https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/ar-lib;hb=HEAD
! 86: https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/compile;hb=HEAD
! 87: respectively.
! 88: They may also be included in this package, in directory 'build-aux/'.
! 89: Save them; the instructions below assume that you stored them in $HOME/msvc/.
! 90: Make them executable:
! 91: chmod a+x ar-lib compile
! 92:
! 93: Start a bash (from Cygwin).
! 94:
! 95: Make sure that the MSVC tools ("cl" etc.) are found in PATH and the
! 96: environment variables INCLUDE and LIB are set appropriately.
! 97: In a typical MSVC 9.0 installation, it can be achieved by running
! 98: C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat
! 99: In a typical MSVC 14.0 installation on Windows 10, it can be achieved
! 100: - for creating 32-bit binaries: through the following bash commands:
! 101:
! 102: # Set environment variables for using MSVC 14,
! 103: # for creating native 32-bit Windows executables.
! 104:
! 105: # Windows C library headers and libraries.
! 106: WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt'
! 107: WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\'
! 108: INCLUDE="${WindowsCrtIncludeDir};$INCLUDE"
! 109: LIB="${WindowsCrtLibDir}x86;$LIB"
! 110:
! 111: # Windows API headers and libraries.
! 112: WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\'
! 113: WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\'
! 114: INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE"
! 115: LIB="${WindowsSdkLibDir}x86;$LIB"
! 116:
! 117: # Visual C++ tools, headers and libraries.
! 118: VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0'
! 119: VCINSTALLDIR="${VSINSTALLDIR}"'\VC'
! 120: PATH=`cygpath -u "${VCINSTALLDIR}"`/bin:"$PATH"
! 121: INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}"
! 122: LIB="${VCINSTALLDIR}"'\lib;'"${LIB}"
! 123:
! 124: export INCLUDE LIB
! 125:
! 126: - for creating 64-bit binaries: through the following bash commands:
! 127:
! 128: # Set environment variables for using MSVC 14,
! 129: # for creating native 64-bit Windows executables.
! 130:
! 131: # Windows C library headers and libraries.
! 132: WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt'
! 133: WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\'
! 134: INCLUDE="${WindowsCrtIncludeDir};$INCLUDE"
! 135: LIB="${WindowsCrtLibDir}x64;$LIB"
! 136:
! 137: # Windows API headers and libraries.
! 138: WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\'
! 139: WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\'
! 140: INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE"
! 141: LIB="${WindowsSdkLibDir}x64;$LIB"
! 142:
! 143: # Visual C++ tools, headers and libraries.
! 144: VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0'
! 145: VCINSTALLDIR="${VSINSTALLDIR}"'\VC'
! 146: PATH=`cygpath -u "${VCINSTALLDIR}"`/bin/amd64:"$PATH"
! 147: INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}"
! 148: LIB="${VCINSTALLDIR}"'\lib\amd64;'"${LIB}"
! 149:
! 150: export INCLUDE LIB
! 151:
! 152: Building 32-bit binaries with MSVC is achieved through the following
! 153: preparation, configure, and build commands:
! 154:
! 155: PATH=/usr/local/msvc32/bin:$PATH
! 156: export PATH
! 157:
! 158: win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0
! 159: win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0
! 160: win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0
! 161: win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0
! 162:
! 163: ./configure --host=i686-w64-mingw32 --prefix=/usr/local/msvc32 \
! 164: CC="$HOME/msvc/compile cl -nologo" \
! 165: CFLAGS="-MD" \
! 166: CXX="$HOME/msvc/compile cl -nologo" \
! 167: CXXFLAGS="-MD" \
! 168: CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc32/include" \
! 169: LDFLAGS="-L/usr/local/msvc32/lib" \
! 170: LD="link" \
! 171: NM="dumpbin -symbols" \
! 172: STRIP=":" \
! 173: AR="$HOME/msvc/ar-lib lib" \
! 174: RANLIB=":"
! 175: make
! 176: make check
! 177:
! 178: Building 64-bit binaries with MSVC is achieved through the following
! 179: preparation, configure, and build commands:
! 180:
! 181: PATH=/usr/local/msvc64/bin:$PATH
! 182: export PATH
! 183:
! 184: win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0
! 185: win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0
! 186: win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0
! 187: win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0
! 188:
! 189: ./configure --host=x86_64-w64-mingw32 --prefix=/usr/local/msvc64 \
! 190: CC="$HOME/msvc/compile cl -nologo" \
! 191: CFLAGS="-MD" \
! 192: CXX="$HOME/msvc/compile cl -nologo" \
! 193: CXXFLAGS="-MD" \
! 194: CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc64/include" \
! 195: LDFLAGS="-L/usr/local/msvc64/lib" \
! 196: LD="link" \
! 197: NM="dumpbin -symbols" \
! 198: STRIP=":" \
! 199: AR="$HOME/msvc/ar-lib lib" \
! 200: RANLIB=":"
! 201: make
! 202: make check
! 203:
! 204: Installation:
! 205:
! 206: make install
! 207:
! 208: ===============================================================================
! 209: 3) Binaries for the Cygwin environment.
! 210:
! 211: The generic instructions in the INSTALL file apply. But here are more
! 212: specific ones.
! 213:
! 214: You need to install
! 215: * Cygwin (from https://cygwin.com/),
! 216: * some packages available from the Cygwin package installer:
! 217: make
! 218: * the Cygwin [cross-]compilation tools package, available from
! 219: the Cygwin package installer (setup-x86_64.exe):
! 220: - for creating 32-bit binaries: packages
! 221: cygwin32-gcc-core,
! 222: cygwin32
! 223: - for creating 64-bit binaries: packages
! 224: gcc-core
! 225:
! 226: Building 32-bit binaries for Cygwin must be done in a directory *outside*
! 227: the Cygwin /home and /usr hierarchies. It is achieved through the following
! 228: preparation, configure, and build commands:
! 229:
! 230: PATH=/usr/local/cygwin32/bin:/usr/i686-pc-cygwin/sys-root/usr/bin:$PATH
! 231: export PATH
! 232: ./configure --host=i686-pc-cygwin --prefix=/usr/local/cygwin32 \
! 233: CC=i686-pc-cygwin-gcc \
! 234: CPPFLAGS="-I/usr/local/cygwin32/include -Wall" \
! 235: LDFLAGS="-L/usr/local/cygwin32/lib"
! 236: make
! 237: make check
! 238:
! 239: Building 64-bit binaries for Cygwin is achieved through the following
! 240: preparation, configure, and build commands:
! 241:
! 242: PATH=/usr/local/cygwin64/bin:$PATH
! 243: export PATH
! 244: ./configure --host=x86_64-pc-cygwin --prefix=/usr/local/cygwin64 \
! 245: CC=x86_64-pc-cygwin-gcc \
! 246: CPPFLAGS="-I/usr/local/cygwin64/include -Wall" \
! 247: LDFLAGS="-L/usr/local/cygwin64/lib"
! 248: make
! 249: make check
! 250:
! 251: Installation:
! 252:
! 253: make install
! 254:
! 255: ===============================================================================
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>