Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dx3mod/bavar
A domain-specific build system for AVR C/C++ projects.
https://github.com/dx3mod/bavar
avr build-system labavrplatform
Last synced: about 2 months ago
JSON representation
A domain-specific build system for AVR C/C++ projects.
- Host: GitHub
- URL: https://github.com/dx3mod/bavar
- Owner: dx3mod
- License: mit
- Created: 2024-05-20T06:51:20.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-07-19T16:40:57.000Z (6 months ago)
- Last Synced: 2024-07-19T21:41:19.444Z (6 months ago)
- Topics: avr, build-system, labavrplatform
- Language: OCaml
- Homepage:
- Size: 98.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bavar
A domain-specific build system for AVR C/C++ projects with a strong opinion on how to build them.
Has deep integration with the existing toolchain to provide a better developer experience.#### Features
- ✍️ Opinionated project organization
- 🏗️ Build with automatic dependency resolution
- 🔌 Upload firmware to microcontroller (powered by avrdude)## Usage
Initialize a new AVR C project.
```console
$ bavar init firmware -target attiny2313a blink
``````
blink/
├── avr-project
└── src
└── main.c
```Configuration file `avr-project`.
```clojure
(name blink)
(target attiny2313a 1mhz)
```Compile and upload the current project (compile in release by default and use usbasp programmer).
```console
$ bavar build @upload
```[Read the user guide.](./GUIDE.md)
## Installation
This should already be installed on your system:
- AVR GCC toolchain for compile projects
- avrdude utility for uploading firmware to a microcontroller.Optional: Git for downloading a project's dependencies, Python3 (and PIL module) for image conventions.
🚧 Now only works on Unix-like systems!
#### Prebuilt binaries
To get prebuilt binaries, see the [releases page](https://github.com/dx3mod/bavar/releases).
#### Build from source
using [OPAM](https://opam.ocaml.org/) package manager.
```console
$ opam pin https://github.com/dx3mod/bavar.git
```## Related
The project is being developed as part of the [LabAvrPlatform](https://github.com/dx3mod/LabAvrPlatform) platform.
## Development
bavar written in modern OCaml with use Dune build-system and OPAM package manager.
See [Managing Dependencies With opam](https://ocaml.org/docs/managing-dependencies) for details. See also [development guide](./DEV.md).The project is no longer actively maintained, but a pull request is welcome.