Skip to content
Snippets Groups Projects
Makefile 41.7 KiB
Newer Older
_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)$(ASTDATADIR)/firmware"
	rm -f "$(DESTDIR)$(ASTMANDIR)/man8/asterisk.8"
	rm -f "$(DESTDIR)$(ASTMANDIR)/man8/astgenkey.8"
	rm -f "$(DESTDIR)$(ASTMANDIR)/man8/autosupport.8"
	rm -f "$(DESTDIR)$(ASTMANDIR)/man8/safe_asterisk.8"
ifeq ($(HAVE_DAHDI),1)
	rm -f $(DESTDIR)$(DAHDI_UDEV_HOOK_DIR)/40-asterisk
endif
	$(MAKE) -C sounds uninstall
ifeq ($(LDCONFIG),)
else ifeq ($(LDCONFIG),:)
else
	$(LDCONFIG) "$(ASTLIBDIR)/" || :
uninstall: _uninstall
	@echo " +--------- Asterisk Uninstall Complete -----+"
	@echo " + Asterisk binaries, sounds, man pages,     +"
	@echo " + headers, modules, and firmware builds,    +"
	@echo " + have all been uninstalled.                +"
	@echo " +                                           +"
	@echo " + To remove ALL traces of Asterisk,         +"
	@echo " + including configuration, spool            +"
	@echo " + directories, and logs, run the following  +"
	@echo " + command:                                  +"
	@echo " +                                           +"
	@echo " +            $(mK) uninstall-all            +"
	@echo " +-------------------------------------------+"
uninstall-all: _uninstall uninstall-headers
	rm -rf "$(DESTDIR)$(ASTMODDIR)"
	test -n "$(_oldmoddir)" -a -d "$(_oldmoddir)" && rm -rf "$(_oldmoddir)" || :
	rm -rf "$(DESTDIR)$(ASTVARLIBDIR)"
	rm -rf "$(DESTDIR)$(ASTDATADIR)"
	rm -rf "$(DESTDIR)$(ASTSPOOLDIR)"
	rm -rf "$(DESTDIR)$(ASTETCDIR)"
	rm -rf "$(DESTDIR)$(ASTLOGDIR)"
menuconfig: menuselect

cmenuconfig: cmenuselect

gmenuconfig: gmenuselect

menuselect: menuselect/cmenuselect menuselect/nmenuselect menuselect/gmenuselect
	@if [ -x menuselect/nmenuselect ]; then \
		$(MAKE) nmenuselect; \
	elif [ -x menuselect/cmenuselect ]; then \
		$(MAKE) cmenuselect; \
	elif [ -x menuselect/gmenuselect ]; then \
		$(MAKE) gmenuselect; \
Kevin P. Fleming's avatar
Kevin P. Fleming committed
		echo "No menuselect user interface found. Install ncurses,"; \
		echo "newt or GTK libraries to build one and re-rerun"; \
		echo "'./configure' and 'make menuselect'."; \
cmenuselect: menuselect/cmenuselect menuselect-tree menuselect.makeopts
	-@menuselect/cmenuselect menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
gmenuselect: menuselect/gmenuselect menuselect-tree menuselect.makeopts
	-@menuselect/gmenuselect menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
nmenuselect: menuselect/nmenuselect menuselect-tree menuselect.makeopts
	-@menuselect/nmenuselect menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
Luigi Rizzo's avatar
Luigi Rizzo committed
# options for make in menuselect/
MAKE_MENUSELECT=CC="$(BUILD_CC)" CXX="$(CXX)" LD="" AR="" RANLIB="" \
		CFLAGS="$(BUILD_CFLAGS)" LDFLAGS="$(BUILD_LDFLAGS)" \
		$(MAKE) -C menuselect CONFIGURE_SILENT="--silent"
Luigi Rizzo's avatar
Luigi Rizzo committed

menuselect/menuselect: menuselect/makeopts .lastclean
menuselect/cmenuselect: menuselect/makeopts .lastclean
	+$(MAKE_MENUSELECT) cmenuselect
menuselect/gmenuselect: menuselect/makeopts .lastclean
	+$(MAKE_MENUSELECT) gmenuselect
menuselect/nmenuselect: menuselect/makeopts .lastclean
	+$(MAKE_MENUSELECT) nmenuselect
menuselect/makeopts: makeopts .lastclean
menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc) $(wildcard $(dir)/*.xml)) build_tools/cflags.xml build_tools/cflags-devmode.xml sounds/sounds.xml utils/utils.xml agi/agi.xml configure makeopts
	@echo "Generating input for menuselect ..."
	@echo "<?xml version=\"1.0\"?>" > $@
	@echo >> $@
	@echo "<menu name=\"Asterisk Module and Build Option Selection\">" >> $@
	+@for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SILENTMAKE) -C $${dir} SUBDIR=$${dir} moduleinfo >> $@; done
	@cat build_tools/cflags.xml >> $@
	+@for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SILENTMAKE) -C $${dir} SUBDIR=$${dir} makeopts >> $@; done
	@if [ "${AST_DEVMODE}" = "yes" ]; then \
		cat build_tools/cflags-devmode.xml >> $@; \
	fi
	@cat utils/utils.xml >> $@
	@cat sounds/sounds.xml >> $@
	@echo "</menu>" >> $@
# We don't want to require Python or Pystache for every build, so this is its
# own target.
ifeq ($(PYTHON),:)
	@echo "--------------------------------------------------------------------------"
	@echo "---        Please install python to build ARI stubs            ---"
	@echo "--------------------------------------------------------------------------"
	@false
else
	@$(INSTALL) -d doc/rest-api
	$(PYTHON) rest-api-templates/make_ari_stubs.py \
		rest-api/resources.json .
check-alembic: makeopts
	@find contrib/ast-db-manage/ -name '*.pyc' -delete
	@ALEMBIC=$(ALEMBIC) build_tools/make_check_alembic config cdr voicemail >&2

.PHONY: install-configs
.PHONY: install-headers
.PHONY: menuselect
.PHONY: main
.PHONY: sounds
.PHONY: clean
.PHONY: dist-clean
.PHONY: distclean
.PHONY: all
.PHONY: full
.PHONY: _full
.PHONY: uninstall
.PHONY: _uninstall
.PHONY: uninstall-all
.PHONY: uninstall-headers
.PHONY: badshell
.PHONY: installdirs
.PHONY: validate-docs
.PHONY: _clean
.PHONY: ld-cache-update
.PHONY: $(SUBDIRS_INSTALL)
.PHONY: $(SUBDIRS_DIST_CLEAN)
.PHONY: $(SUBDIRS_CLEAN)
.PHONY: $(SUBDIRS_UNINSTALL)
.PHONY: $(SUBDIRS)
# This only stops targets within the root Makefile from building in parallel.
.NOTPARALLEL: