]> Dogcows Code - chaz/openbox/blobdiff - m4/openbox.m4
add strict ansi compliance
[chaz/openbox] / m4 / openbox.m4
index b1169907b1a05df0616c57aa7a8e344119807d4e..98033c9ff40b66106413d18a5d51d0aa3cd4ab33 100644 (file)
@@ -2,67 +2,75 @@
 #
 # Check if the user has requested a debug build.
 # Sets the DEBUG or NDEBUG variables as appropriate
+# Sets the CVS environment variable when building CVS sources.
 AC_DEFUN([OB_DEBUG],
 [
-  DEBUG="no"
-  AC_MSG_CHECKING([build target type])
+  AC_MSG_CHECKING([build type])
 
   AC_ARG_ENABLE([debug],
-  [  --enable-debug          build a debug version default=no],
-  [DEBUG=$enableval],[])
+  [  --enable-debug          build a debug version default=yes],
+  [DEBUG=$enableval], [DEBUG="yes"])
+
+  AC_ARG_ENABLE([strict-ansi],
+  [  --enable-strict-ansi    Enable strict ANSI compliance build default=no],
+  [STRICT=$enableval], [STRICT="no"])
+  if test "$GCC" = "yes" && test "$STRICT" = "yes"; then
+    CFLAGS="$CFLAGS -ansi -pedantic -D_XOPEN_SOURCE"
+  fi
 
   # cvs builds are always debug
-  test "${VERSION%*cvs}" != "$VERSION" && DEBUG="yes"
-  
+  CVS=""
+  test "${VERSION%*cvs}" != "$VERSION" && CVS="yes"
+  test "$CVS" = "yes" && DEBUG="yes"
+
   if test "$DEBUG" = "yes"; then
-    AC_MSG_RESULT([DEBUG])
-    AC_DEFINE([DEBUG], [1], [Creating a debug build])
+    MSG="DEBUG"
   else
-    AC_MSG_RESULT([RELEASE])
-# keep the asserts in
-#    AC_DEFINE([NDEBUG], [1], [Creating a release build])
+    MSG="RELEASE"
+  fi
+  if test "$CVS" = "yes"; then
+    MSG="$MSG (CVS build)"
   fi
+  if test "$STRICT" = "yes"; then
+    MSG="$MSG with strict ANSI compliance"
+  fi
+  AC_MSG_RESULT([$MSG])
+  
+  test "$DEBUG" = "yes" && \
+      AC_DEFINE([DEBUG], [1], [Creating a debug build])
+
+  AM_CONDITIONAL(CVS, test "$CVS" = "yes")
 ])
 
 
 # OB_COMPILER_FLAGS()
 #
 # Check what compiler is being used for compilation.
-# It sets the CXXFLAGS variable appropriately for the compiler, including flags
+# It sets the CFLAGS variable appropriately for the compiler, including flags
 # for debug builds.
 AC_DEFUN([OB_COMPILER_FLAGS],
 [
-  AC_REQUIRE([AC_PROG_CXXCPP])
-  AC_REQUIRE([AC_PROG_CXX])
+  AC_REQUIRE([AC_PROG_CPP])
+  AC_REQUIRE([AC_PROG_CC])
 
   FLAGS=""
 
   # Check what compiler we are using
-  AC_MSG_CHECKING([for GNU C++])
-  if test "$GXX" = "yes"; then
+  AC_MSG_CHECKING([for GNU CC])
+  if test "$GCC" = "yes"; then
     AC_MSG_RESULT([yes])
-    FLAGS="-Wall -W"
-    # -pedantic
-    test "$DEBUG" = "yes" && FLAGS="$FLAGS -g -fno-inline"
-  else
-    AC_MSG_RESULT([no, trying other compilers])
-    AC_MSG_CHECKING(for MIPSpro)
-    mips_pro_ver=`$CXX -version 2>&1 | grep -i mipspro | cut -f4 -d ' '`
-    if test -z "$mips_pro_ver"; then
-      AC_MSG_RESULT([no])
-    else
-      AC_MSG_RESULT([yes, version $mips_pro_ver.])
-      AC_MSG_CHECKING(for -LANG:std in CXXFLAGS)
-      lang_std_not_set=`echo $CXXFLAGS | grep "\-LANG:std"`
-      if test "x$lang_std_not_set" = "x"; then
-        AC_MSG_RESULT([not set, setting.])
-        FLAGS="-LANG:std"
-      else
-        AC_MSG_RESULT([already set.])
-      fi
+    if test "$DEBUG" = "yes"; then
+      FLAGS="-g -fno-inline"
+      FLAGS="$FLAGS -Wall -Wsign-compare -Waggregate-return"
+      FLAGS="$FLAGS -Wcast-qual -Wbad-function-cast -Wpointer-arith"
+      # for Python.h
+      FLAGS="$FLAGS -Wno-long-long"
+    fi
+    if test "$STRICT" = "yes"; then
+      FLAGS="$FLAGS -ansi -pedantic -D_XOPEN_SOURCE"
     fi
   fi
   AC_MSG_CHECKING([for compiler specific flags])
   AC_MSG_RESULT([$FLAGS])
-  CXXFLAGS="$CXXFLAGS $FLAGS"
+  CFLAGS="$CFLAGS $FLAGS"
 ])
This page took 0.024753 seconds and 4 git commands to generate.