File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / INSTALL.windows
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 13:38:46 2021 UTC (3 years, 9 months ago) by misho
Branches: libiconv, MAIN
CVS tags: v1_16p0, HEAD
libiconv 1.16

    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>