[Build-System] Allow full path or git clone url (with arguments) in modules.conf to build out of tree modules.

--- modules.conf ---
/full/path/to/out-of-tree/mod_tobuild
mod_somewherethere|https://github.com/your_account/your_mod_repo.git -b branch
This commit is contained in:
Andrey Volk
2020-04-02 23:17:32 +04:00
parent 5239c6dcb0
commit 7f1a8a69b0
2 changed files with 40 additions and 10 deletions
+37 -7
View File
@@ -19,21 +19,51 @@ $(OUR_MODULES) $(OUR_CLEAN_MODULES) $(OUR_INSTALL_MODULES) $(OUR_UNINSTALL_MODUL
modname=`echo $@ | sed -e 's|-.*||' | sed -e 's|^.*/||'`; \
enabled=`echo $(CONF_MODULES) | grep -w $$modname`; \
if ! test -z "$$enabled"; then \
confmoddir=`cat $(switch_builddir)/modules.conf | sed -e 's| ||' | grep $$modname$$ | sed -e 's|#||' | head -n 1`; \
confmoddir=`cat $(switch_builddir)/modules.conf | sed -e 's| ||' | sed 's/|.*//' | grep $$modname$$ | sed -e 's|#||' | head -n 1`; \
modsource=`cat $(switch_builddir)/modules.conf | grep "$$modname.*|" | sed 's/.*|//' | head -n 1`; \
if test -z "$$confmoddir" ; then \
moddir=$@ ; \
buildmoddir=$(switch_builddir)/src/mod/$@ ;\
else \
if test -d "$(switch_srcdir)/src/mod/$$confmoddir" ; then \
moddir="$(switch_srcdir)/src/mod/$$confmoddir" ; \
buildmoddir="$(switch_builddir)/src/mod/$$confmoddir" ; \
else \
if [[ $$confmoddir == /* ]]; then \
moddir="$$confmoddir" ; \
buildmoddir="$(switch_builddir)/src/mod/$$confmoddir" ; \
buildmoddir="$$moddir" ; \
else \
if test -d "$(switch_srcdir)/src/mod/$$confmoddir" ; then \
moddir="$(switch_srcdir)/src/mod/$$confmoddir" ; \
buildmoddir="$(switch_builddir)/src/mod/$$confmoddir" ; \
else \
if ! test -z "$$modsource" ; then \
moddir="$(switch_srcdir)/src/mod/outoftree/$$confmoddir" ; \
buildmoddir="$(switch_builddir)/src/mod/outoftree/$$confmoddir" ; \
if ! test -d "$$buildmoddir"; then \
echo "Cloning from git: $$modsource" ; \
mkdir -p $$buildmoddir ; \
git clone $$modsource $$buildmoddir ; \
fi ; \
if ! test -d "$$buildmoddir"; then \
echo ; echo "WARNING There is no $$buildmoddir...failing ;" ; \
fail=yes ; \
fi ; \
else \
moddir="$$confmoddir" ; \
buildmoddir="$(switch_builddir)/src/mod/$$confmoddir" ; \
fi ; \
fi ; \
fi ; \
fi ; \
if test -f "$$buildmoddir/bootstrap.sh" -a ! -f "$$buildmoddir/configure" -a ! -f "$$buildmoddir/configure.sh" ; then \
cd $$buildmoddir && MODDIR=$$moddir MODNAME=$$modname BASE=$(switch_builddir) PKG_CONFIG_PATH=$(switch_builddir)/build/standalone_module:$PKG_CONFIG_PATH eval $$buildmoddir/bootstrap.sh ; \
fi ; \
if test -f "$$buildmoddir/configure.sh" -a ! -f "$$buildmoddir/Makefile" ; then \
cd $$buildmoddir && MODDIR=$$moddir MODNAME=$$modname BASE=$(switch_builddir) PKG_CONFIG_PATH=$(switch_builddir)/build/standalone_module:$PKG_CONFIG_PATH eval $$buildmoddir/configure.sh ; \
else \
if test -f "$$buildmoddir/configure" -a ! -f "$$buildmoddir/Makefile" ; then \
cd $$buildmoddir && MODDIR=$$moddir MODNAME=$$modname BASE=$(switch_builddir) PKG_CONFIG_PATH=$(switch_builddir)/build/standalone_module:$PKG_CONFIG_PATH eval $$buildmoddir/configure ; \
fi ; \
fi ; \
if test -z "$$target" ; then target="all" ; fi ; \
if ! test -f $$moddir/$$modname.c && ! test -f $$moddir/$$modname.cpp && test $$modname != "mod_com_g729" ; \
if ! test -z "$$fail" || ! test -f $$moddir/$$modname.c && ! test -f $$moddir/$$modname.cpp && test $$modname != "mod_com_g729" ; \
then echo ; echo "WARNING $$modname is not a valid FreeSWITCH module dir, skipping it..." ; else \
if test "$$target" != "print_tests" ; then echo; echo making $$target $$modname ; fi;\
test -d "$$buildmoddir" || mkdir -p $$buildmoddir ; \