summaryrefslogtreecommitdiffstats
path: root/generate_makefile.sh
diff options
context:
space:
mode:
Diffstat (limited to 'generate_makefile.sh')
-rwxr-xr-xgenerate_makefile.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/generate_makefile.sh b/generate_makefile.sh
new file mode 100755
index 0000000..e0f0511
--- /dev/null
+++ b/generate_makefile.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+toplevel_dirs=xyz
+interfaces=`find $toplevel_dirs -name "*.interface.yaml"`
+
+for i in ${interfaces};
+do
+ iface_path=`dirname $i`/`basename $i .interface.yaml`
+ iface=`echo $iface_path | sed 's/\//./g'`
+ cat <<MAKEFILE
+
+${i%.interface.yaml}/server.cpp: ${i} ${i%.interface.yaml}/server.hpp
+ @mkdir -p \`dirname \$@\`
+ sdbus++ -r \$(srcdir) interface server-cpp ${iface} > \$@
+
+${i%.interface.yaml}/server.hpp: ${i}
+ @mkdir -p \`dirname \$@\`
+ sdbus++ -r \$(srcdir) interface server-header ${iface} > \$@
+
+MAKEFILE
+
+done
+
+echo "libphosphor_dbus_cpp_SOURCES = \\"
+for i in ${interfaces};
+do
+ echo " ${i%.interface.yaml}/server.cpp \\"
+done
+echo
+
+echo "libphosphor_dbus_hpp_SOURCES = \\"
+for i in ${interfaces};
+do
+ echo " ${i%.interface.yaml}/server.hpp \\"
+done
+echo
+
+cat << MAKEFILE
+libphosphor_dbus.cpp: \$(libphosphor_dbus_cpp_SOURCES)
+ cat \$^ > \$@
+
+nobase_include_HEADERS = \$(libphosphor_dbus_hpp_SOURCES)
+
+.PHONY: clean-dbus
+clean-dbus:
+ for i in \$(libphosphor_dbus_cpp_SOURCES) \\
+ \$(libphosphor_dbus_hpp_SOURCES); \\
+ do \\
+ test -e \$\$i && rm \$\$i ; \\
+ test -d \`dirname \$\$i\` && rmdir -p \`dirname \$\$i\` ; \\
+ true; \\
+ done
+MAKEFILE
OpenPOWER on IntegriCloud