From a1848222890f5b68a9d84175804ba0afc4a72b83 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 26 Jun 2019 09:21:54 +0000 Subject: [PATCH] README.md: Add more text to README.md Signed-off-by: Jan Lindemann --- README.md | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f3310a5d..a0166bed 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,40 @@ The JW-Build package basically is a bunch of scripts and GNU makefile snippets. You can install it to its standard location /opt/jw-build, or put it anywhere you want in your file system, typically next to your own projects in the same -directory. You then include JW-Build's makefiles from within your own project +directory. You then include JW-Build's makefiles from within your own project to organize your build. +JW-Build is small. You can install the package with your distribution's package +manager, but you can also keep it within your version system, alongside your +own code. It's also meant to be the lightest possible touch on any given source +code package, in terms of needed prerequisites, and also in terms of code you +need to put into those packages. This way, it's easily introduced - but it +also allows you to easily opt out of JW-Build at any time. + A package using JW-Build only needs three-liners as makefiles. This buys you convenience, minimal, clean, humanly digestable code, and a structured way to customize builds involving multiple packages - you can override any of -JW-Build's default variables for many projects, for an entire project, or for a -directory, at your option. +JW-Build's default variables centrally for many projects, for an entire +project, or inside any subdirectory of any project, at your option. It avoids +makefile generation as done by CMake or GNU Autotools, to keep the running code +small and readable to facilitate debugging. To achieve this, it has to detect a +couple of things in every directory, but there's a caching mechanism in place, +which keeps builds reasonably fast. -JW-Build honours many environment variables, it digests a simple configuration -file per project with the project's metadata, it builds libraries and -executables, it organizes C/C++, Python and Java builds, it can produce and -upload Debian, RPM and IPK packages, it automatically generates BitBake recipes -and organizes Yocto-builds, it has a built-in SAT-solver for building multiple -projects in the right order, incorporating packages that are not made with -jw-build. It supports cross compilation with MinGW and the GNU toolchain. It's -tested on Debian, OpenSUSE, Fedora / CentOS / RHEL, Mint and many Unices. +JW-Build honours some environment variables to control the build. It builds +libraries and executables, outputs object code from C/C++, Python and Java, and +is easily extendible to support any given programming language. It provides +targets to produce Debian, RPM and IPK packages, install them, or feed them +into a DevOps pipeline, taking note within GIT, SVN or CVS. It supports a +simple configuration file per project, containing the project's metadata, e.g. +their dependencies, license, description or the like. It has a SAT-solver built +in, for building multiple projects in the right order, including packages that +are not organized with jw-build. It automatically generates BitBake recipes and +organizes Yocto-builds incorporating your software. It supports cross +compilation with MinGW and the GNU toolchain. It's tested on Debian, OpenSUSE, +Fedora / CentOS / RHEL, Mint and many Unices. + +JW-Build is designed to be friendly to both developers and integrators. You can +cd into any given directory, run make, and expect the resulting code to work +and be testable. It has built-in support for remote Git repositories and +collaboration. Of course, it can build and package itself.