Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@xpack-dev-tools/m4

xpack-dev-tools307MIT1.4.20-1.1

A binary xPack with the GNU M4 executables

xpack, gnu, m4, readlink

readme

GitHub package.json version GitHub release (latest by date) npm (scoped) license

The xPack GNU M4

A standalone cross-platform (macOS/Linux) GNU M4 binary distribution, intended for reproducible builds.

The main target is Ubuntu 18, whose older version of this utility fails some builds.

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

Overview

This open source project is hosted on GitHub as xpack-dev-tools/m4-xpack and provides the platform specific binaries for the xPack GNU M4.

This distribution follows the official GNU M4 releases.

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

Release schedule

This distribution is generally one minor release behind the upstream releases. In practical terms, when the minor release number changes, it awaits a few more weeks to get the latest patch release.

User info

This section is intended as a shortcut for those who plan to use the GNU M4 binaries. For full details please read the xPack GNU M4 pages.

Easy install

The easiest way to install GNU M4 is using the binary xPack, available as @xpack-dev-tools/m4 from the npmjs.com registry.

Prerequisites

A recent xpm, which is a portable Node.js command line application that complements npm with several extra features specific to C/C++ projects.

It is recommended to install/update to the latest version with:

npm install --location=global xpm@latest

For details please follow the instructions in the xPack install page.

Install

With the xpm tool available, installing the latest version of the package and adding it as a development dependency for a project is quite easy:

cd my-project
xpm init # Add a package.json if not already present

xpm install @xpack-dev-tools/m4@latest --verbose

ls -l xpacks/.bin

This command will:

  • install the latest available version, into the central xPacks store, if not already there
  • add symbolic links to the central store (or .cmd forwarders on Windows) into the local xpacks/.bin folder.

The central xPacks store is a platform dependent location in the home folder; check the output of the xpm command for the actual folder used on your platform. This location is configurable via the environment variable XPACKS_STORE_FOLDER; for more details please check the xpm folders page.

It is also possible to install GNU M4 globally, in the user home folder:

xpm install --global @xpack-dev-tools/m4@latest --verbose

After install, the package should create a structure like this (macOS files; only the first two depth levels are shown):

$ tree -L 2 /Users/ilg/Library/xPacks/\@xpack-dev-tools/m4/1.4.19-3.1/.content/
/Users/ilg/Library/xPacks/\@xpack-dev-tools/m4/1.4.19-3.1/.content/
├── README.md
├── bin
│   ├── gm4 -> m4
│   └── m4
├── distro-info
│   ├── CHANGELOG.md
│   ├── licenses
│   └── scripts
├── libexec
│   └── libiconv.2.dylib
└── share
    └── info

8 directories, 5 files

No other files are installed in any system folders or other locations.

Uninstall

The binaries are distributed as portable archives; thus they do not need to run a setup and do not require an uninstall; simply removing the folder is enough.

To remove the links created by xpm in the current project:

cd my-project

xpm uninstall @xpack-dev-tools/m4

To completely remove the package from the central xPack store:

xpm uninstall --global @xpack-dev-tools/m4

Manual install

For all platforms, the xPack GNU M4 binaries are released as portable archives that can be installed in any location.

The archives can be downloaded from the GitHub Releases page.

For more details please read the Install page.

Versioning

The version strings used by the GNU M4 project are two number strings like 9.1, extended to 1.4.19 to look like semver; to this string the xPack distribution adds a four number, but since semver allows only three numbers, all additional ones can be added only as pre-release strings, separated by a dash, like 1.4.19-3. When published as a npm package, the version gets a fifth number, like 1.4.19-3.1.

Since adherence of third party packages to semver is not guaranteed, it is recommended to use semver expressions like ^1.4.19 and ~1.4.19 with caution, and prefer exact matches, like 1.4.19-3.1.

Maintainer info

For maintainer info, please see the README-MAINTAINER.

Support

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

For more details please read the Support page.

License

Unless otherwise stated, the 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 the installed distro-info/licenses folder.

Download analytics

Credit to Shields IO for the badges and to Somsubhra/github-release-stats for the individual file counters.

changelog

Change & release log

Entries in this file are in reverse chronological order.

2025-10-01

  • v1.4.20-1.1 published on npmjs.com
  • a0a4b80 package.json: update URLs for 1.4.20-1.1 release
  • d2e81b2 website: blog post release 1.4.20-1.1 published
  • 7b04121 package.json remove platform linux-arm
  • 79f7809 Revert "temporary publish-release.yml -x"
  • 991c4cc temporary publish-release.yml -x
  • 85e755d CHANGELOG update
  • v1.4.20-1 released
  • 4d14dfe package.json bump helper
  • 7862a66 package.json bump helper
  • c0baba6 package.json bump helper
  • 5aba271 workflows update test-docker-linux*
  • b3e5e23 package.json bump helper
  • 2132b92 package.json update
  • e62322a website update
  • 90efde3 CHANGELOG update
  • 3a008c9 website update
  • 09a7b42 website update

2025-09-30

  • e9e2c12 package.json remove win32
  • 48d8950 website update
  • a5e8086 workflows remove win32
  • 0abf25d prepare v1.4.20-1
  • 88405f8 workflows update
  • v1.4.20-1 prepared
  • 9726803 .*ignore update
  • 1f62c7f website: re-generate commons
  • 3cdc30a workflows runs-on github runners
  • ba391da build-assets/scripts update copyright years
  • fa28e3d workflows update copyright years
  • 6de6ec5 scripts update licenses/mit
  • fb63355 .github update licenses/mit

2025-03-23

  • cf5e9e1 update /licenses/MIT
  • f57e78e website: re-generate commons
  • d7af96f re-generate commons
  • 9d331e2 website package.json shareOnTwitter update
  • 6c88d3f website package.json author update
  • 684eff1 website generate-website-commons update

2025-02-24

  • ec8b937 website: re-generate descriptive & permalink names
  • 7974d21 re-generate descriptive & permalink names

2025-02-23

  • 81d89ad website: re-generate commons
  • 453fba5 re-generate commons

2025-02-18

  • 6d31498 package.json: bump minimumXpmRequired 0.20.5
  • fc21fb7 package.json: bump xpm 0.20.5

2025-02-14

  • bf9f32b re-generate commons
  • f84e3f2 re-generate commons

2025-02-13

  • 73546bc re-generate commons

2025-02-07

  • eeda66e website: re-generate commons

2025-02-04

  • bb7ccfb website: re-generate commons
  • 648e494 build-assets: update generate-website-blog-post

2025-02-03

  • ae053dd build-assets: bump deps
  • 4cded5e website: re-generate commons
  • 64568cf website: re-generate commons

2025-02-02

  • 6f0c94a website: re-generate commons

2025-01-31

  • 530f7a1 website: updates and final common rework

2025-01-30

  • e620ab3 website: rework getting-started
  • 27ea3bb website: more rework with commons

2025-01-29

  • 27c63c7 website: more rework with commons

2025-01-27

  • d848839 website: cosmetise imports

2025-01-26

  • 5875e5e website: rework with _project

2025-01-23

  • f836540 website: re-generate commons

2025-01-22

  • 35927f8 website: re-generate commons

2025-01-21

  • 0207296 build-assets: cleanup actions
  • d4cb3b9 website: re-generate commons
  • 1195162 website: re-generate commons
  • c7ccdbe website: re-generate commons

2025-01-20

  • 63fc774 re-generate commons
  • 73dfca1 website: re-generate commons

2025-01-19

  • d12f53f website: remove unused customField.js
  • 7863d8a build-assets: move customFields to websiteConfig
  • 6943cd5 website: re-generate commons

2025-01-17

  • adc3676 website: re-generate commons
  • a369fa8 re-generate commons
  • 0250f01 website: re-generate commons

2025-01-16

  • 50b7958 website: re-generate commons
  • df072ec re-generate commons

2025-01-15

  • d384507 re-generate commons

2025-01-14

  • 4b09d50 re-generate commons
  • 41ceb83 re-generate commons

2025-01-13

  • 2009a53 website: re-generate commons remove Windows
  • edb6b05 re-generate workflows
  • 9b19e3d copyright updates
  • 44501fe copyright updates

2025-01-10

  • 8041155 website: updates
  • 7dd9458 website: updates
  • 651064f website: updates

2025-01-09

  • ec9a1a2 build-assets/package.json: bump deps
  • 2bfbbba website: updates

2025-01-02

  • e6575cf package.json: cosmetics
  • cde66cb website: updates
  • 86cb115 build-assets/package.json: bump deps

2024-12-31

  • 93cf950 website: updates

2024-12-30

  • 1314ca6 package.json: bump deps
  • eff28bf website: updates

2024-12-24

  • 6394b51 website: updates
  • 798c478 website: updates

2024-12-22

  • 452336e website: updates
  • b3569e7 website: add _xpack.github.io

2024-12-20

  • ddb2039 website: updates
  • 7c72108 website: updates
  • 486c7c5 website: updates

2024-12-11

  • 36acde9 website: updates
  • db13a71 website/blog/_templates/blog-post-release*
  • 6d39ca7 build-assets/package.json: bump deps

2024-12-04

  • 60f8738 website: updates

2024-10-15

  • 39a0cb9 website: updates
  • 317f613 website: updates

2024-10-14

  • a51cbcb website: updates

2024-10-13

  • 7ec7e60 website: updates
  • 75de75d website: updates
  • 33ba457 website: updates

2024-10-11

  • fb073c4 website: updates
  • 7e2aeed website/blog/_templates/blog-post-release*
  • 61edaa9 website/blog/_templates/blog-post-release*

2024-10-10

  • efc2246 website: updates
  • 22f5778 website: updates

2024-10-09

  • 37cb919 website move blog post templates
  • 85ab7e8 website: updates
  • cf7ff78 website: updates

2024-10-07

  • 1fa3fbb website: updates
  • 6a1b488 website: updates

2024-10-06

  • b9e0412 website: updates
  • 0ea820c website: updates
  • a2ceb4f re-generate workflows

2024-10-04

  • f11a38c website: updates
  • be11e7b build-assets/package.json update customFields
  • 4d5ce22 templates/body-blog update

2024-09-18

  • 85d5046 website: updates
  • 203f0bb website update
  • 2d9e4e7 build-assets/package.json update customFields
  • 677c819 build-assets/templates updates

2024-09-17

  • 337f0a0 website: add content
  • c977a76 build-assets/package*.json update

2024-09-16

  • 38d1bfa build-assets/templates updates
  • c23edce workflows cleanups
  • 54493a3 re-generate workflows
  • 9166d25 build-assets/package.json: bump deps

2024-09-12

  • 4b8a3ec update scripts copyright notices

2024-08-17

  • 7858c94 website remove preliminary
  • 78fba58 build-assets/package.json: updates
  • b7ffd93 templates/body-blog update
  • 2f9fffc templates/body-github: update
  • b46c0b2 re-generate workflows

2024-08-16

  • 2fe8cbe templates/body-github: update

2024-08-14

  • d1d5763 build-assets/package.json: updates

2024-08-09

  • 9d5a685 READMEs update
  • b259b8c package.json: git+https
  • 7f6e325 build-assets/package.json: updates
  • adfb408 templates/body-blog update

2024-08-07

  • cbf6c5d build-assets/package.json: updates
  • 0584279 build-assets/package.json: updates
  • 789253f website: preliminary content
  • 8fa800c re-generate workflows
  • 9882aad move to build-assets

2024-08-06

  • 0318f86 package.json: bump deps

2024-08-04

  • 3f881da package.json: bump deps
  • eb25a12 package.json: update generate-workflows
  • c68d15a templates/jekyll update
  • 2d3fc7b READMEs update
  • ed3c335 package.json: add actions, bump deps

2024-07-27

  • b1706c3 package.json: add actions, bump deps
  • 158c698 templates/jekyll update

2024-07-23

  • 375d46f READMEs update
  • 39995ef .npmignore update
  • f699850 re-generate scripts
  • 6d578a4 body-jekyll update
  • 93a2534 re-generate workflows
  • 86c5c75 package.json: rework generate workflows
  • bba1def package.json: loglevel info
  • 4b2491c package.json: bump deps

2024-06-18

  • 41bfc01 READMEs update

2024-06-17

  • f4d9c8b package.json: rework generate workflows
  • ab650a7 package.json: bump deps
  • e59c919 application.sh: update

2024-05-28

  • 0b78da4 README update

2024-05-23

  • 7ed947f package.json: clang 16.0.6-1.1

2024-05-18

  • 35e2048 READMEs update
  • cf652df package.json: XBB_ENVIRONMENT_SKIP_CHECKS

2024-05-16

  • 7ec3cc5 READMEs update

2024-05-04

  • 00eaae8 README update

2024-05-03

  • 864132b README update
  • 5864d56 package.json: add bison to deps

2024-05-02

  • 09c7981 package.json: add m4 to deps
  • e72ca52 package.json: clang 17.0.6-1.1

2024-04-22

  • 5b5f249 package.json: bump deps
  • f134cb0 package.json: xpm-version 0.18.0

2024-03-08

  • 7cb2708 package.json: xpm-version 0.18.0

2024-03-07

  • 6788efd package.json: xpm-version 0.18.0
  • 405a6ba package.json: bump deps

2024-03-06

  • e16654a body-jekyll update
  • b2208a6 package.json: bump deps

2024-02-07

  • c594694 READMEs update
  • 6f0c740 package.json: bump deps

2023-12-03

  • 00c9315 package.json: bump deps
  • 34ee56f re-generate workflows

2023-11-12

  • ac08467 package.json: bump deps

2023-09-25

  • 7951d9e body-jekyll update

2023-09-20

  • 2e000ed package.json: bump deps

2023-09-16

  • ce35bbf package.json: add linux32
  • ad8eaee body-jekyll update

2023-09-11

  • 55c4bdd package.json: bump deps

2023-09-08

  • 4e2fd11 package.json: bump deps

2023-09-06

  • 2193929 package.json: bump deps
  • 8cb4a33 1.4.19-3.1
  • e4af654 CHANGELOG: publish npm v1.4.19-3.1
  • v1.4.19-3.1 published on npmjs.com
  • dab5b71 package.json: update urls for 1.4.19-3.1 release
  • 83fd648 README update
  • 08259f0 CHANGELOG update
  • 5e8af9a .vscode/settings.json: ignoreWords
  • eec19e6 README update
  • b78c8eb README update
  • 8e32fac package.json bump deps
  • e342f75 templates/jekyll update

2023-09-05

  • ce4bfa9 prepare v1.4.19-3
  • 05f044c re-generate workflows
  • 7797269 READMEs update
  • 4b19d82 package.json: bump deps

2023-09-03

  • 2fcf414 package.json: bump deps

2023-08-28

  • 2bff5dc READMEs update

2023-08-25

  • d367649 package.json: rm xpack-dev-tools-build/*
  • 69cc8b9 package.json: bump deps

2023-08-21

  • 6d88fe7 READMEs update
  • 775f554 package.json: bump deps

2023-08-19

  • 28bb0ed READMEs update
  • ef9d6dc package.json: bump deps

2023-08-15

  • 744ccc5 re-generate workflows
  • ea24914 README-MAINTAINER rename xbbla
  • 241e163 package.json: rename xbbla
  • c8f78a3 package.json: bump deps
  • 9c14aca READMEs update
  • 55ab522 package.json: bump deps

2023-08-05

  • 993d774 READMEs update

2023-08-04

  • f623e58 READMEs update
  • 373099c READMEs update
  • 27b9ff3 package.json: add build-develop-debug
  • 55b20e3 READMEs update

2023-08-03

  • 383c3e4 package.json: reorder build actions
  • 8cd5774 READMEs update
  • baf0410 package.json: bump deps

2023-07-28

  • 0f79f4e READMEs update
  • 7b25e56 READMEs update
  • c31a0c3 package.json: bump deps
  • c8e870f package.json: liquidjs --context --template
  • 8892fcd scripts cosmetics
  • dfcf7ab re-generate workflows
  • af52261 READMEs update
  • 4cf7a8b package.json: minXpm 0.16.3 & @xpack-dev-tools/xbb-helper
  • 84d5722 READMEs update
  • 7a9079a package.json: bump deps

2023-07-26

  • 53a2892 package.json: move scripts to actions
  • 52eb85b package.json: update xpack-dev-tools path
  • 8910a57 READMEs update xpack-dev-tools path
  • e2540f2 body-jekyll update
  • af9f5e4 READMEs update

2023-07-17

  • f2d40c6 package.json: bump deps

2023-03-25

  • 9d54427 READMEs update
  • 61b2518 READMEs update prerequisites
  • 5185a4d package.json: mkdir -pv cache

2023-02-22

  • 0de47b3 READMEs update

2023-02-14

  • 7e21296 body-jekyll update

2023-02-10

  • 7e4a833 package.json: update Work/xpacks
  • 8deeb4d READMEs update
  • 2b742a6 re-generate workflows

2023-02-07

  • 32b4ee9 READMEs update
  • a03521c body-jekyll update

2023-01-29

  • 9e6e325 1.4.19-2.1
  • 64f648b CHANGELOG: publish npm v1.4.19-2.1
  • 2214e08 package.json: update urls for 1.4.19-2.1 release
  • 67a941e CHANGELOG update
  • v1.4.19-2 released
  • ea097ad CHANGELOG update
  • 84327c1 README update
  • dbb73f5 .vscode/settings.json: ignoreWords
  • 9fe9207 package.json: bump deps
  • 967f5fc package.json: bump deps
  • 24f6f58 prepare v1.4.19-2
  • 1bd99d3 re-generate workflows
  • dabe96a .vscode/settings.json: ignoreWords

2023-01-28

  • d52478a versioning.sh: use versioning functions
  • d089f74 README-MAINTAINER remove caffeinate xpm

2023-01-27

  • 690d675 package.json: reorder scripts

2023-01-24

  • d487b36 README updates

2023-01-22

  • b05fc65 README update

2023-01-09

  • 85ba04b package.json: bump deps
  • 0418672 package.json: loglevel info
  • abbd697 versioning.sh: add comment before *installedbin

2023-01-02

  • d6a4fb5 package.json: reformat

2023-01-01

  • 59e2b40 package.json: pass xpm version & loglevel

2022-12-30

  • 2a43193 README-MAINTAINER: xpm run install

2022-12-29

  • 9206d42 versioning.sh: regexp
  • 03c5dfa package.json: bump deps

2022-12-27

  • 653471d README update
  • 48d9665 re-generate from templates

2022-12-26

  • 4be64c2 remove empty dependencies
  • 7705c1d README updates

2022-12-25

  • fcd76f5 versioning.sh: remove explicit xbb_set_executables_install_path

2022-12-24

  • f004442 CHANGELOG update
  • 6a4d068 READMEs updates
  • 023aa76 versioning.sh: update
  • 71995ab package.json: update
  • 603e04f package.json: bump deps
  • 939c8ba body-jekyll: update
  • 918a763 re-generate from templates
  • 534690e rename functions

2022-12-12

  • 29ae603 package.json: add caffeinate builds for macOS

2022-11-18

  • 98f6e40 .vscode/settings.json: watcherExclude

2022-11-03

  • v1.4.19-1.1 published on npmjs.com
  • v1.4.19-1 prepared
  • created via copy/paste from realpath