README.md: Add more text to README.md

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2019-06-26 09:21:54 +00:00
commit a184822289

View file

@ -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.