osmith has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-dev/+/27446 )


Change subject: make: add support for "mobile" from osmocom-bb
......................................................................

make: add support for "mobile" from osmocom-bb

Allow building and installing the "mobile" application from
osmocom-bb.git's src/host/layer23 dir.

Change-Id: Ic75cca703e317eaee593b4d6c78784309c056f17
---
M all.deps
M gen_makefile.py
2 files changed, 43 insertions(+), 12 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-dev refs/changes/46/27446/1

diff --git a/all.deps b/all.deps
index 20972a8..85b8d34 100644
--- a/all.deps
+++ b/all.deps
@@ -30,3 +30,7 @@
 # can only clone these
 docker-playground
 osmo-ttcn3-hacks
+osmocom-bb
+
+# configure.ac not in topdir of repository
+osmocom-bb_layer23     libosmocore
diff --git a/gen_makefile.py b/gen_makefile.py
index 2e9cc24..d574565 100755
--- a/gen_makefile.py
+++ b/gen_makefile.py
@@ -154,16 +154,35 @@
     return {}
   return dict(read_projects_deps(path))

+def gen_makefile_clone(proj, src, src_proj, url, push_url):
+  if proj == "osmocom-bb_layer23":
+    return f'''
+.make.{proj}.clone: .make.osmocom-bb.clone
+       @echo -e "\\n\\n\\n===== $@\\n"
+       test -L {src_proj} || ln -s osmocom-bb/src/host/layer23 {src_proj}
+       touch $@
+  '''
+
+  return f'''
+.make.{proj}.clone:
+       @echo -e "\\n\\n\\n===== $@\\n"
+       test -d {src} || mkdir -p {src}
+       test -d {src_proj} || ( git -C {src} clone "{url}/{proj}" "{proj}" && 
git -C "{src}/{proj}" remote set-url --push origin "{push_url}/{proj}" )
+       sync
+       touch $@
+  '''
+
 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):
   src_proj = os.path.join(src_dir, proj)
   if proj == 'openbsc':
     src_proj = os.path.join(src_proj, 'openbsc')
   build_proj = os.path.join(build_dir, proj)

-  make_to_src = os.path.relpath(src_dir, make_dir)
-  make_to_src_proj = os.path.relpath(src_proj, make_dir)
+  src = os.path.relpath(src_dir, make_dir)
+  src_proj = os.path.relpath(src_proj, make_dir)
   make_to_build_proj = os.path.relpath(build_proj, make_dir)
   build_to_src = os.path.relpath(src_proj, build_proj)
+  push_url = push_url or url

   if configure_opts:
     configure_opts_str = ' '.join(configure_opts)
@@ -188,12 +207,7 @@
     \) \
     -and -not -name "config.h" 2>/dev/null)

-.make.{proj}.clone:
-       @echo -e "\n\n\n===== $@\n"
-       test -d {src} || mkdir -p {src}
-       test -d {src_proj} || ( git -C {src} clone "{url}/{proj}" "{proj}" && 
git -C "{src}/{proj}" remote set-url --push origin "{push_url}/{proj}" )
-       sync
-       touch $@
+{clone_rule}

 .make.{proj}.autoconf: .make.{proj}.clone {src_proj}/configure.ac
        if {distclean_cond}; then $(MAKE) {proj}-distclean; fi
@@ -248,13 +262,14 @@

 '''.format(
     url=url,
-    push_url=push_url or url,
+    push_url=push_url,
     proj=proj,
     jobs=jobs,
-    src=make_to_src,
-    src_proj=make_to_src_proj,
+    src=src,
+    src_proj=src_proj,
     build_proj=make_to_build_proj,
     build_to_src=build_to_src,
+    clone_rule=gen_makefile_clone(proj, src, src_proj, url, push_url),
     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,
@@ -264,7 +279,7 @@
     check='check' if make_check else '',
     docker_cmd=f'{args.docker_cmd} ' if args.docker_cmd else '',
     cflags='CFLAGS=-g ' if args.build_debug else '',
-    distclean_cond=f'[ -e {make_to_src_proj}/config.status ]' if 
args.auto_distclean else 'false'
+    distclean_cond=f'[ -e {src_proj}/config.status ]' if args.auto_distclean 
else 'false'
     )


@@ -305,6 +320,9 @@
   out.write(r'''
 default: usrp

+#
+# Convenience targets for whole networks
+#
 .PHONY: cn
 cn: \
        osmo-ggsn \
@@ -330,6 +348,15 @@
        osmo-trx \
        $(NULL)

+#
+# Convenience targets for components in subdirs of repositories
+#
+.PHONY: mobile
+mobile: osmocom-bb_layer23
+
+#
+# Other convenience targets
+#
 .PHONY: all_debug
 all_debug:
        $(MAKE) --dry-run -d all | grep "is newer than target"

--
To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/27446
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-dev
Gerrit-Branch: master
Gerrit-Change-Id: Ic75cca703e317eaee593b4d6c78784309c056f17
Gerrit-Change-Number: 27446
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <[email protected]>
Gerrit-MessageType: newchange

Reply via email to