Osmocom Top-level Makefile and dev tools
Go to file
Neels Hofmeyr 450dac79c3 gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00
src add src scripts 2017-08-22 15:58:51 +02:00
.gitignore add src scripts 2017-08-22 15:58:51 +02:00
3G+2G.deps initial gen_makefile.py with config 2017-08-22 15:25:13 +02:00
README gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00
default.opts gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00
external-tests.opts gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00
gen_makefile.py gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00
iu.opts gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00
transcoding.opts gen_makefile: allow combining several .opts files 2017-08-22 19:27:08 +02:00

README

This provides a set of top-level makefiles to build variants of the Osmocom
source trees. It is inteded for the core network components and related
projects, but works generically.

The idea is to have all your Osmocom git clones in ./src, while keeping one or
more separate build trees in ./make-*.

Run ./gen_makefile.py with a choice of projects (2G only or also 3G?)
and a choice of configure options, for example:

  ./gen_makefile.py 3G+2G.deps default.opts iu.opts

This generates a new dir containing a Makefile. When you run make in it, this
will clone the source trees (if not present yet) and build all of them in the
right order:

  cd make-3G+2G-default+iu
  make

If you make modifications in one of the source trees, this Makefile will pick
it up, rebuild the project and also rebuild all dependencies (according to the
*.deps file the Makefile was generated from).

If you modify the *.deps or *.opts file, you can easily run 'make regen' in a
make-* subdir to regenerate the Makefile from the same files.

In your make-* subdir there are empty status files that are touched for every
completed make target. From these, 'make' can detect what needs to be rebuilt.
You can manually remove them to force a rebuild of a specific target.

For example, if you 'rm .make.libosmocore.autoconf', libosmocore and all
projects depending on libosmocore will be rebuilt from scratch.

For more details on the *.opts and *.deps syntax, read the docs at the top of
./gen_makefile.py.

It is also easily possible to keep sources and build trees in various
configurations, see the command line options of ./gen_makefile.py.