Skip to content
Snippets Groups Projects
Makefile 41.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	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
    
    	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: 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: 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: