Quote $$answer to avoid error on null value.
[privoxy.git] / Makefile
index ca8f82b..9b91452 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.5.2.1 2002/08/05 17:46:13 oes Exp $
+# $Id: Makefile,v 1.9 2002/10/23 06:14:09 agotneja Exp $
 #
 # Written by and Copyright (C) 2001 the SourceForge
 # Privoxy team. http://www.privoxy.org/
 # Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 # $Log: Makefile,v $
+# Revision 1.9  2002/10/23 06:14:09  agotneja
+# Added FreeBSD checks to stop people from using the default 'make'
+#
+# Revision 1.8  2002/10/23 05:41:45  agotneja
+# Added checks for Solaris 'make' command, and more extensive checks that
+# the user is running GNU make.
+#
+# Revision 1.7  2002/10/22 02:22:18  hal9
+# Look for gmake first, and fall back to make. More Solaris trouble.
+#
+# Revision 1.6  2002/09/05 14:35:17  oes
+# Change make to gmake to fix auto-build on Solaris
+#
 # Revision 1.5  2002/04/11 12:51:34  oes
 # Bugfix
 #
 
 #############################################################################
 
+# This script will first try to use the GNU make command, then the standard
+# make command, checking whether the command returns 'GNU' as part of its
+# version string. Amend this to point to your GNU make command if it is
+# not in your path.
+# Further tests; 
+#   GNU  'make' sets the MAKE_VERSION variable
+#   Solaris 'make' sets the HOST_ARCH variable
+#   FreeBSD 'make' sets the MACHINE_ARCH variable
+# We check if this isn't GNU but matches one of the above we error out
+
+GNU_MAKE_CMD = gmake
+MAKE_CMD     = make
+
 error:
        @if [ -f GNUmakefile ]; then \
            echo "***"; \
            echo "*** You are not using the GNU version of Make - maybe it's called gmake"; \
-           echo "*** or it's in a different directory?"; \
+           echo "*** or it's in a different PATH? Please read INSTALL." ; \
            echo "***"; \
            exit 1; \
+        elif test -n "$(HOST_ARCH)"  && test -z "$(MAKE_VERSION)" ; then \
+           echo "***"; \
+           echo "*** You are not using GNU Make on Solaris, please make sure you do" ; \
+           echo "*** and re-run 'make' "; \
+           echo "***"; \
+           exit 1 ; \
+        elif test -n "$(MACHINE_ARCH)"  && test -z "$(MAKE_VERSION)" ; then \
+           echo "***"; \
+           echo "*** You are not using GNU Make on FreeBSD, please make sure you do" ; \
+           echo "*** and re-run 'make' "; \
+           echo "***"; \
+           exit 1 ; \
         else \
            echo "***"; \
            echo "*** To build this program, you must run"; \
@@ -59,13 +97,23 @@ error:
            echo "***"; \
            echo -n "*** Shall I do this for you now? (y/n) "; \
            read answer; \
-           if [ $$answer = "y" ]; then \
-              autoheader && autoconf && ./configure && gmake; \
+           if [ "$$answer" = "y" ]; then \
+               autoheader && autoconf && ./configure || exit 1; \
+               if $(GNU_MAKE_CMD) -v |grep GNU >/dev/null 2>/dev/null; then \
+                  $(GNU_MAKE_CMD) ;\
+               elif $(MAKE_CMD) -v |grep GNU >/dev/null 2>/dev/null; then \
+                  $(MAKE_CMD) ;\
+               else \
+                  echo "Neither 'make' nor 'gmake' are GNU compatible!" ; \
+                  echo "Please read INSTALL." ; \
+                  exit 1 ; \
+               fi ;\
            fi; \
         fi
 
 .PHONY: error
 
+
 #############################################################################
 
 ## Local Variables: