1*66e7aa38SMatt Spinler#!/bin/sh
2*66e7aa38SMatt Spinler
3*66e7aa38SMatt Spinlercd $1
4*66e7aa38SMatt Spinler
5*66e7aa38SMatt Spinlertoplevel_dirs=com
6*66e7aa38SMatt Spinlerinterfaces=`find $toplevel_dirs -name "*.interface.yaml"`
7*66e7aa38SMatt Spinler
8*66e7aa38SMatt Spinlerfor i in ${interfaces};
9*66e7aa38SMatt Spinlerdo
10*66e7aa38SMatt Spinler    iface_path=`dirname $i`/`basename $i .interface.yaml`
11*66e7aa38SMatt Spinler    iface=`echo $iface_path | sed 's/\//./g'`
12*66e7aa38SMatt Spinler    cat <<MAKEFILE
13*66e7aa38SMatt Spinler
14*66e7aa38SMatt Spinler${i%.interface.yaml}/server.cpp: ${i} ${i%.interface.yaml}/server.hpp
15*66e7aa38SMatt Spinler	@mkdir -p \`dirname \$@\`
16*66e7aa38SMatt Spinler	\$(SDBUSPLUSPLUS) -r \$(srcdir) interface server-cpp ${iface} > \$@
17*66e7aa38SMatt Spinler
18*66e7aa38SMatt Spinler${i%.interface.yaml}/server.hpp: ${i}
19*66e7aa38SMatt Spinler	@mkdir -p \`dirname \$@\`
20*66e7aa38SMatt Spinler	\$(SDBUSPLUSPLUS) -r \$(srcdir) interface server-header ${iface} > \$@
21*66e7aa38SMatt Spinler
22*66e7aa38SMatt SpinlerMAKEFILE
23*66e7aa38SMatt Spinler
24*66e7aa38SMatt Spinlerdone
25*66e7aa38SMatt Spinler
26*66e7aa38SMatt Spinlererrors=`find $toplevel_dirs -name "*.errors.yaml"`
27*66e7aa38SMatt Spinler
28*66e7aa38SMatt Spinlerfor e in ${errors};
29*66e7aa38SMatt Spinlerdo
30*66e7aa38SMatt Spinler    iface_path=`dirname $e`/`basename $e .errors.yaml`
31*66e7aa38SMatt Spinler    iface=`echo $iface_path | sed 's/\//./g'`
32*66e7aa38SMatt Spinler    cat <<MAKEFILE
33*66e7aa38SMatt Spinler
34*66e7aa38SMatt Spinler${e%.errors.yaml}/error.cpp: ${e} ${e%.errors.yaml}/error.hpp
35*66e7aa38SMatt Spinler	@mkdir -p \`dirname \$@\`
36*66e7aa38SMatt Spinler	\$(SDBUSPLUSPLUS) -r \$(srcdir) error exception-cpp ${iface} > \$@
37*66e7aa38SMatt Spinler
38*66e7aa38SMatt Spinler${e%.errors.yaml}/error.hpp: ${e}
39*66e7aa38SMatt Spinler	@mkdir -p \`dirname \$@\`
40*66e7aa38SMatt Spinler	\$(SDBUSPLUSPLUS) -r \$(srcdir) error exception-header ${iface} > \$@
41*66e7aa38SMatt Spinler
42*66e7aa38SMatt SpinlerMAKEFILE
43*66e7aa38SMatt Spinler
44*66e7aa38SMatt Spinlerdone
45*66e7aa38SMatt Spinler
46*66e7aa38SMatt Spinlerecho "libibm_dbus_cpp_SOURCES = \\"
47*66e7aa38SMatt Spinlerfor i in ${interfaces};
48*66e7aa38SMatt Spinlerdo
49*66e7aa38SMatt Spinler    echo "	${i%.interface.yaml}/server.cpp \\"
50*66e7aa38SMatt Spinlerdone
51*66e7aa38SMatt Spinlerfor e in ${errors};
52*66e7aa38SMatt Spinlerdo
53*66e7aa38SMatt Spinler    echo "	${e%.errors.yaml}/error.cpp \\"
54*66e7aa38SMatt Spinlerdone
55*66e7aa38SMatt Spinlerecho
56*66e7aa38SMatt Spinler
57*66e7aa38SMatt Spinlerecho "libibm_dbus_hpp_SOURCES = \\"
58*66e7aa38SMatt Spinlerfor i in ${interfaces};
59*66e7aa38SMatt Spinlerdo
60*66e7aa38SMatt Spinler    echo "	${i%.interface.yaml}/server.hpp \\"
61*66e7aa38SMatt Spinlerdone
62*66e7aa38SMatt Spinlerfor e in ${errors};
63*66e7aa38SMatt Spinlerdo
64*66e7aa38SMatt Spinler    echo "	${e%.errors.yaml}/error.hpp\\"
65*66e7aa38SMatt Spinlerdone
66*66e7aa38SMatt Spinler
67*66e7aa38SMatt Spinlerecho
68*66e7aa38SMatt Spinler
69*66e7aa38SMatt Spinlercat << MAKEFILE
70*66e7aa38SMatt Spinlerlibibm_dbus.cpp: \$(libibm_dbus_cpp_SOURCES)
71*66e7aa38SMatt Spinler	cat \$^ > \$@
72*66e7aa38SMatt Spinler
73*66e7aa38SMatt Spinlernobase_include_HEADERS = \$(libibm_dbus_hpp_SOURCES)
74*66e7aa38SMatt Spinler
75*66e7aa38SMatt Spinler.PHONY: clean-dbus
76*66e7aa38SMatt Spinlerclean-dbus:
77*66e7aa38SMatt Spinler	for i in \$(libibm_dbus_cpp_SOURCES) \\
78*66e7aa38SMatt Spinler	         \$(libibm_dbus_hpp_SOURCES); \\
79*66e7aa38SMatt Spinler	do \\
80*66e7aa38SMatt Spinler	    test -e \$\$i && rm \$\$i ; \\
81*66e7aa38SMatt Spinler	    test -d \`dirname \$\$i\` && rm -rf \`dirname \$\$i\` ; \\
82*66e7aa38SMatt Spinler	    true; \\
83*66e7aa38SMatt Spinler	done
84*66e7aa38SMatt SpinlerMAKEFILE
85