Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neosmart/gmake-proxy
A BSD make (bmake) proxy that invokes GNU make (gmake) instead
https://github.com/neosmart/gmake-proxy
bmake bsd gmake makefile
Last synced: about 1 month ago
JSON representation
A BSD make (bmake) proxy that invokes GNU make (gmake) instead
- Host: GitHub
- URL: https://github.com/neosmart/gmake-proxy
- Owner: neosmart
- License: bsd-2-clause
- Created: 2018-06-07T18:49:40.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-10-22T17:41:08.000Z (about 1 year ago)
- Last Synced: 2024-03-26T03:39:09.003Z (9 months ago)
- Topics: bmake, bsd, gmake, makefile
- Language: Makefile
- Size: 7.81 KB
- Stars: 15
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gmake-proxy
`gmake-proxy` consists of a single `BSDmakefile` that can be dropped into any
project with an existing `Makefile` relying on syntax specific to GNU `make`.
Instead of seeing and endless wall of errors as bmake attempts (and fails) to
parse the `gmake`-specific contents, with this `BSDmakefile` in place `make`
will silently proxy all commands (and even attempt to forward commandline
options in a compatibile manner) to GNU `make` if `gmake` is found.If `gmake` is not installed, this makefile will emit the appropriate error
message informing the end user that `gmake` is required to compile the project
in question.## How this works
Since the split from the original AT&T `make`, both GNU's `make` and the BSD
`make` have adopted different syntax to improve and expand the makefile syntax.
These syntaxes changes are largely incompatible with one another. While the BSD
makefile syntax is typically seen as being cleaner and clearer (and `bmake` can
handle paths with spaces), the GNU variant of the makefile syntax is by far the
more popular of the two in random open source projects found around the web.Fortunately, both GNU `make` and BSD `make` default to a different makefile
name that, if present, will be used instead of a file named `Makefile` in the
project root. For BSD `make`, that filename is `BSDmakefile`, while for GNU
`make`, that name is is `GNUmakefile`.This project consists of a single `BSDmakefile` that can be dropped into any
directory containing either a `GNUmakefile` or (as is most common) a
platform-agnostic `Makefile` that incorrectly contains GNU-specific
syntax/code. This `BSDmakefile` will attempt to intercept the user's build
command and forward it to a GNU `make` instance, relying on the presence of GNU
`make` installed under the name `gmake`.## Copyright and authorship
`gmake-proxy` is written and developed by Mahmoud Al-Qudsi of NeoSmart
Technologies. This project is (aptly) released to the general public under the
terms of the two-clause BSD license (aka "the simplified BSD license" or "the
FreeBSD license"). Please see the `LICENSE` file for the full text of the
license.(Code licensed under the BSD license may be freely used in GPL projects,
unfortunately the converse is not true.)