mirror of https://gerrit.osmocom.org/osmo-dev
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
This commit is contained in:
parent
107f35d3da
commit
93bd52300e
4
all.deps
4
all.deps
|
@ -30,3 +30,7 @@ osmo-upf libosmocore libgtpnl
|
|||
# can only clone these
|
||||
docker-playground
|
||||
osmo-ttcn3-hacks
|
||||
osmocom-bb
|
||||
|
||||
# configure.ac not in topdir of repository
|
||||
osmocom-bb_layer23 libosmocore
|
||||
|
|
|
@ -154,16 +154,35 @@ def read_configure_opts(path):
|
|||
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 @@ def gen_make(proj, deps, configure_opts, jobs, make_dir, src_dir, build_dir, url
|
|||
\) \
|
||||
-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 @@ def gen_make(proj, deps, configure_opts, jobs, make_dir, src_dir, build_dir, url
|
|||
|
||||
'''.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 @@ def gen_make(proj, deps, configure_opts, jobs, make_dir, src_dir, build_dir, url
|
|||
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 @@ with open(output, 'w') as out:
|
|||
out.write(r'''
|
||||
default: usrp
|
||||
|
||||
#
|
||||
# Convenience targets for whole networks
|
||||
#
|
||||
.PHONY: cn
|
||||
cn: \
|
||||
osmo-ggsn \
|
||||
|
@ -330,6 +348,15 @@ usrp: \
|
|||
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"
|
||||
|
|
Loading…
Reference in New Issue