diff --git a/make/py-mod.mk b/make/py-mod.mk index d61856ac..cf8ae627 100644 --- a/make/py-mod.mk +++ b/make/py-mod.mk @@ -14,6 +14,11 @@ ifneq ($(PY_SYMBOL_FILTER),) PY_GENERATE_INIT_PY += --symbol-filter "$(PY_SYMBOL_FILTER)" endif +PY_INIT_SUBMODULES ?= +ifneq ($(PY_INIT_SUBMODULES),) + PY_GENERATE_INIT_PY += --submodules "$(PY_INIT_SUBMODULES)" +endif + #leftparen := ( #PY_EXPORT ?= $(shell sed '/\(class\|def\) ..*\# *export/ !d; s/\(class\|def\) *//; s/[$(leftparen):].*//' $(PY_SRC_PY)) diff --git a/scripts/python-tools.sh b/scripts/python-tools.sh index 657204da..8d2e593d 100644 --- a/scripts/python-tools.sh +++ b/scripts/python-tools.sh @@ -68,6 +68,13 @@ cmd_create_init() done done fi + + local submodule + for submodule in $submodules; do + echo "from . import $submodule as $submodule" + __add_seen $submodule + done + if [ "$import_submodules" = 1 ]; then for f in $files; do [ -f $f/__init__.py ] || continue @@ -90,7 +97,8 @@ cmd_create_init() myname=`basename $0` -eval set -- `getopt -l 'symbol-filter:,extract-filter:,module:' -o 'he:m:' "$@"` +submodules="" +eval set -- `getopt -l 'symbol-filter:,extract-filter:,module:,submodules:' -o 'he:m:' "$@"` while [ "$1" != -- ]; do case $1 in -e|--extract-filter) @@ -105,6 +113,10 @@ case $1 in module=$2 shift ;; + -m|--submodules) + submodules="$submodules $2" + shift + ;; -h|--help) usage 0 ;;