From c781806e2608f16775e9c0d291fa365605d8ad81 Mon Sep 17 00:00:00 2001 From: George Joseph <gjoseph@digium.com> Date: Tue, 16 Jul 2019 06:55:49 -0600 Subject: [PATCH] Build: Separate header install/uninstall Asterisk headers are no longer installed and uninstalled automatically when performing a "make install" or a "make uninstall". To install/uninstall the headers, use "make install-headers" and "make uninstall-headers". The headers also continue to be uninstalled when performing a "make uninstall-all". Also corrects an issue where /usr/include/asterisk.h was never being removed at all. Change-Id: Ia7399f3a0203a4825fc4a9f43b9034dae9a2b643 --- Makefile | 26 ++++++++++++++++--------- doc/UPGRADE-staging/install_headers.txt | 7 +++++++ 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 doc/UPGRADE-staging/install_headers.txt diff --git a/Makefile b/Makefile index 8911c6a659..fdf0861ebd 100644 --- a/Makefile +++ b/Makefile @@ -555,7 +555,6 @@ INSTALLDIRS="$(ASTLIBDIR)" "$(ASTMODDIR)" "$(ASTSBINDIR)" "$(ASTETCDIR)" "$(ASTV "$(ASTSPOOLDIR)" "$(ASTSPOOLDIR)/dictate" "$(ASTSPOOLDIR)/meetme" \ "$(ASTSPOOLDIR)/monitor" "$(ASTSPOOLDIR)/system" "$(ASTSPOOLDIR)/tmp" \ "$(ASTSPOOLDIR)/voicemail" "$(ASTSPOOLDIR)/recording" \ - "$(ASTHEADERDIR)" "$(ASTHEADERDIR)/doxygen" \ "$(ASTLOGDIR)" "$(ASTLOGDIR)/cdr-csv" "$(ASTLOGDIR)/cdr-custom" \ "$(ASTLOGDIR)/cel-custom" "$(ASTDATADIR)" "$(ASTDATADIR)/documentation" \ "$(ASTDATADIR)/documentation/thirdparty" "$(ASTDATADIR)/firmware" \ @@ -581,12 +580,6 @@ bininstall: _all installdirs $(SUBDIRS_INSTALL) main-bininstall if [ ! -f /sbin/launchd ]; then \ ./build_tools/install_subst contrib/scripts/safe_asterisk "$(DESTDIR)$(ASTSBINDIR)/safe_asterisk"; \ fi - $(INSTALL) -m 644 include/asterisk.h "$(DESTDIR)$(includedir)" - $(INSTALL) -m 644 include/asterisk/*.h "$(DESTDIR)$(ASTHEADERDIR)" - $(INSTALL) -m 644 include/asterisk/doxygen/*.h "$(DESTDIR)$(ASTHEADERDIR)/doxygen" - if [ -n "$(OLDHEADERS)" ]; then \ - for h in $(OLDHEADERS); do rm -f "$(DESTDIR)$(ASTHEADERDIR)/$$h"; done \ - fi ifneq ($(DISABLE_XMLDOC),yes) $(INSTALL) -m 644 doc/core-*.xml "$(DESTDIR)$(ASTDATADIR)/documentation" @@ -799,6 +792,16 @@ define INSTALL_CONFIGS fi endef +install-headers: +# Will create all components of "$(DESTDIR)$(ASTHEADERDIR)/doxygen" including "$(DESTDIR)$(includedir)" + $(INSTALL) -d "$(DESTDIR)$(ASTHEADERDIR)/doxygen" + $(INSTALL) -m 644 include/asterisk.h "$(DESTDIR)$(includedir)" + $(INSTALL) -m 644 include/asterisk/*.h "$(DESTDIR)$(ASTHEADERDIR)" + $(INSTALL) -m 644 include/asterisk/doxygen/*.h "$(DESTDIR)$(ASTHEADERDIR)/doxygen" + if [ -n "$(OLDHEADERS)" ]; then \ + for h in $(OLDHEADERS); do rm -f "$(DESTDIR)$(ASTHEADERDIR)/$$h"; done \ + fi + install-configs: @if test -z "$(CONFIG_SRC)" -o ! -d "$(CONFIG_SRC)"; then \ >&2 echo "CONFIG_SRC must be set to a directory."; \ @@ -988,12 +991,15 @@ $(SUBDIRS_UNINSTALL): main-binuninstall: +@DESTDIR="$(DESTDIR)" ASTSBINDIR="$(ASTSBINDIR)" ASTLIBDIR="$(ASTLIBDIR)" $(SUBMAKE) -C main binuninstall +uninstall-headers: + rm -rf "$(DESTDIR)$(ASTHEADERDIR)" + rm -f "$(DESTDIR)$(includedir)/asterisk.h" + _uninstall: $(SUBDIRS_UNINSTALL) main-binuninstall rm -f "$(DESTDIR)$(ASTMODDIR)/"* test -n "$(_oldmoddir)" -a -d "$(_oldmoddir)" && rm -f "$(_oldmoddir)/"* || : rm -f "$(DESTDIR)$(ASTSBINDIR)/astgenkey" rm -f "$(DESTDIR)$(ASTSBINDIR)/autosupport" - rm -rf "$(DESTDIR)$(ASTHEADERDIR)" rm -rf "$(DESTDIR)$(ASTDATADIR)/firmware" rm -f "$(DESTDIR)$(ASTMANDIR)/man8/asterisk.8" rm -f "$(DESTDIR)$(ASTMANDIR)/man8/astgenkey.8" @@ -1023,7 +1029,7 @@ uninstall: _uninstall @echo " + $(mK) uninstall-all +" @echo " +-------------------------------------------+" -uninstall-all: _uninstall +uninstall-all: _uninstall uninstall-headers rm -rf "$(DESTDIR)$(ASTMODDIR)" test -n "$(_oldmoddir)" -a -d "$(_oldmoddir)" && rm -rf "$(_oldmoddir)" || : rm -rf "$(DESTDIR)$(ASTVARLIBDIR)" @@ -1117,6 +1123,7 @@ check-alembic: makeopts @ALEMBIC=$(ALEMBIC) build_tools/make_check_alembic config cdr voicemail >&2 .PHONY: install-configs +.PHONY: install-headers .PHONY: menuselect .PHONY: main .PHONY: sounds @@ -1130,6 +1137,7 @@ check-alembic: makeopts .PHONY: uninstall .PHONY: _uninstall .PHONY: uninstall-all +.PHONY: uninstall-headers .PHONY: badshell .PHONY: installdirs .PHONY: validate-docs diff --git a/doc/UPGRADE-staging/install_headers.txt b/doc/UPGRADE-staging/install_headers.txt new file mode 100644 index 0000000000..d932512a1b --- /dev/null +++ b/doc/UPGRADE-staging/install_headers.txt @@ -0,0 +1,7 @@ +Subject: Build +Master-Only: true + +Asterisk headers are no longer installed and uninstalled automatically when +performing a "make install" or a "make uninstall". To install/uninstall the +headers, use "make install-headers" and "make uninstall-headers". The headers +also continue to be uninstalled when performing a "make uninstall-all". -- GitLab