From 48ae9f0d4f1b7b1f9fd96d222fad4de9c4187e9a Mon Sep 17 00:00:00 2001
From: Russell Bryant <russell@russellbryant.com>
Date: Thu, 22 Jun 2006 15:38:13 +0000
Subject: [PATCH] - convert the 'uninstall' target to use separate targets to
 process each   subdirectory instead of a for loop - remove the FORCE target
 from the main Makefile and add the couple places   I used it to the .PHONY
 target.  .PHONY does the same thing and is a built-in   more efficient way of
 doing it. - add a bunch more targets to .PHONY ...

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 Makefile          | 17 +++++++++--------
 agi/Makefile      |  2 +-
 apps/Makefile     |  2 +-
 cdr/Makefile      |  2 +-
 channels/Makefile |  2 +-
 codecs/Makefile   |  2 +-
 formats/Makefile  |  2 +-
 funcs/Makefile    |  2 +-
 pbx/Makefile      |  2 +-
 res/Makefile      |  2 +-
 utils/Makefile    |  2 +-
 11 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/Makefile b/Makefile
index 8b32683716..e03fe7177d 100644
--- a/Makefile
+++ b/Makefile
@@ -13,8 +13,6 @@
 
 .EXPORT_ALL_VARIABLES:
 
-.PHONY: sounds clean clean-depend dist-clean all depend
-
 # Create OPTIONS variable
 OPTIONS=
 
@@ -273,6 +271,7 @@ SUBDIRS_CLEAN_DEPEND:=$(SUBDIRS:%=%-clean-depend)
 MOD_SUBDIRS_DEPEND:=$(MOD_SUBDIRS:%=%-depend)
 OTHER_SUBDIRS_DEPEND:=$(OTHER_SUBDIRS:%=%-depend)
 SUBDIRS_DEPEND:=$(MOD_SUBDIRS_DEPEND) $(OTHER_SUBDIRS_DEPEND)
+SUBDIRS_UNINSTALL:=$(SUBDIRS:%=%-uninstall)
 
 OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \
 	translate.o file.o pbx.o cli.o md5.o term.o \
@@ -371,10 +370,10 @@ _all: all
 
 all: cleantest config.status menuselect.makeopts depend asterisk $(SUBDIRS)
 
-$(MOD_SUBDIRS): FORCE
+$(MOD_SUBDIRS):
 	@CFLAGS="$(MOD_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C $@
 
-$(OTHER_SUBDIRS): FORCE 
+$(OTHER_SUBDIRS):
 	@CFLAGS="$(OTHER_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C $@
 
 config.status: configure
@@ -816,8 +815,6 @@ TAGS: .tags-depend .tags-sources
 
 etags: TAGS
 
-FORCE:
-
 %_env:
 	$(MAKE) -C $(shell echo $@ | sed "s/_env//g") env
 
@@ -837,7 +834,10 @@ cleantest:
 		$(MAKE) defaults.h;\
 	fi
 
-_uninstall:
+$(SUBDIRS_UNINSTALL):
+	@$(MAKE) -C $(@:-uninstall=) uninstall
+
+_uninstall: $(SUBDIRS_UNINSTALL)
 	rm -f $(DESTDIR)$(MODULES_DIR)/*
 	rm -f $(DESTDIR)$(ASTSBINDIR)/*asterisk*
 	rm -f $(DESTDIR)$(ASTSBINDIR)/astgenkey
@@ -845,7 +845,6 @@ _uninstall:
 	rm -rf $(DESTDIR)$(ASTHEADERDIR)
 	rm -rf $(DESTDIR)$(ASTDATADIR)/firmware
 	rm -rf $(DESTDIR)$(ASTMANDIR)/man8
-	for x in $(SUBDIRS); do $(MAKE) -C $$x uninstall || exit 1 ; done
 	$(MAKE) -C sounds uninstall
 
 uninstall: _uninstall
@@ -883,3 +882,5 @@ mxml/libmxml.a:
 makeopts.xml: $(foreach dir,$(MOD_SUBDIRS),$(dir)/*.c) build_tools/cflags.xml sounds/sounds.xml
 	@echo "Generating list of available modules ..."
 	@build_tools/prep_moduledeps > $@
+
+.PHONY: sounds clean clean-depend dist-clean all _all depend cleantest uninstall _uninstall uninstall-all dont-optimize valgrind $(SUBDIRS_INSTALL) $(SUBDIRS_CLEAN) $(SUBDIRS_CLEAN_DEPEND) $(SUBDIRS_DEPEND) $(SUBDIRS_UNINSTALL)
diff --git a/agi/Makefile b/agi/Makefile
index d73f2382cc..e7a2107429 100644
--- a/agi/Makefile
+++ b/agi/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 AGIS=agi-test.agi eagi-test eagi-sphinx-test jukebox.agi
 
diff --git a/apps/Makefile b/apps/Makefile
index 0128582021..3601da45c6 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/cdr/Makefile b/cdr/Makefile
index 1b4df79785..cfc6fbfa5b 100644
--- a/cdr/Makefile
+++ b/cdr/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/channels/Makefile b/channels/Makefile
index 93429b6b42..a231ded1f5 100644
--- a/channels/Makefile
+++ b/channels/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/codecs/Makefile b/codecs/Makefile
index 1528ee374f..d6e304be20 100644
--- a/codecs/Makefile
+++ b/codecs/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/formats/Makefile b/formats/Makefile
index 1a306d2f26..8440aa0dd7 100644
--- a/formats/Makefile
+++ b/formats/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/funcs/Makefile b/funcs/Makefile
index b4310f9bf8..6172ed3185 100644
--- a/funcs/Makefile
+++ b/funcs/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/pbx/Makefile b/pbx/Makefile
index 795911c94e..74168c0700 100644
--- a/pbx/Makefile
+++ b/pbx/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/res/Makefile b/res/Makefile
index 6b7dd3b0c5..9ee5a2e62b 100644
--- a/res/Makefile
+++ b/res/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 ifneq ($(wildcard ../menuselect.makeopts),)
   include ../menuselect.makeopts
diff --git a/utils/Makefile b/utils/Makefile
index 2432ad2feb..4e3aa5e83e 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -11,7 +11,7 @@
 # the GNU General Public License
 #
 
-.PHONY: clean clean-depend all depend
+.PHONY: clean clean-depend all depend uninstall
 
 UTILS:=astman smsq stereorize streamplayer aelparse
 
-- 
GitLab