Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/google/kati
An experimental GNU make clone
https://github.com/google/kati
Last synced: 9 days ago
JSON representation
An experimental GNU make clone
- Host: GitHub
- URL: https://github.com/google/kati
- Owner: google
- License: apache-2.0
- Created: 2015-07-03T19:14:40.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-30T18:52:29.000Z (6 months ago)
- Last Synced: 2024-08-01T17:22:01.770Z (3 months ago)
- Language: C++
- Homepage:
- Size: 2.05 MB
- Stars: 915
- Watchers: 47
- Forks: 109
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Authors: AUTHORS
Awesome Lists containing this project
- my-awesome-starred - google/kati - An experimental GNU make clone (C++)
README
# kati
[![Build and Test](https://github.com/google/kati/workflows/Build%20and%20Test/badge.svg)](https://github.com/google/kati/actions)
kati is an experimental GNU make clone. The main goal of this tool is to
speed-up incremental build of Android.Currently, kati does not offer a faster build by itself. It instead converts
your Makefile to a ninja file.## Development
Building:
```
$ make ckati
```The above command produces a `ckati` binary in the project root.
Testing (best ran in a Ubuntu 22.04 environment):
```
$ make test
$ go test --ckati
$ go test --ckati --ninja
$ go test --ckati --ninja --all
```The above commands run all cKati and Ninja tests in the `testcases/` directory.
Alternatively, you can also run the tests in a Docker container in a prepared
test enviroment:```
$ docker build -t kati-test . && docker run kati-test
```If you are working on a machine that does not provide `make` in the same version
as kati is currently compatible with, you might want to download a prebuilt
version instead. For example to use the prebuilt version of Ubuntu 20.04 LTS:```
$ mkdir tmp/ && cd tmp/
$ wget http://mirrors.kernel.org/ubuntu/pool/main/m/make-dfsg/make_4.2.1-1.2_amd64.deb
$ ar xv make_4.2.1-1.2_amd64.deb
$ tar xf data.tar.xz
$ cd ..
$ PATH=$(pwd)/tmp/usr/bin/:$PATH make test
```## How to use for Android
For Android-N+, ckati and ninja is used automatically. There is a prebuilt
checked in under prebuilts/build-tools that is used.All Android's build commands (m, mmm, mmma, etc.) should just work.