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