From d61f03c4f90d9d1dea979dc758cc13fe78d2c789 Mon Sep 17 00:00:00 2001
From: Corey Farrell <git@cfware.com>
Date: Wed, 29 Apr 2015 07:39:22 -0400
Subject: [PATCH] ARI: Fix missing dependencies.

ARI modules that are generated by 'make ari-stubs' are all dependent on
res_ari_model.  Additionally some of the same modules depend on one or more
res_stasis_* modules.

ASTERISK-25027 #close
Reported by: Corey Farrell

Change-Id: I8e07fe7e81fedacb87232f2b6f8b5f47927b4153
---
 Makefile.moddir_rules                              |  4 ++--
 build_tools/get_moduleinfo                         |  3 ++-
 res/ari.make                                       | 11 +++++++++++
 res/ari/ari_model_validators.c                     |  2 +-
 res/ari/resource_channels.c                        |  5 ++++-
 res/ari/resource_device_states.c                   |  5 +++++
 res/ari/resource_mailboxes.c                       |  5 +++++
 res/ari/resource_playbacks.c                       |  5 +++++
 res/ari/resource_recordings.c                      |  5 +++++
 res/res_ari_applications.c                         |  1 +
 res/res_ari_asterisk.c                             |  1 +
 res/res_ari_bridges.c                              |  1 +
 res/res_ari_channels.c                             |  1 +
 res/res_ari_device_states.c                        |  1 +
 res/res_ari_endpoints.c                            |  1 +
 res/res_ari_events.c                               |  1 +
 res/res_ari_mailboxes.c                            |  1 +
 res/res_ari_playbacks.c                            |  1 +
 res/res_ari_recordings.c                           |  1 +
 res/res_ari_sounds.c                               |  1 +
 rest-api-templates/ari.make.mustache               |  1 +
 rest-api-templates/ari_model_validators.c.mustache |  2 +-
 rest-api-templates/res_ari_resource.c.mustache     |  1 +
 23 files changed, 54 insertions(+), 6 deletions(-)

diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
index 939e79f800..8d8351678c 100644
--- a/Makefile.moddir_rules
+++ b/Makefile.moddir_rules
@@ -133,12 +133,12 @@ dist-clean::
 
 .%.moduleinfo: %.c
 	@echo "<member name=\"$*\" displayname=\"$(shell $(GREP) -e AST_MODULE_INFO $< | head -n 1 | cut -d '"' -f 2)\" remove_on_change=\"$(SUBDIR)/$*.o $(SUBDIR)/$*.so\">" > $@
-	$(AWK) -f $(ASTTOPDIR)/build_tools/get_moduleinfo $< >> $@
+	$(AWK) -f $(ASTTOPDIR)/build_tools/get_moduleinfo $^ >> $@
 	echo "</member>" >> $@
 
 .%.moduleinfo: %.cc
 	@echo "<member name=\"$*\" displayname=\"$(shell $(GREP) -e AST_MODULE_INFO $< | head -n 1 | cut -d '"' -f 2)\" remove_on_change=\"$(SUBDIR)/$*.oo $(SUBDIR)/$*.so\">" > $@
-	$(AWK) -f $(ASTTOPDIR)/build_tools/get_moduleinfo $< >> $@
+	$(AWK) -f $(ASTTOPDIR)/build_tools/get_moduleinfo $^ >> $@
 	echo "</member>" >> $@
 
 .moduleinfo:: $(addsuffix .moduleinfo,$(addprefix .,$(sort $(ALL_C_MODS) $(ALL_CC_MODS))))
diff --git a/build_tools/get_moduleinfo b/build_tools/get_moduleinfo
index 92bc7e9203..4dbb2942fb 100644
--- a/build_tools/get_moduleinfo
+++ b/build_tools/get_moduleinfo
@@ -1,3 +1,4 @@
 /\/\*\*\* MODULEINFO/ {printit=1; next}
-/\*\*\*\// {if (printit) exit}
+/<support_level>/ {if (gotsupportlevel) { next }; gotsupportlevel=1}
+/\*\*\*\// {printit=0}
 /.*/ {if (printit) print}
diff --git a/res/ari.make b/res/ari.make
index f9a87d3fbc..133f2aefb0 100644
--- a/res/ari.make
+++ b/res/ari.make
@@ -18,46 +18,57 @@
 #
 
 res_ari_asterisk.so: ari/resource_asterisk.o
+.res_ari_asterisk.moduleinfo: ari/resource_asterisk.c
 
 ari/resource_asterisk.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_asterisk)
 
 res_ari_endpoints.so: ari/resource_endpoints.o
+.res_ari_endpoints.moduleinfo: ari/resource_endpoints.c
 
 ari/resource_endpoints.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_endpoints)
 
 res_ari_channels.so: ari/resource_channels.o
+.res_ari_channels.moduleinfo: ari/resource_channels.c
 
 ari/resource_channels.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_channels)
 
 res_ari_bridges.so: ari/resource_bridges.o
+.res_ari_bridges.moduleinfo: ari/resource_bridges.c
 
 ari/resource_bridges.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_bridges)
 
 res_ari_recordings.so: ari/resource_recordings.o
+.res_ari_recordings.moduleinfo: ari/resource_recordings.c
 
 ari/resource_recordings.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_recordings)
 
 res_ari_sounds.so: ari/resource_sounds.o
+.res_ari_sounds.moduleinfo: ari/resource_sounds.c
 
 ari/resource_sounds.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_sounds)
 
 res_ari_playbacks.so: ari/resource_playbacks.o
+.res_ari_playbacks.moduleinfo: ari/resource_playbacks.c
 
 ari/resource_playbacks.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_playbacks)
 
 res_ari_device_states.so: ari/resource_device_states.o
+.res_ari_device_states.moduleinfo: ari/resource_device_states.c
 
 ari/resource_device_states.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_device_states)
 
 res_ari_mailboxes.so: ari/resource_mailboxes.o
+.res_ari_mailboxes.moduleinfo: ari/resource_mailboxes.c
 
 ari/resource_mailboxes.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_mailboxes)
 
 res_ari_events.so: ari/resource_events.o
+.res_ari_events.moduleinfo: ari/resource_events.c
 
 ari/resource_events.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_events)
 
 res_ari_applications.so: ari/resource_applications.o
+.res_ari_applications.moduleinfo: ari/resource_applications.c
 
 ari/resource_applications.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_applications)
 
diff --git a/res/ari/ari_model_validators.c b/res/ari/ari_model_validators.c
index 97435d0252..fe61ad4a20 100644
--- a/res/ari/ari_model_validators.c
+++ b/res/ari/ari_model_validators.c
@@ -24,7 +24,7 @@
  * !!!!!                               DO NOT EDIT                        !!!!!
  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  * This file is generated by a mustache template. Please see the original
- * template in rest-api-templates/ari_model_validators.h.mustache
+ * template in rest-api-templates/ari_model_validators.c.mustache
  */
 
 #include "asterisk.h"
diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c
index 5943158317..f722802d81 100644
--- a/res/ari/resource_channels.c
+++ b/res/ari/resource_channels.c
@@ -24,7 +24,10 @@
  */
 
 /*** MODULEINFO
-	<depend type="module">res_stasis_app_playback</depend>
+	<depend type="module">res_stasis_answer</depend>
+	<depend type="module">res_stasis_playback</depend>
+	<depend type="module">res_stasis_recording</depend>
+	<depend type="module">res_stasis_snoop</depend>
 	<support_level>core</support_level>
  ***/
 
diff --git a/res/ari/resource_device_states.c b/res/ari/resource_device_states.c
index 621910e1c9..7239e1170e 100644
--- a/res/ari/resource_device_states.c
+++ b/res/ari/resource_device_states.c
@@ -23,6 +23,11 @@
  * \author Kevin Harwell <kharwell@digium.com>
  */
 
+/*** MODULEINFO
+	<depend type="module">res_stasis_device_states</depend>
+	<support_level>core</support_level>
+ ***/
+
 #include "asterisk.h"
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
diff --git a/res/ari/resource_mailboxes.c b/res/ari/resource_mailboxes.c
index 0d9bac7040..ec4c8e8d9d 100644
--- a/res/ari/resource_mailboxes.c
+++ b/res/ari/resource_mailboxes.c
@@ -23,6 +23,11 @@
  * \author Jonathan Rose <jrose@digium.com>
  */
 
+/*** MODULEINFO
+	<depend type="module">res_stasis_mailbox</depend>
+	<support_level>core</support_level>
+ ***/
+
 #include "asterisk.h"
 #include "asterisk/stasis_app_mailbox.h"
 
diff --git a/res/ari/resource_playbacks.c b/res/ari/resource_playbacks.c
index 3ef6710ace..9f5975449a 100644
--- a/res/ari/resource_playbacks.c
+++ b/res/ari/resource_playbacks.c
@@ -23,6 +23,11 @@
  * \author David M. Lee, II <dlee@digium.com>
  */
 
+/*** MODULEINFO
+	<depend type="module">res_stasis_playback</depend>
+	<support_level>core</support_level>
+ ***/
+
 #include "asterisk.h"
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
diff --git a/res/ari/resource_recordings.c b/res/ari/resource_recordings.c
index bd273aa628..28fa735a83 100644
--- a/res/ari/resource_recordings.c
+++ b/res/ari/resource_recordings.c
@@ -23,6 +23,11 @@
  * \author David M. Lee, II <dlee@digium.com>
  */
 
+/*** MODULEINFO
+	<depend type="module">res_stasis_recording</depend>
+	<support_level>core</support_level>
+ ***/
+
 #include "asterisk.h"
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
diff --git a/res/res_ari_applications.c b/res/res_ari_applications.c
index 0b09213d95..e81d164989 100644
--- a/res/res_ari_applications.c
+++ b/res/res_ari_applications.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_asterisk.c b/res/res_ari_asterisk.c
index c90437905c..6118297682 100644
--- a/res/res_ari_asterisk.c
+++ b/res/res_ari_asterisk.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_bridges.c b/res/res_ari_bridges.c
index e0b9f789f7..860ff1dc03 100644
--- a/res/res_ari_bridges.c
+++ b/res/res_ari_bridges.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_channels.c b/res/res_ari_channels.c
index 0d1334eb04..d1ae80196b 100644
--- a/res/res_ari_channels.c
+++ b/res/res_ari_channels.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_device_states.c b/res/res_ari_device_states.c
index 24ea554316..f15e3da789 100644
--- a/res/res_ari_device_states.c
+++ b/res/res_ari_device_states.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_endpoints.c b/res/res_ari_endpoints.c
index 8d8ed716c1..4d54ff3bd4 100644
--- a/res/res_ari_endpoints.c
+++ b/res/res_ari_endpoints.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_events.c b/res/res_ari_events.c
index c601f571fa..40a9dfe8ca 100644
--- a/res/res_ari_events.c
+++ b/res/res_ari_events.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_mailboxes.c b/res/res_ari_mailboxes.c
index c1c7e48183..2b3404f2be 100644
--- a/res/res_ari_mailboxes.c
+++ b/res/res_ari_mailboxes.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_playbacks.c b/res/res_ari_playbacks.c
index 8155b2a5ac..de38ad86da 100644
--- a/res/res_ari_playbacks.c
+++ b/res/res_ari_playbacks.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_recordings.c b/res/res_ari_recordings.c
index 0657fa3115..dede53c484 100644
--- a/res/res_ari_recordings.c
+++ b/res/res_ari_recordings.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/res/res_ari_sounds.c b/res/res_ari_sounds.c
index 107f47cdf0..c53330d54f 100644
--- a/res/res_ari_sounds.c
+++ b/res/res_ari_sounds.c
@@ -33,6 +33,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
diff --git a/rest-api-templates/ari.make.mustache b/rest-api-templates/ari.make.mustache
index 50293cf11a..0e1b7a0f77 100644
--- a/rest-api-templates/ari.make.mustache
+++ b/rest-api-templates/ari.make.mustache
@@ -20,6 +20,7 @@
 
 {{#apis}}
 res_ari_{{c_name}}.so: ari/resource_{{c_name}}.o
+.res_ari_{{c_name}}.moduleinfo: ari/resource_{{c_name}}.c
 
 ari/resource_{{c_name}}.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_{{c_name}})
 
diff --git a/rest-api-templates/ari_model_validators.c.mustache b/rest-api-templates/ari_model_validators.c.mustache
index 9d31671563..be20515a49 100644
--- a/rest-api-templates/ari_model_validators.c.mustache
+++ b/rest-api-templates/ari_model_validators.c.mustache
@@ -22,7 +22,7 @@
  /*
 {{> do-not-edit}}
  * This file is generated by a mustache template. Please see the original
- * template in rest-api-templates/ari_model_validators.h.mustache
+ * template in rest-api-templates/ari_model_validators.c.mustache
  */
 
 #include "asterisk.h"
diff --git a/rest-api-templates/res_ari_resource.c.mustache b/rest-api-templates/res_ari_resource.c.mustache
index 896ee0d1dd..4cc9e0db04 100644
--- a/rest-api-templates/res_ari_resource.c.mustache
+++ b/rest-api-templates/res_ari_resource.c.mustache
@@ -38,6 +38,7 @@
 
 /*** MODULEINFO
 	<depend type="module">res_ari</depend>
+	<depend type="module">res_ari_model</depend>
 	<depend type="module">res_stasis</depend>
 	<support_level>core</support_level>
  ***/
-- 
GitLab