# gnumake

> cross platform gnu make

Latest version **0.3.5** (published 2020-07-17) · MIT license · 0 weekly downloads

## Install

```sh
npm install gnumake
pnpm add gnumake
yarn add gnumake
bun add gnumake
```

Provides the command `make`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.3.5 |
| Published | 2020-07-17 |
| First published | 2020-01-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0.0 |
| Dependencies | 5 |
| Unpacked size | 25.8 KB |
| Known vulnerabilities | 0 (+12 in 1 direct dependencies) |
| Install scripts | yes |
| GitHub stars | 5 |
| Author | Jam Risser |
| Maintainers | codejamninja |
| Keywords | gnumake, gnu, make, makefile |

## Links

- npm: https://www.npmjs.com/package/gnumake
- Repository: https://github.com/codejamninja/gnumake
- Issues: https://github.com/codejamninja/gnumake/issues
- npm.io page: https://npm.io/package/gnumake

## Dependencies (5)

- [shx](https://npm.io/package/shx.md) ^0.3.2
- [tar](https://npm.io/package/tar.md) ^6.0.1
- [execa](https://npm.io/package/execa.md) ^4.0.0
- [core-js](https://npm.io/package/core-js.md) ^3.6.5
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.9.2

## Alternatives

- [random-seedable](https://npm.io/package/random-seedable.md) — 27.9K weekly downloads
- [n2words](https://npm.io/package/n2words.md) — 22.2K weekly downloads
- [@stdlib/math-base-special-factorialln](https://npm.io/package/@stdlib/math-base-special-factorialln.md) — 5.7K weekly downloads
- [@stdlib/math-base-special-abs2](https://npm.io/package/@stdlib/math-base-special-abs2.md) — 1.7K weekly downloads
- [commons-math-interpolation](https://npm.io/package/commons-math-interpolation.md) — 1.4K weekly downloads

## Recent versions

- 0.3.5 (latest) — 2020-07-17
- 0.3.4 — 2020-07-05
- 0.3.3 — 2020-05-01
- 0.3.2 — 2020-05-01
- 0.3.1 — 2020-04-30
- 0.3.0 — 2020-04-27
- 0.2.7 — 2020-04-27
- 0.2.6 — 2020-04-27
- 0.2.5 — 2020-04-27
- 0.2.4 — 2020-04-26
- 0.2.3 — 2020-04-26
- 0.2.2 — 2020-04-26
- 0.2.1 — 2020-04-26
- 0.2.0 — 2020-04-26
- 0.1.0 — 2020-01-22
- … 19 more at https://npm.io/package/gnumake/versions

## README

# gnumake

[![GitHub stars](https://img.shields.io/github/stars/codejamninja/gnumake.svg?style=social&label=Stars)](https://github.com/codejamninja/gnumake)

> cross platform gnu make for nodejs

Please ★ this repo if you found it useful ★ ★ ★

## Features

- supports windows
- supports osx
- supports linux

## Installation

```sh
npm install --save-dev gnumake
```

## Dependencies

- [NodeJS](https://nodejs.org)

## Usage

1. Create a Makefile

    You must include `node_modules/gnumake/gnumake.mk`.

    _Makefile_
    ```make
    include node_modules/gnumake/gnumake.mk

    .PHONY: build
    build: lib
    lib:
    	-@$(RM) -rf lib || $(TRUE)
    	@babel src -d lib
    ```

2. Reference Makefile from npm scripts

    _package.json_
    ```json
      "scripts": {
        "build": "make -s build"
      }
    ```

## Cross Platform Commands

The following commands should be referenced from make variables instead of the raw
unix commands for cross platform suport on **linux**, **osx** and **windows**.

| unix command | make variable | example                                 |
| -----------  | ------------- | --------------------------------------- |
| `/dev/null`  | `$(NULL)`     | `echo hello >$(NULL)`                   |
| `cat`        | `$(CAT)`      | `$(CAT) hello.txt`                      |
| `chmod`      | `$(CHMOD)`    | `$(CHMOD) hello.txt`                    |
| `cd`         | `$(CD)`       | `$(CD) hello`                           |
| `cp`         | `$(CP)`       | `$(CP) -r hello world`                  |
| `false`      | `$(FALSE)`    | `echo fail && $(FALSE)`                 |
| `find`       | `$(FIND)`     | `$(FIND) *.txt`                         |
| `grep`       | `$(GREP)`     | `$(GREP) ".+\.txt$"`                    |
| `git `       | `$(GIT)`      | `$(GIT) ls-files`                       |
| `ln`         | `$(LN)`       | `$(LN) -s hello.txt world.txt`          |
| `ls`         | `$(LS)`       | `$(LS) -a`                              |
| `make`       | `$(MAKE)`     | `$(MAKE) -s hello`                      |
| `mkdir -p`   | `$(MKDIRP)`   | `$(MKDIRP) hello/world`                 |
| `mv`         | `$(MV)`       | `$(MV) hello world`                     |
| `npm`        | `$(NPM)`      | `$(NPM) install`                        |
| `pwd`        | `$(PWD)`      | `$(PWD)`                                |
| `rm`         | `$(RM)`       | `$(RM) -rf hello`                       |
| `sed`        | `$(SED)`      | `$(SED) -i "s/hello/world/g" hello.txt` |
| `tail`       | `$(TAIL)`     | `$(TAIL) -f hello.log`                  |
| `touch`      | `$(TOUCH)`    | `$(TOUCH) hello.txt`                    |
| `true`       | `$(TRUE)`     | `echo success && $(TRUE)`               |

## Support

Submit an [issue](https://github.com/codejamninja/gnumake/issues/new)

## Contributing

Review the [guidelines for contributing](https://github.com/codejamninja/gnumake/blob/master/CONTRIBUTING.md)

## License

[MIT License](https://github.com/codejamninja/gnumake/blob/master/LICENSE)

[Jam Risser](https://codejam.ninja) © 2020

## Changelog

Review the [changelog](https://github.com/codejamninja/gnumake/blob/master/CHANGELOG.md)

## Credits

- [Jam Risser](https://codejam.ninja) - Author

---
_Source: https://npm.io/package/gnumake · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
