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>