Hi all,
already some time ago I had a look at the build scripts oorexx uses on *nix platforms. The primary motivation was to make the building look cleaner by reducing the amount of messages written during compiling. The result is an updated configure.ac, Makefile.am and acinclude.a4.

As I'm not an expert I'd first like you to review the patch as it may break the build process somewhere.

Main modifications are:
* Defines moved from command line to config.h. That required that config.h is incuded in every source file requiring it. Only two files, TimeSupport.cpp and rxsock.cpp did not include it. * acinclude: replace AC_TRY_COMPILE by AC_COMPILE_IFELSE because the first is deprecated.
* Makefile.am: some defines have been removed as they are now in config.h

See attached file for patch!
Moritz
--
Moritz Hoffmann
http://antiguru.de/
Index: rexutils/rxsock.cpp
===================================================================
--- rexutils/rxsock.cpp	(revision 2712)
+++ rexutils/rxsock.cpp	(working copy)
@@ -43,6 +43,11 @@
 /*------------------------------------------------------------------
  * program defines
  *------------------------------------------------------------------*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+
 #if defined(OPSYS_AIX) || defined(OPSYS_LINUX)
 #define PROG_NAME "rxsock"
 #else
Index: kernel/platform/unix/TimeSupport.cpp
===================================================================
--- kernel/platform/unix/TimeSupport.cpp	(revision 2712)
+++ kernel/platform/unix/TimeSupport.cpp	(working copy)
@@ -44,6 +44,10 @@
 /*                                                                   */
 /*********************************************************************/
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <pthread.h>
 #if defined(OPSYS_SUN)
 #include <sched.h>
@@ -59,7 +63,6 @@
 #include <sys/time.h>
 #endif
 
-
 void SystemInterpreter::getCurrentTime(RexxDateTime *Date )
 {
     struct tm *SystemDate;               /* system date structure ptr  */
Index: configure.ac
===================================================================
--- configure.ac	(revision 2712)
+++ configure.ac	(working copy)
@@ -34,7 +34,7 @@
 dnl
 
 dnl Process this file with autoconf to produce a configure script
-AC_INIT(oorexx, 4.0.0)
+AC_INIT([oorexx],[4.0.0])
 AC_PREFIX_DEFAULT(/opt/ooRexx)
 
 dnl This is to fix a problem with distribution prior to Fedora 7. Fedora 7
@@ -47,11 +47,11 @@
 PACKAGE=ooRexx
 VERSION=4.0.0
 
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_TARGET
 
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
 
 AC_PROG_CC
 AC_PROG_CPP
@@ -62,11 +62,12 @@
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-GENERIC_OS="-DLINUX"
-GENERIC_OPSYS="-DOPSYS_LINUX"
-GENERIC_DEFINES="-DNOOPT -DPTHREAD_KERNEL \
-                 -D_POSIX_THREAD -D_REENTRANT  \
-                 -D_GNU_SOURCE"
+AC_DEFINE(NOOPT,,[noopt])
+AC_DEFINE(PTHREAD_KERNEL,,[pthread kernel])
+AC_DEFINE(SHARED,,[shared])
+AC_DEFINE(_POSIX_THREAD,,[posix thread])
+AC_DEFINE(_REENTRANT,,[reentrant])
+dnl AC_DEFINE(_GNU_SOURCE,,[gnu source])
 
 dnl Now we throw in a bunch of warnings.  C and C++ need
 dnl different sets here
@@ -82,17 +83,18 @@
         -Wformat-nonliteral \
         -Wno-format-y2k \
         -Wcast-qual \
-        -Wcast-align"
+        -Wcast-align \
+        -pedantic"
 
 GCXX_WARNINGS="\
         -Wall \
         -funsigned-char \
+        -fno-omit-frame-pointer \
         -Wpointer-arith \
         -Wcast-qual \
         -Wcast-align \
         -Wshadow \
         -Wwrite-strings \
-        -D__cplusplus \
         -Wredundant-decls"
 
 XLC_WARNINGS="\
@@ -107,8 +109,6 @@
 
 dnl Set platform and compiler specific switches
 PACKAGETYPE="none"
-ORX_SYS_STR="unknown"
-ORX_SHARED_LIBRARY_EXT=".so"
 ORX_LDADD_EXECUTABLE="-ldl -lpthread"
 ORX_LIBADD_LIBRARY=""
 ORX_LDFLAGS_EXECUTABLE=""
@@ -117,10 +117,10 @@
 ORX_PLATFORM="unix"
 case "$target" in
    *ibm-aix*)
-      GENERIC_OS="-DAIX"
-      GENERIC_OPSYS="-DOPSYS_AIX"
-      GENERIC_DEFINES="$GENERIC_DEFINES -DOPSYS_AIX43"
-#     ORX_SHARED_LIBRARY_EXT=".a"
+      AC_DEFINE(AIX,,[running aix])
+      AC_DEFINE(OPSYS_AIX43,,[running aix])
+      AC_DEFINE(OPSYS_AIX,,[opsys is aix])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       case "$CXX" in
          g++)
             CC_WARNINGS="-maix32 -mthreads $GCC_WARNINGS"
@@ -136,10 +136,12 @@
             ;;
       esac
       PACKAGETYPE="aix"
-      ORX_SYS_STR="AIX"
+      AC_DEFINE([ORX_SYS_STR],["AIX"],[ORX sys string])
       ;;
    *solaris*)
-      GENERIC_OPSYS="$GENERIC_OPSYS -DOPSYS_SUN"
+      AC_DEFINE(OPSYS_SUN,,[opsys is sun])
+      AC_DEFINE(OPSYS_LINUX,,[generic opysy])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       case "$CXX" in
          g++)
             CC_WARNINGS="-m32 $GCC_WARNINGS"
@@ -150,45 +152,58 @@
             ;;
       esac
       PACKAGETYPE="sun"
-      ORX_SYS_STR="SUNOS"
+AC_DEFINE([ORX_SYS_STR],["SUNOS"],[ORX sys string])
       case "$target" in
          *solaris2.8)
-            SPECIFIC_DEFINES="-DLIMITED_SOLARIS_SEMS"
+	    AC_DEFINE(LIMITED_SOLARIS_SEMS,,[limited solaris sems])
             ;;
          *solaris2.9)
-            SPECIFIC_DEFINES="-DLIMITED_SOLARIS_SEMS"
+	    AC_DEFINE(LIMITED_SOLARIS_SEMS,,[limited solaris sems])
             ;;
          *)
       esac
       ;;
    sparc*sunos*)
-      ORX_SYS_STR="SUNOS"
+      AC_DEFINE([ORX_SYS_STR],["SUNOS"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ;;
    i*86-*linux*)
+      AC_DEFINE(LINUX,,[running linux])
+      AC_DEFINE(OPSYS_LINUX,,[opsys is linux])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       CC_WARNINGS="$GCC_WARNINGS"
       CXX_WARNINGS="$GCXX_WARNINGS"
-      ORX_SYS_STR="LINUX"
+      AC_DEFINE([ORX_SYS_STR],["LINUX"],[ORX sys string])
       ;;
    *86_64-*linux*)
+      AC_DEFINE(LINUX,,[running linux])
+      AC_DEFINE(OPSYS_LINUX,,[opsys is linux])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       CC_WARNINGS="-m32 $GCC_WARNINGS"
       CXX_WARNINGS="-m32 $GCXX_WARNINGS"
-      ORX_SYS_STR="LINUX"
+      AC_DEFINE([ORX_SYS_STR],["LINUX"],[ORX sys string])
       ;;
    alpha*-*linux*)
-      ORX_SYS_STR="LINUX"
+      AC_DEFINE(LINUX,,[running linux])
+      AC_DEFINE(OPSYS_LINUX,,[opsys is linux])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
+      AC_DEFINE([ORX_SYS_STR],["LINUX"],[ORX sys string])
       ;;
    *linux*)
-      ORX_SYS_STR="LINUX"
+      AC_DEFINE(LINUX,,[running linux])
+      AC_DEFINE(OPSYS_LINUX,,[opsys is linux])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
+      AC_DEFINE([ORX_SYS_STR],["LINUX"],[ORX sys string])
       ;;
    *cygnus*)
       CC_WARNINGS="$GCC_WARNINGS"
       CXX_WARNINGS="$GCXX_WARNINGS"
-      ORX_SYS_STR="CYGNUS"
-      ORX_SHARED_LIBRARY_EXT=".dll"
-      ORX_PLATFORM="windows"
+      AC_DEFINE([ORX_SYS_STR],["CYGNUS"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".dll"],[Shared library extension])
       ;;
    *freebsd*)
-      ORX_SYS_STR="FREEBSD"
+      AC_DEFINE([ORX_SYS_STR],["FREEBSD"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ORX_LDADD_EXECUTABLE="-pthread"
       ORX_LIBADD_LIBRARY=""
       ORX_LDFLAGS_EXECUTABLE="-pthread"
@@ -196,7 +211,8 @@
       ORX_LDFLAGS_PACKAGE="-nostartfiles -shared"
       ;;
    *netbsd*)
-      ORX_SYS_STR="NETBSD"
+      AC_DEFINE([ORX_SYS_STR],["NETBSD"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ORX_LDADD_EXECUTABLE="-pthread"
       ORX_LIBADD_LIBRARY=""
       ORX_LDFLAGS_EXECUTABLE="-pthread"
@@ -204,7 +220,8 @@
       ORX_LDFLAGS_PACKAGE="-nostartfiles -shared"
       ;;
    *openbsd*)
-      ORX_SYS_STR="NETBSD"
+      AC_DEFINE([ORX_SYS_STR],["NETBSD"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ORX_LDADD_EXECUTABLE="-pthread"
       ORX_LIBADD_LIBRARY=""
       ORX_LDFLAGS_EXECUTABLE="-pthread"
@@ -212,33 +229,40 @@
       ORX_LDFLAGS_PACKAGE="-nostartfiles -shared"
       ;;
    *apple-darwin*)
-      ORX_SYS_STR="MACOSX"
-      ORX_SHARED_LIBRARY_EXT=".dylib"
+      AC_DEFINE([ORX_SYS_STR],["MACOSX"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".dylib"],[Shared library extension])
       ;;
    *hp-hpux*)
-      ORX_SHARED_LIBRARY_EXT=".sl"
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".sl"],[Shared library extension])
       ;;
    *dec-osf*)
+      AC_DEFINE([ORX_SYS_STR],["DEC-OSF"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ;;
    *nto-qnx*)
+      AC_DEFINE([ORX_SYS_STR],["NTO-QNX"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ;;
    *qnx*)
+      AC_DEFINE([ORX_SYS_STR],["QNX"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ;;
    *beos*)
+      AC_DEFINE([ORX_SYS_STR],["BEOS"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ;;
    *)
+      AC_DEFINE([ORX_SYS_STR],["unknown"],[ORX sys string])
+      AC_DEFINE([ORX_SHARED_LIBRARY_EXT],[".so"],[Shared library extension])
       ;;
 esac
 
 # Find out if we are big endian
 AC_C_BIGENDIAN()
 
-#DEVEL_DEFINES="$GENERIC_OS $GENERIC_DEFINES $SPECIFIC_DEFINES"
-#AC_SUBST(DEVEL_DEFINES)
-
 AC_SUBST(PACKAGETYPE)
-AC_SUBST(ORX_SYS_STR)
-AC_SUBST(ORX_SHARED_LIBRARY_EXT)
+dnl AC_SUBST(ORX_SYS_STR)
+dnl AC_SUBST(ORX_SHARED_LIBRARY_EXT)
 AC_SUBST(ORX_LDADD_EXECUTABLE)
 AC_SUBST(ORX_LIBADD_LIBRARY)
 AC_SUBST(ORX_LDFLAGS_EXECUTABLE)
@@ -375,27 +399,16 @@
 AC_SUBST(ORX_SUBST_AGE)
 
 dnl remerge the warnings into the FLAGS
-GENERAL_CXXFLAGS="\
-              $SPECIFIC_DEFINES \
-              $GENERIC_DEFINES \
-              $GENERIC_OS \
-              $GENERIC_OPSYS"
+CXXFLAGS="$CXXFLAGS $CXX_WARNINGS"
+CFLAGS="$CFLAGS $CC_WARNINGS"
 
-GENERAL_CFLAGS="\
-              $SPECIFIC_DEFINES \
-              $GENERIC_DEFINES \
-              $GENERIC_OS \
-              $GENERIC_OPSYS"
-CXXFLAGS="$CXXFLAGS $CFLAGS $CXX_WARNINGS $GENERAL_CXXFLAGS"
-CFLAGS="$CFLAGS $CC_WARNINGS $GENERAL_CFLAGS"
-
 AC_SUBST(TOP_SRCDIR,$top_srcdir)
 
 AC_CONFIG_FILES([
         Makefile
-	platform/unix/oorexx.spec
-	platform/unix/debian/changelog
-	platform/unix/debian/postinst
+        platform/unix/oorexx.spec
+        platform/unix/debian/changelog
+        platform/unix/debian/postinst
         samples/Makefile
         samples/unix/Makefile
         samples/unix/api/Makefile
@@ -431,4 +444,6 @@
         platform/unix/oorexx-config
  ])
 
+AC_CONFIG_COMMANDS([
+])
 AC_OUTPUT
Index: acinclude.m4
===================================================================
--- acinclude.m4	(revision 2712)
+++ acinclude.m4	(working copy)
@@ -38,10 +38,11 @@
 AC_DEFUN([ORX_FILE__CNT],
 [
 AC_MSG_CHECKING(if FILE struct contains _cnt member)
-AC_TRY_COMPILE([#include <stdio.h>],
-[FILE *fp; fp->_cnt = 0;],
-  orx_result=yes; AC_DEFINE(HAVE_FILE__CNT, 1, Define to 1 if FILE struct contains _cnt member), orx_result=no )
-AC_MSG_RESULT($orx_result)
+AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[#include <stdio.h>]],
+ [[FILE *fp; fp->_cnt = 0;]])],
+ [AC_DEFINE(HAVE_FILE__CNT, 1, Define to 1 if FILE struct contains _cnt member) AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
 ])
 
 dnl
@@ -50,10 +51,14 @@
 AC_DEFUN([ORX_FILE__IO_READ_PTR],
 [
 AC_MSG_CHECKING(if FILE struct contains _IO_read_ptr member)
-AC_TRY_COMPILE([#include <stdio.h>],
-[FILE *fp; fp->_IO_read_ptr = 0;],
-  orx_result=yes; AC_DEFINE(HAVE_FILE__IO_READ_PTR, 1, Define to 1 if FILE struct contains _IO_read_ptr member), orx_result=no )
-AC_MSG_RESULT($orx_result)
+AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+  [[#include <stdio.h>]],
+  [[FILE *fp; fp->_IO_read_ptr = 0;]]
+ )],
+ [AC_DEFINE(HAVE_FILE__IO_READ_PTR, 1, Define to 1 if FILE struct contains _IO_read_ptr member)
+  AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
 ])
 
 dnl
@@ -62,63 +67,72 @@
 AC_DEFUN([ORX_SEMUN_DEFINED],
 [
 AC_MSG_CHECKING(if union semun is incorrectly defined)
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
 #include <sys/types.h>
 #ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
 #endif
-],
-[union semun semopts],
-  orx_result=yes; AC_DEFINE(HAVE_UNION_SEMUN, 1, Define to 1 if union semun is defined in sys/sem.h), orx_result=no )
-AC_MSG_RESULT($orx_result)
+]],
+  [[union semun semopts]]
+ )],
+ [AC_DEFINE(HAVE_UNION_SEMUN, 1, Define to 1 if union semun is defined in sys/sem.h)
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
 ])
 
 dnl
 dnl Check which values are valid for pthread_mutexattr_settype() arg 4 are valid
 dnl
 AC_DEFUN([ORX_PTHREAD_MUTEXATTR_SETTYPE_ARG2],
-[
-AC_MSG_CHECKING(which values are valid for pthread_mutexattr_settype arg 2 are valid)
-AC_TRY_COMPILE([
+[AC_MSG_CHECKING(which values are valid for pthread_mutexattr_settype arg 2)
+ AC_COMPILE_IFELSE([
+  AC_LANG_PROGRAM([[
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
 #endif
 #ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
 #endif
-],
-[
-pthread_mutexattr_t mutexattr;
-pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE_NP);
-],
-  orx_result=yes; AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE_NP, 1, Define to 1 if PTHREAD_MUTEX_RECURSIVE_NP is a valid value), orx_result=no )
-AC_TRY_COMPILE([
+]],
+   [[
+   pthread_mutexattr_t mutexattr;
+   pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE_NP);
+   ]])],
+  [AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE_NP, 1, Define to 1 if PTHREAD_MUTEX_RECURSIVE_NP is a valid value)
+   AC_MSG_RESULT([yes])
+  ],[AC_MSG_RESULT([no])])
+ AC_COMPILE_IFELSE([
+   AC_LANG_PROGRAM([[
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
 #endif
 #ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
 #endif
-],
-[
-pthread_mutexattr_t mutexattr;
-pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);
-],
-  orx_result=yes; AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE, 1, Define to 1 if PTHREAD_MUTEX_RECURSIVE is a valid value), orx_result=no )
-AC_TRY_COMPILE([
+]],
+   [[
+   pthread_mutexattr_t mutexattr;
+   pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);
+   ]])],
+  [AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE, 1, Define to 1 if PTHREAD_MUTEX_RECURSIVE is a valid value)
+   AC_MSG_RESULT([yes])],
+  [AC_MSG_RESULT([no])]
+  )
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
 #endif
 #ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
 #endif
-],
-[
-pthread_mutexattr_t mutexattr;
-pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_ERRORCHECK);
-],
-  orx_result=yes; AC_DEFINE(HAVE_PTHREAD_MUTEX_ERRORCHECK, 1, Define to 1 if PTHREAD_MUTEX_ERRORCHECK is a valid value), orx_result=no )
-AC_MSG_RESULT(found)
-]
-)
+]],
+   [[
+   pthread_mutexattr_t mutexattr;
+   pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_ERRORCHECK);
+   ]])],
+  [AC_DEFINE(HAVE_PTHREAD_MUTEX_ERRORCHECK, 1, Define to 1 if PTHREAD_MUTEX_ERRORCHECK is a valid value)
+   AC_MSG_RESULT([yes])],
+  [AC_MSG_RESULT([no])])
+])
 
Index: Makefile.am
===================================================================
--- Makefile.am	(revision 2712)
+++ Makefile.am	(working copy)
@@ -103,9 +103,7 @@
 catdir = $(prefix)/bin
 
 COMMON_CPPFLAGS = -DORX_VER=$(ORX_MAJOR) -DORX_REL=$(ORX_MINOR) -DORX_MOD=$(ORX_MOD_LVL) -DORX_FIX=0 \
-                  -DORX_SYS_STR=\"@[EMAIL PROTECTED]" \
-                  -DORX_CATDIR=\"$(catdir)\" \
-                  -DORX_SHARED_LIBRARY_EXT=\"@[EMAIL PROTECTED]"
+                  -DORX_CATDIR=\"$(catdir)\"
 
 messageXML = $(build_messages_dir)/rexxmsg.xml
 
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to