install_prereq: Add SUSE.
[asterisk/asterisk.git] / Makefile
index 8048f59..54368f7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -104,8 +104,11 @@ export PATCH
 export SED
 export NM
 
-# makeopts is required unless the goal is clean or distclean
-ifeq ($(findstring clean,$(MAKECMDGOALS)),)
+# makeopts is required unless the goal is just {dist{-}}clean
+ifeq ($(MAKECMDGOALS),clean)
+else ifeq ($(MAKECMDGOALS),distclean)
+else ifeq ($(MAKECMDGOALS),dist-clean)
+else
 include makeopts
 endif
 
@@ -214,7 +217,9 @@ ifeq ($(AST_DEVMODE),yes)
   endif
 endif
 
-ifneq ($(findstring BSD,$(OSARCH)),)
+ifeq ($(OSARCH),NetBSD)
+  _ASTCFLAGS+=-isystem /usr/pkg/include
+else ifneq ($(findstring BSD,$(OSARCH)),)
   _ASTCFLAGS+=-isystem /usr/local/include
 endif
 
@@ -225,7 +230,7 @@ ifeq ($(OSARCH),FreeBSD)
 endif
 
 ifeq ($(OSARCH),NetBSD)
-  _ASTCFLAGS+=-pthread -I/usr/pkg/include
+  _ASTCFLAGS+=-pthread -D__LIBPTHREAD_SOURCE__ -I/usr/pkg/include
 endif
 
 ifeq ($(OSARCH),OpenBSD)
@@ -236,7 +241,9 @@ ifeq ($(OSARCH),SunOS)
   _ASTCFLAGS+=-Wcast-align -DSOLARIS -I../include/solaris-compat -I/opt/ssl/include -I/usr/local/ssl/include -D_XPG4_2 -D__EXTENSIONS__
 endif
 
-ifneq ($(GREP),)
+ifeq ($(GREP),)
+else ifeq ($(GREP),:)
+else
   ASTERISKVERSION:=$(shell GREP=$(GREP) AWK=$(AWK) GIT=$(GIT) build_tools/make_version .)
 endif
 ifneq ($(AWK),)
@@ -279,7 +286,9 @@ else
 # These are used for all but Darwin
   SOLINK=-shared
   DYLINK=$(SOLINK)
-  ifneq ($(findstring BSD,$(OSARCH)),)
+  ifeq ($(OSARCH),NetBSD)
+    _ASTLDFLAGS+=-L/usr/pkg/lib
+  else ifneq ($(findstring BSD,$(OSARCH)),)
     _ASTLDFLAGS+=-L/usr/local/lib
   endif
 endif
@@ -464,7 +473,9 @@ endif
                $(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTDATADIR)/rest-api" ; \
        done
 
-ifneq ($(GREP),)
+ifeq ($(GREP),)
+else ifeq ($(GREP),:)
+else
   XML_core_en_US = $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
 endif
 
@@ -483,7 +494,9 @@ doc/core-en_US.xml: makeopts .lastclean $(XML_core_en_US)
        @echo
        @echo "</docs>" >> $@
 
-ifneq ($(GREP),)
+ifeq ($(GREP),)
+else ifeq ($(GREP),:)
+else
   XML_full_en_US = $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
 endif
 
@@ -601,7 +614,12 @@ $(SUBDIRS_INSTALL):
 
 NEWMODS:=$(foreach d,$(MOD_SUBDIRS),$(notdir $(wildcard $(d)/*.so)))
 OLDMODS=$(filter-out $(NEWMODS) $(notdir $(DESTDIR)$(ASTMODDIR)),$(notdir $(wildcard $(DESTDIR)$(ASTMODDIR)/*.so)))
-BADMODS=$(strip $(filter-out $(shell ./build_tools/list_valid_installed_externals),$(OLDMODS)))
+ifneq ($(BASH),:)
+       FILMODS=$(filter-out $(shell ./build_tools/list_valid_installed_externals),$(OLDMODS))
+else
+       FILMODS=$(OLDMODS)
+endif
+BADMODS=$(strip $(FILMODS))
 
 oldmodcheck:
        @if [ -n "$(BADMODS)" ]; then \
@@ -622,9 +640,11 @@ oldmodcheck:
        fi
 
 ld-cache-update:
-ifneq ($(LDCONFIG),)
+ifeq ($(LDCONFIG),)
+else ifeq ($(LDCONFIG),:)
+else
 ifeq ($(DESTDIR),)  # DESTDIR means binary archive creation; ldconfig should be run on postinst
-       @if [ $${EUID} -eq 0 ] ; then \
+       @if [ $$(id -u) -eq 0 ] ; then \
                $(LDCONFIG) "$(ASTLIBDIR)/" ; \
        else \
                echo " WARNING WARNING WARNING" ;\
@@ -921,6 +941,14 @@ config:
                if [ -z "$(DESTDIR)" ] ; then \
                        /sbin/chkconfig --add asterisk ; \
                fi ; \
+       elif [ -f /etc/os-release ] && [ "opensuse" = "$(shell . /etc/os-release && echo $$ID)" ] ; then \
+               ./build_tools/install_subst contrib/init.d/rc.suse.asterisk  "$(DESTDIR)/etc/init.d/asterisk"; \
+               if [ ! -f /etc/sysconfig/asterisk ] ; then \
+                       $(INSTALL) -m 644 contrib/init.d/etc_default_asterisk "$(DESTDIR)/etc/sysconfig/asterisk" ; \
+               fi ; \
+               if [ -z "$(DESTDIR)" ] ; then \
+                       /sbin/chkconfig --add asterisk ; \
+               fi ; \
        elif [ -f /etc/arch-release -o -f /etc/arch-release ] ; then \
                ./build_tools/install_subst contrib/init.d/rc.archlinux.asterisk  "$(DESTDIR)/etc/init.d/asterisk"; \
        elif [ -d "$(DESTDIR)/Library/LaunchDaemons" ]; then \
@@ -968,8 +996,10 @@ ifeq ($(HAVE_DAHDI),1)
        rm -f $(DESTDIR)$(DAHDI_UDEV_HOOK_DIR)/40-asterisk
 endif
        $(MAKE) -C sounds uninstall
-ifneq ($(LDCONFIG),)
-       $(LDCONFIG) || :
+ifeq ($(LDCONFIG),)
+else ifeq ($(LDCONFIG),:)
+else
+       $(LDCONFIG) "$(ASTLIBDIR)/" || :
 endif
 
 uninstall: _uninstall
@@ -1089,11 +1119,9 @@ check-alembic: makeopts
 .PHONY: _all
 .PHONY: full
 .PHONY: _full
-.PHONY: prereqs
 .PHONY: uninstall
 .PHONY: _uninstall
 .PHONY: uninstall-all
-.PHONY: dont-optimize
 .PHONY: badshell
 .PHONY: installdirs
 .PHONY: validate-docs
@@ -1111,3 +1139,5 @@ check-alembic: makeopts
 
 FORCE:
 
+# This only stops targets within the root Makefile from building in parallel.
+.NOTPARALLEL: