Skip to main content

Getting Started with xPack Windows Build Tools

license GitHub Repo stars

Overview

xPack Windows Build Tools is a standalone Windows binary distribution of Windows Build Tools, intended for reproducible builds.

Windows Build Tools is a Windows specific package, customised for the requirements of the Eclipse CDT managed build projects. It includes a recent version of GNU make and a recent version of BusyBox, which provides a convenient implementation for sh/rm/echo.

GNU make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.

GNU make is an open source project hosted on Savannah.

BusyBox combines tiny versions of many common UNIX utilities into a single small executable.

BusyBox is an open source project hosted on busybox.net; the xPack distribution uses the Windows fork hosted on GitHub and maintained by Ron Yorston.

The open source xPack Windows Build Tools project is hosted on GitHub as xpack-dev-tools/windows-build-tools-xpack; it provides the platform specific binaries as release assets.

In addition to the binary archives and the package metadata, this project also includes the build scripts.

Features

All binaries are:

  • self-contained (include all required libraries)
  • file-system relocatable (can be installed in any location)
  • built on slightly older systems (to make them run on both old and new systems)
Compatibility with older systems

Given that most operating systems maintain significant compatibility with older versions, building an application on an older system ensures that the same binary can run on newer versions. Conversely, building an application on a newer system may utilize library features that are not available in older versions, making backward compatibility less feasible.

Benefits

The main advantages of using the xPack Windows Build Tools are:

  • a convenient, uniform and portable install/uninstall/upgrade procedure on x64 Windows
  • multiple versions of the same package can be installed at the same time on the same system
  • no need to worry about dependent libraries, all are included
  • significantly lighter and easier to use than Docker images that provide similar functionality and are GNU/Linux centric
  • projects can be tied to specific tools versions; this provides a good reproducibility, especially useful in CI/CD environments.

Other advantages of using the xPack Windows Build Tools are:

  • use a POSIX shell, which improves the behaviour of make, by properly processing the POSIX paths generated by Eclipse, including names containing spaces
  • overcome the 8192 characters/line limit of usual Windows build environments; by not using the Microsoft cmd.exe, make is able to process larger command lines, allowing to build large projects, with very large number of files
  • support for 64-bit Windows; apparently this not only makes usage safer, by avoiding the DLL32 mess, but also slightly improves build performances.

For those interested in technical details, if make does not find a sh in the path, it falls back to using the Microsoft cmd.exe when launching sub-processes. As with other Windows implementations, compared to Unix shells, cmd.exe is severely restricted, also impacting the make correct behaviour.

The Eclipse Embedded CDT managed build plug-in generally auto-detects the latest build tools version, by searching several designated folders, and defaults to using it. If you need to use a different version, update the Global Tools Paths (or Workspace Tools Paths) in C/C++ → Build preferences.

Forward vs. Back-slashes

Eclipse is a more or less a POSIX compliant environment, which favours the use of standard forward slashed for path separators, and all automatically generated make files use this convention. The version of the make and sh commands packed by xPack Windows Build Tools also favour POSIX standard forward slashes.

As such, the use of Windows specific backslash path separators cannot be properly supported, and attempts to build manually written Windows specific make files might fail.

Compatibility

The xPack Windows Build Tools project is fully compatible with the upstream GNU Make and BusyBox.

Install

The binaries can be installed automatically as binary xPacks or manually as portable archives.

The details of installing the xPack Windows Build Tools on various platforms are presented in the Install Guide.

Documentation

The original documentation is available from the projects web sites:

Release schedule

This distribution generally follows the official GNU make releases, which are very rare, and the BusyBox tags.

Support & feedback

The quick advice for getting support and providing feedback is to use the GitHub Discussions.

For additional information, please refer to the Help Centre page.

Change log

The release and change log is available in the repository CHANGELOG.md file.

Maintainer & Developer information

For information on the workflow used to make releases, please see the Maintainer Info page.

For information on how to build the binaries, please see the Developer Info page.

However, the ultimate source for details are the build scripts themselves, all available from the windows-build-tools-xpack.git/build-assets/scripts folder. The scripts include common code from the @xpack-dev-tools/xbb-helper package.

License

Unless otherwise stated, the original content is released under the terms of the MIT License, with all rights reserved to Liviu Ionescu.

The binary distributions include several open-source components; the corresponding licenses are available in each archive in the distro-info/licenses folder.

Releases

The list of releases is available in the Releases pages.