Metadata-Version: 2.4
Name: make-install
Version: 1.0.0
Summary: Install command-line tools from git repositories, building them with make
Author-email: "@readwith" <talwrii@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/talwrii/make-install
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# make-install
Install github repositories by making and copying executable.

This is unreviewed AI-genreated code

## Motivation
I do not like running `make install` and `make uninstall`. I like installed files and packages to be tracked and queriable. But not tall supports this

[basher](https://github.com/basherpm/basher) can copy or symlink binaries but does not run `make`. [bpkg](https://github.com/bpkg/bpkg) runs `make` and copies files but cannot symlink to make code editable. I want to to have syminks and a remake command.


## Finding executables
After building, make-install will symlink everything in `/bin` and the top level.
You can also make a `make-install.json` command:

```json
{"bins": ["build/mytool", "scripts/helper"]}
```

## Building

If the package has a `Makefile`, `makefile` or `GNUmakefile`, `make-install` runs
`make` in it — the default target, not `install`. A package with no makefile
is simply linked, which is basher's behaviour.

`make-install` does not install build dependencies and has no way to describe
them. A C program needing GTK headers still needs you to install them.

## Installation

```sh
pipx install make-install
eval "$(make-install init)"        # adds ~/.make-install/bin to PATH; put this in your shell rc
```

`$MAKE_INSTALL_ROOT` overrides the location, which defaults to `~/.make-install`.


## Usage
Install from a github repo

```
make-install install talwrii/x11-grab-dialog
```

Install from source
```
make-install install .
```

Link from source (uses symlinks so builds change binaries immediately)

```
make-install link .
```

Rebuild a package and relink it. For a linked checkout this rebuilds your
working tree.

```
make-install remake x11-grab-dialog
```

Remove a package. A copy is deleted; a linked checkout is left alone and only
the symlinks go.

```
make-install uninstall x11-grab-dialog
```

Show what is installed, and which of them are links.

```
make-install list
```

