All Projects → kunegis → Stu

kunegis / Stu

Licence: gpl-3.0
Build automation

Projects that are alternatives of or similar to Stu

Kapow
Kapow! If you can script it, you can HTTP it.
Stars: ✭ 526 (+1543.75%)
Mutual labels:  posix
Lizardfs
LizardFS is an Open Source Distributed File System licensed under GPLv3.
Stars: ✭ 793 (+2378.13%)
Mutual labels:  posix
Brunch
🍴 Web applications made easy. Since 2011.
Stars: ✭ 6,801 (+21153.13%)
Mutual labels:  build-automation
Drone
Drone is a Container-Native, Continuous Delivery Platform
Stars: ✭ 24,287 (+75796.88%)
Mutual labels:  build-automation
Cibuildwheel
🎡 Build Python wheels for all the platforms on CI with minimal configuration.
Stars: ✭ 620 (+1837.5%)
Mutual labels:  build-automation
Shpy
🕵️‍♀️ POSIX compliant spies and stubs for shell unit testing
Stars: ✭ 5 (-84.37%)
Mutual labels:  posix
Buildout
Buildout is a deployment automation tool written in and extended with Python
Stars: ✭ 510 (+1493.75%)
Mutual labels:  build-automation
Goat
POSIX-compliant shell movement boosting hack for real ninjas (aka `cd x` and `cd ...`)
Stars: ✭ 27 (-15.62%)
Mutual labels:  posix
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (+2071.88%)
Mutual labels:  build-automation
Shbib
A BibTeX-centric bibliography manager written in POSIX shell
Stars: ✭ 26 (-18.75%)
Mutual labels:  posix
Tinydir
Lightweight, portable and easy to integrate C directory and file reader
Stars: ✭ 575 (+1696.88%)
Mutual labels:  posix
Modernish
Modernish is a library for writing robust, portable, readable, and powerful programs for POSIX-based shells and utilities.
Stars: ✭ 586 (+1731.25%)
Mutual labels:  posix
Cargo Make
Rust task runner and build tool.
Stars: ✭ 895 (+2696.88%)
Mutual labels:  build-automation
Acme.sh
A pure Unix shell script implementing ACME client protocol
Stars: ✭ 24,723 (+77159.38%)
Mutual labels:  posix
Fusell Seed
FUSE (the low-level interface) file system boilerplate 📂 🔌 💾
Stars: ✭ 9 (-71.87%)
Mutual labels:  posix
Opencore Factory
Discontinued
Stars: ✭ 514 (+1506.25%)
Mutual labels:  build-automation
Pfetch
🐧 A pretty system information tool written in POSIX sh.
Stars: ✭ 816 (+2450%)
Mutual labels:  posix
Tokio File Unix
Asynchronous support for epollable files via Tokio on Unix-like platforms
Stars: ✭ 29 (-9.37%)
Mutual labels:  posix
Rsyslog
An R interface to syslog, the POSIX system logger API
Stars: ✭ 21 (-34.37%)
Mutual labels:  posix
Hopp
Crazy rapid build system.
Stars: ✭ 24 (-25%)
Mutual labels:  build-automation

Stu -- Build Automation

This is Stu, a build tool in the spirit of Make, but with three features that set it apart:

  • Parametrized rules: Like GNU Make's '%' character, but there can be multiple parameters, and they have names. The syntax is '$NAME', where NAME can be any string. Parameters are injected transparently into the commands.
  • Dynamic dependencies: The dependencies of a target can be generated dynamically. When a dependency is enclosed in square brackets, it means that that file is built and dependencies are read from within that file.
  • Parentheses and brackets support concatenation, allowing parametrized filenames to be generated in the first place.

In many scenarios, these three features interact judiciously to give very concise and easy to understand constructs that are nearly impossible to realize with Make.

See these blog articles for motivation:

https://networkscience.wordpress.com/2018/01/15/the-build-system-stu-in-practice/ https://networkscience.wordpress.com/2017/08/15/an-update-on-the-stu-build-system-stu-2-5/

For documentation, compile and read the manpage, or go directly to:

https://raw.githubusercontent.com/kunegis/stu/master/stu.text

For more specific documentation of particular aspects of Stu, see the files in the doc/ directory.


News

  • Version 2.6 is out: canonicalization of filenames is implemented

  • Tip: Set "export STU_OPTIONS=-E" in your .bashrc file to get explanations of common error messages in Stu.

See the file 'NEWS' for more news.


Installation Guide

Stu is not yet in the main package repositories of common operating systems. See the file INSTALL for compiling Stu yourself, which is easy: We use the classical configure-make-install trio. Stu is written in C++14 for POSIX platforms. You should have no problem getting it to run on vanilla Linux and other POSIX-compliant platforms.

If you're interested in making Stu packages available for other operating systems and need help, please contact [email protected].


Use Stu

To use Stu, replace your 'Makefile' with a 'main.stu' file, and instead of calling 'make', call 'stu'.

To see an example of Stu used in a large data mining project, see the file 'main.stu' in the KONECT-Analysis project:

https://github.com/kunegis/konect-analysis/blob/master/main.stu


About

Stu was originally written to accommodate the KONECT project (Koblenz Network Collection -- http://konect.cc/). It is thus mainly used for large data mining projects, where it manages everything from acquiring data from the web, preprocessing data in various ways, to performing data mining experiments, to generating plots and compiling the resulting Latex papers. It is also used for compiling C/C++ code, for generating tarballs, for generating websites, and by data scientists and students associated with Jérôme Kunegis.

The name "Stu" follows the precedents of Make replacements such as Cook, Bake, and Brew in referring to kitchen-related verbs, and also honors the author of the original Unix Make, Stuart Feldman.

Stu was initiated by Jérôme Kunegis at the University of Koblenz-Landau (Germany), and is currently maintained at the University of Namur (Belgium), with help from other contributors; see the file AUTHORS.

Stu is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Stu is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

For support, write to Jérôme Kunegis [email protected], or go to

https://github.com/kunegis/stu

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].