This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
osmith gerrit-no-reply at lists.osmocom.orgosmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-dev/+/25098 )
Change subject: gen_makefile.py: add make rules for all projects
......................................................................
gen_makefile.py: add make rules for all projects
Allow to easily build any Osmocom project in a build directory generated
by osmo-dev, even if it is not listed in the specified .deps file. This
avoids the need to set up a new build directory and build common
dependencies (e.g. libosmocore) again.
All rules that act on multiple projects (default make target "all",
"clone", "clean" "all-install") will still only take the selected
projects into account.
The idea is to extend deps.all on demand. Currently it contains
everything from 3G+2G.deps plus:
- osmo-bts
- osmo-gbproxy
- osmo-pcap
- osmo-pcu
Change-Id: Ibb932f36a9f97d6e9f3d69f4ce63b738fbb640fe
---
M 2G.deps
M 3G+2G.deps
A all.deps
M gen_makefile.py
4 files changed, 59 insertions(+), 10 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-dev refs/changes/98/25098/1
diff --git a/2G.deps b/2G.deps
index c090b6e..2d0745b 100644
--- a/2G.deps
+++ b/2G.deps
@@ -1,3 +1,4 @@
+# Note: Add new projects to all.deps too
# project build these first
libosmocore
libosmo-abis libosmocore
diff --git a/3G+2G.deps b/3G+2G.deps
index b4372fd..7f9009e 100644
--- a/3G+2G.deps
+++ b/3G+2G.deps
@@ -1,3 +1,4 @@
+# Note: Add new projects to all.deps too
# project build these first
libosmocore
libosmo-abis libosmocore
diff --git a/all.deps b/all.deps
new file mode 100644
index 0000000..7685ed5
--- /dev/null
+++ b/all.deps
@@ -0,0 +1,26 @@
+# List of *all* Osmocom projects that one might want to build with osmo-dev.
+# Make targets get created for these projects, even if they are not in the
+# .deps file passed to gen_makefile.py, so they can be conveniently built from
+# any build dir generated by osmo-dev.
+
+# project build these first
+libasn1c
+libosmo-abis libosmocore
+libosmo-netif libosmo-abis
+libosmo-sccp libosmo-netif
+libosmocore
+libsmpp34
+osmo-bsc libosmo-sccp osmo-mgw
+osmo-bts libosmocore, libosmo-abis
+osmo-gbproxy libosmocore
+osmo-ggsn libosmocore
+osmo-hlr libosmo-abis
+osmo-iuh libosmo-sccp libasn1c
+osmo-mgw libosmo-netif
+osmo-msc osmo-iuh osmo-mgw libsmpp34 osmo-hlr
+osmo-pcap libosmocore
+osmo-pcu libosmocore
+osmo-sgsn osmo-iuh osmo-ggsn osmo-hlr
+osmo-sip-connector libosmocore
+osmo-smlc libosmo-sccp
+osmo-trx libosmocore
diff --git a/gen_makefile.py b/gen_makefile.py
index ad42978..fb81aac 100755
--- a/gen_makefile.py
+++ b/gen_makefile.py
@@ -148,7 +148,9 @@
return {}
return dict(read_projects_deps(path))
-def gen_make(proj, deps, configure_opts, jobs, make_dir, src_dir, build_dir, url, push_url, sudo_make_install, no_ldconfig, ldconfig_without_sudo, make_check):
+def gen_make(proj, deps, configure_opts, jobs, make_dir, src_dir, build_dir,
+ url, push_url, sudo_make_install, no_ldconfig,
+ ldconfig_without_sudo, make_check, deps_file):
src_proj = os.path.join(src_dir, proj)
if proj == 'openbsc':
src_proj = os.path.join(src_proj, 'openbsc')
@@ -165,7 +167,7 @@
configure_opts_str = ''
return r'''
-### {proj} ###
+### {proj} ({deps_file}) ###
{proj}_configure_files := $(shell find {src_proj} -name "Makefile.am" -or -name "*.in" -and -not -name "Makefile.in" -and -not -name "config.h.in" )
{proj}_files := $(shell find {src_proj} -name "*.[hc]" -or -name "*.py" -or -name "*.cpp" -or -name "*.tpl" -or -name "*.map")
@@ -228,6 +230,7 @@
src_proj=make_to_src_proj,
build_proj=make_to_build_proj,
build_to_src=build_to_src,
+ deps_file=deps_file,
deps_installed=' '.join(['.make.%s.install' % d for d in deps]),
deps_reinstall=' '.join(['%s-reinstall' %d for d in deps]),
configure_opts=configure_opts_str,
@@ -312,13 +315,31 @@
out.write('all-install: \\\n\t' + ' \\\n\t'.join([ '.make.%s.install' % p for p, d in projects_deps ]) + '\n\n')
- for proj, deps in projects_deps:
- all_config_opts = []
- all_config_opts.extend(configure_opts.get('ALL') or [])
- all_config_opts.extend(configure_opts.get(proj) or [])
- out.write(gen_make(proj, deps, all_config_opts, args.jobs,
- make_dir, args.src_dir, build_dir, args.url, args.push_url,
- args.sudo_make_install, args.no_ldconfig,
- args.ldconfig_without_sudo, args.make_check))
+ # iterate over projects in the selected projects_deps file (e.g. 2G.deps)
+ # first, then iterate over all projects (all.deps) and add missing ones. this
+ # allows overriding projects and dependencies in the selected file, but also
+ # having make rules for all projects available to quickly build them without
+ # setting up a new build directory first.
+ projects = [x[0] for x in projects_deps]
+ for is_all in [False, True]:
+ deps_file = args.projects_and_deps_file
+ proj_deps = projects_deps
+
+ if is_all:
+ deps_file = "all.deps"
+ deps_file_path = os.path.join(os.path.dirname(__file__), deps_file)
+ proj_deps = read_projects_deps(deps_file_path)
+
+ for proj, deps in proj_deps:
+ if is_all and proj in projects:
+ continue
+ all_config_opts = []
+ all_config_opts.extend(configure_opts.get('ALL') or [])
+ all_config_opts.extend(configure_opts.get(proj) or [])
+ out.write(gen_make(proj, deps, all_config_opts, args.jobs,
+ make_dir, args.src_dir, build_dir, args.url, args.push_url,
+ args.sudo_make_install, args.no_ldconfig,
+ args.ldconfig_without_sudo, args.make_check,
+ deps_file))
# vim: expandtab tabstop=2 shiftwidth=2
--
To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25098
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-dev
Gerrit-Branch: master
Gerrit-Change-Id: Ibb932f36a9f97d6e9f3d69f4ce63b738fbb640fe
Gerrit-Change-Number: 25098
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210729/82e50f5a/attachment.htm>