On 07/04/2009, mt...@apache.org <mt...@apache.org> wrote: > Author: mturk > Date: Tue Apr 7 12:09:08 2009 > New Revision: 762729 > > URL: http://svn.apache.org/viewvc?rev=762729&view=rev > Log: > Some initial commits > > Added: > commons/sandbox/runtime/trunk/src/main/native/Makefile.in (with props) > commons/sandbox/runtime/trunk/src/main/native/configure (with props) > commons/sandbox/runtime/trunk/src/main/native/include/acr.h (with props) > commons/sandbox/runtime/trunk/xdocs/images/logo.png (with props) > Modified: > commons/sandbox/runtime/trunk/NOTICE.txt > commons/sandbox/runtime/trunk/src/main/java/overview.html > commons/sandbox/runtime/trunk/xdocs/proposal.xml > > Modified: commons/sandbox/runtime/trunk/NOTICE.txt > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/NOTICE.txt?rev=762729&r1=762728&r2=762729&view=diff > > ============================================================================== > --- commons/sandbox/runtime/trunk/NOTICE.txt (original) > +++ commons/sandbox/runtime/trunk/NOTICE.txt Tue Apr 7 12:09:08 2009 > @@ -1,2 +1,5 @@ > +Apache Commons Runtime > +Copyright 2009 The Apache Software Foundation > +
Thanks! > This product includes software developed by > The Apache Software Foundation (http://www.apache.org/). > > Modified: commons/sandbox/runtime/trunk/src/main/java/overview.html > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/overview.html?rev=762729&r1=762728&r2=762729&view=diff > > ============================================================================== > --- commons/sandbox/runtime/trunk/src/main/java/overview.html (original) > +++ commons/sandbox/runtime/trunk/src/main/java/overview.html Tue Apr 7 > 12:09:08 2009 > @@ -1,5 +1,7 @@ > <html> > <!-- > + Apache Commons Runtime The above line is not part of the AL header. Not sure if it is allowed or not. > + Copyright 2009 The Apache Software Foundation The AL 2.0 header specifically does NOT include the copyright line which is now in the NOTICE file. See: http://www.apache.org/legal/src-headers.html#header-text > Licensed to the Apache Software Foundation (ASF) under one or more > contributor license agreements. See the NOTICE file distributed with > > Added: commons/sandbox/runtime/trunk/src/main/native/Makefile.in > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/Makefile.in?rev=762729&view=auto > > ============================================================================== > --- commons/sandbox/runtime/trunk/src/main/native/Makefile.in (added) > +++ commons/sandbox/runtime/trunk/src/main/native/Makefile.in Tue Apr 7 > 12:09:08 2009 > @@ -0,0 +1,112 @@ > +# Apache Commons Runtime > +# Copyright 2009 The Apache Software Foundation > +# As above, the copyright should NOT be present. > +# Licensed to the Apache Software Foundation (ASF) under one or more > +# contributor license agreements. See the NOTICE file distributed with > +# this work for additional information regarding copyright ownership. > +# The ASF licenses this file to You under the Apache License, Version 2.0 > +# (the "License"); you may not use this file except in compliance with > +# the License. You may obtain a copy of the License at > +# > +# http://www.apache.org/licenses/LICENSE-2.0 > +# > +# Unless required by applicable law or agreed to in writing, software > +# distributed under the License is distributed on an "AS IS" BASIS, > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > +# See the License for the specific language governing permissions and > +# limitations under the License. > +# > +# ==================================================================== > +# > +# Apache Commons Runtime Makefile > +# > +# XXX: Do not use GNU make extensions > +# because it breaks the Solaris build. > +# > +# ==================================================================== > +# > + > +na...@name@ > +ho...@host@ > +ma...@mach@ > +bi...@bits@ > +...@cc@ > +...@so@ > +o...@obj@ > +e...@exe@ > +...@ar@ > +ranl...@ranlib@ > +pref...@prefix@ > +libd...@libdir@ > +topd...@topdir@ > +c...@cpp@ > +c...@cxx@ > +cfla...@ccflags@ -DACR_DECLARE_EXPORT -DACR_CORE_PRIVATE > +cppfla...@cppopts@ > +cxxfla...@cxxopts@ > +ldfla...@ldflags@ > +shfla...@shflags@ > +includ...@includes@ > + > +DESTDIR=$(PREFIX) > +SONAME=lib$(NAME)$(SO) > +SHAREDLIB=lib$(NAME)$(SO) > + > +SRCDIR=$(TOPDIR)/src > +INCDIR=$(TOPDIR)/include > +BLDDIR=$(TOPDIR)/.libs > +PWDDIR=$(PWD) > + > +ARCH_DIRS=\ > + $(SRCDIR)/shared \ > + $(SRCDIR)/os/unix \ > + $(SRCDIR)/os/linux \ > + $(SRCDIR)/os/solaris \ > + $(SRCDIR)/os/darwin \ > + $(SRCDIR)/os/unix \ > + $(SRCDIR)/os/hpux \ > + $(SRCDIR)/os/win32 > + > +COMMON_OBJS=\ > + $(SRCDIR)/main.$(OBJ) \ > + $(SRCDIR)/buildmark.$(OBJ) \ > + $(SRCDIR)/shared/error.$(OBJ) \ > + $(SRCDIR)/shared/utils.$(OBJ) \ > + > +LINUX_OBJS= \ > + $(SRCDIR)/os/linux/os.$(OBJ) \ > + $(SRCDIR)/os/linux/cpu.$(OBJ) > + > +SOLARIS_OBJS= \ > + $(SRCDIR)/os/solaris/os.$(OBJ) \ > + $(SRCDIR)/os/solaris/cpu.$(OBJ) > + > + > +all: setup $(SHAREDLIB) > + > +.c.$(OBJ): > + $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< > + > +.cpp.$(OBJ): > + $(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) -c -o $@ $< > + > +$(SHAREDLIB): $(COMMON_OBJS) $(@platf...@_objs) > + $(CC) $(SHFLAGS) $(LDFLAGS) -o $(BLDDIR)/$@ $(COMMON_OBJS) > $(@platf...@_objs) > + > +setup: > + @mkdir -p $(BLDDIR) > + > +clean: > + for i in $(SRCDIR) $(ARCH_DIRS) ; do rm -f $$i/*.$(OBJ) ; done > + rm -f $(BLDDIR)/* > + > +distclean: clean > + rm -f $(TOPDIR)/Makefile > + rm -f $(INCDIR)/cconfig.h > + rm -rf $(BLDDIR) > + > +install: all > + @mkdir -p $(DESTDIR)/include > + @mkdir -p $(DESTDIR)/$(LIBDIR) > + cp -f $(INCDIR)/* $(DESTDIR)/include/ > + cp -f $(BLDDIR)/$(SHAREDLIB) $(DESTDIR)/lib/ > > Propchange: commons/sandbox/runtime/trunk/src/main/native/Makefile.in > > ------------------------------------------------------------------------------ > svn:eol-style = native > > Added: commons/sandbox/runtime/trunk/src/main/native/configure > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/configure?rev=762729&view=auto > > ============================================================================== > --- commons/sandbox/runtime/trunk/src/main/native/configure (added) > +++ commons/sandbox/runtime/trunk/src/main/native/configure Tue Apr 7 > 12:09:08 2009 > @@ -0,0 +1,477 @@ > +#!/bin/sh > +# Apache Commons Runtime > +# Copyright 2009 The Apache Software Foundation > +# > +# Licensed to the Apache Software Foundation (ASF) under one or more > +# contributor license agreements. See the NOTICE file distributed with > +# this work for additional information regarding copyright ownership. > +# The ASF licenses this file to You under the Apache License, Version 2.0 > +# (the "License"); you may not use this file except in compliance with > +# the License. You may obtain a copy of the License at > +# > +# http://www.apache.org/licenses/LICENSE-2.0 > +# > +# Unless required by applicable law or agreed to in writing, software > +# distributed under the License is distributed on an "AS IS" BASIS, > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > +# See the License for the specific language governing permissions and > +# limitations under the License. > +# > +# ==================================================================== > +# > +# configure Simple configure script with no dependency on > +# GNU autoconf tools. > +# > +# Important environment variables > +# > +# CC Compiler used defaults to gcc > +# CPP Preprocessor used defaults to gcc -E > +# CFLAGS Compile task flags > +# CPPFLAGS C Preprocessor flags > +# CXXFLAGS C++ Preprocessor flags > +# LDFLAGS Library flags added to the linked > +# Usually -L<dir> and -llibrary > +# SHFLAGS Ling task flags > +# RCFLAGS Resuurce compile task flags > +# Used only on windows. > +# TOPDIR Top directory defaults to . > +# JAVA_HOME Home of the Java SDK > +# Overridable by --with-java-home option > +# > +# ==================================================================== > +# > + > +name=acr > +prefix="${PREFIX:=/usr/local}" > +libdir="lib" > +cc="${CC:=gcc}" > +cxx="${CXX:=g++}" > +ar="${AR:=ar}" > +ranlib="${RANLIB:=ranlib}" > +topdir="${TOPDIR:=.}" > +cpp="${CPP:=$cc -E}" > +ccflags="$CFLAGS" > +cppopts="$CPPFLAGS" > +cxxopts="$CXXFLAGS" > +ldflags="$LDFLAGS" > +shflags="$SHFLAGS" > +rcflags="$RCFLAGS" > +includes="-I$topdir/include" > +bige="0" > +so=".so" > +exe="" > +obj="o" > +bits="" > +nmake="" > +java_home="$JAVA_HOME" > +java_pinc="" > +has_dso_test=false > +has_jni=false > +has_64_bit=false > + > +for o > +do > + case "$o" in > + -*=*) a=`echo "$o" | sed 's/^[-_a-zA-Z0-9]*=//'` > + ;; > + --enable-*) a=`echo "$o" | sed -e 's/--enable-//' -e 's/-/_/'` > + eval has_$a=true > + shift > + continue > + ;; > + --disable-*) a=`echo "$o" | sed -e 's/--disable-//' -e 's/-/_/'` > + eval has_$a=false > + shift > + continue > + ;; > + *=*) a=`echo "$o" | sed 's/^[_a-zA-Z0-9]*=//'` > + ;; > + *) a='' > + ;; > + esac > + case "$o" in > + --name=* ) > + name="$a" > + shift > + ;; > + --prefix=* ) > + prefix="$a" > + shift > + ;; > + --libdir=* ) > + libdir="$a" > + shift > + ;; > + --with-cc=* ) > + cc="$a" > + shift > + ;; > + --with-cxx=* ) > + cxx="$a" > + shift > + ;; > + --with-cpp=* ) > + cpp="$a" > + shift > + ;; > + --with-java-home=* ) > + java_home="$a" > + shift > + ;; > + --with-java-platform=* ) > + java_pinc="$a" > + shift > + ;; > + CC=*) cc="$a" ; shift ;; > + CXX=*) cxx="$a" ; shift ;; > + CPP=*) cpp="$a" ; shift ;; > + CFLAGS=*) ccflags="$a" ; shift ;; > + CPPFLAGS=*) cppopts="$a" ; shift ;; > + CXXFLAGS=*) cxxopts="$a" ; shift ;; > + LDFLAGS=*) ldflags="$a" ; shift ;; > + SHFLAGS=*) shflags="$a" ; shift ;; > + RCFLAGS=*) rcflags="$a" ; shift ;; > + * ) > + cat 1>&2 << EOH > +Usage: ./configure [OPTION]... [VAR=VALUE]... > + > +To assign environment variables (e.g., CC, CFLAGS...), specify them as > +VAR=VALUE. See below for descriptions of some of the useful variables. > + > +Usage: configure [options] > + > +Installation directories: > + --prefix=PREFIX install architecture-independent files in PREFIX > + [/usr/local] > + --libdir=LPREFIX install architecture-dependent files in LPREFIX > + [PREFIX/lib] > + > + > +Some influential environment variables: > + CC C compiler command > + CFLAGS C compiler flags > + CXX C++ compiler command > + CXXFLAGS C++ compiler flags > + CPP C preprocessor > + CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have > + headers in a nonstandard directory <include dir> > + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a > + nonstandard directory <lib dir> > + SHFLAGS Linker command flags > + > +EOH > + exit 1 > + ;; > + esac > +done > + > +varadds() > +{ > + if [ ".$2" = ".::" ]; then > + eval "$1=\"\"" > + else > + eval e="\$$1" > + if [ ".$e" = . ]; then > + eval "$1=\"$2\"" > + else > + for v in $2 > + do > + do_adds=true > + for i in $e > + do > + if [ ".$v" = ".$i" ]; then > + do_adds=false > + break > + fi > + done > + if $do_adds; then > + e="$e $v" > + fi > + done > + eval "$1=\"$e\"" > + fi > + fi > +} > + > +toupper() > +{ > + echo "$1" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' > +} > + > +tolower() > +{ > + echo "$1" | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' > +} > + > +if [ ".$java_home" = . ]; then > + echo Missing JAVA_HOME environment variable > + exit 1 > +fi > +if [ ! -d "$java_home" ]; then > + echo "\`$java_home' is not valid JAVA_HOME directory" > +fi > + > +varadds includes "-I$java_home/include" > + > +mach=`(uname -m) 2>/dev/null` || mach="unknown" > +host=`(uname -s) 2>/dev/null` || host="unknown" > +host=`tolower "$host"` > + > +if $has_64_bit; then > + bits="64" > +fi > + > +case "$host" in > + hp-ux ) > + platform="HPUX" > + host="hpux" > + ;; > + sunos ) > + platform="SOLARIS" > + host="solaris" > + ;; > + cygwin* ) > + platform="WINDOWS" > + host="windows" > + ;; > + * ) > + platform=`toupper "$host"` > + ;; > +esac > + > +case "$mach" in > + amd64 ) > + mach="x86_64" > + ;; > + i[3-6]86 ) > + mach="i386" > + ;; > + i86pc ) > + mach="i386" > + ;; > + sun4* ) > + mach="sparc" > + bige="1" > + ;; > + 9000/[678][0-9][0-9] ) > + mach="parisc" > + bige="1" > + ;; > +esac > + > +case "$host-$cc" in > + linux-gcc ) > + varadds cppopts "-DLINUX=2 -D_GNU_SOURCE" > + varadds ccflags "-fPIC -O3 -Wall -g" > + varadds ldflags "-lrt -lpthread -ldl" > + varadds shflags "-shared -fPIC -Wl,-soname -Wl,lib$name$so" > + if [ ".$java_pinc" = . ]; then java_pinc=linux; fi > + ;; > + darwin-gcc ) > + r="`uname -r | sed 's/\.//g'`" > + varadds cppopts "-DDARWIN=$r" > + varadds ccflags "-fPIC -O3 -g" > + varadds ldflags "-lrt -lpthread -ldl" > + varadds shflags "-shared -fPIC -Wl,-soname -Wl,lib$name$so" > + if $has_jni ; then so=".jnilib"; else so=".dynlib"; fi > + ;; > + solaris-cc ) > + r="`uname -r | sed 's/5.//'`" > + varadds ccflags "-fast -O -Xa -KPIC" > + varadds cppopts "-D_POSIX_PTHREAD_SEMANTICS -DSOLARIS2=$r" > + varadds ldflags "-lrt -lthread -lsocket -lnsl -ldl" > + varadds shflags "-G -KPIC -dy" > + if [ ".$java_pinc" = . ]; then java_pinc=solaris; fi > + ;; > + hpux-cc ) > + r="`uname -r | sed 's/[A-Z].[0-9]*.//'`" > + varadds ccflags "-Ae +O2 -z" > + varadds cppopts "-D_HPUX_SOURCE -DHPUX11=$r" > + varadds ldflags "-lrt -lpthread -ldl" > + varadds shflags "+Z -b" > + so=".sl" > + if [ ".$java_pinc" = . ]; then java_pinc="hp-ux"; fi > + ;; > + windows-cl ) > + varadds ccflags "-nologo -O2 -Ob2 -Oy- -Zi -D_MD -MD -W3" > + varadds cppopts "-DWIN32 -D_WIN32 -D_WINDOWS -D_WINNT" > + varadds cppopts "-D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0600" > + varadds cxxopts "/TP" > + varadds ldflags "kernel32.lib advapi32.lib ws2_32.lib mswsock.lib" > + varadds ldflags "ole32.lib shell32.lib rpcrt4.lib" > + varadds shflags "/NOLOGO /OPT:REF" > + so=".dll" > + exe=".exe" > + obj="obj" > + nmake=".msc" > + if [ ".$java_pinc" = . ]; then java_pinc="win32"; fi > + ;; > + * ) > + echo "$host$bits-$cc platform is not supported!" > + exit 1 > + ;; > +esac > + > +case "$host$bits-$cc" in > + hpux64-cc ) > + varadds ccflags "+DD64" > + varadds shflags "+DD64" > + ;; > + windows-cl ) > + varadds ccflags "-D_X86_=1" > + varadds shflags "/MACHINE:X86" > + ;; > + windows64-cl ) > + varadds ccflags "-DWIN64 -D_WIN64 -Wp64 -D_AMD64_=1" > + varadds shflags "/MACHINE:AMD64" > + ;; > + *64-* ) > + varadds ccflags "-m64" > + varadds shflags "-m64" > + ;; > +esac > + > +if [ -n "$java_pinc" ]; then > + if [ -d "$java_home/include/$java_pinc" ]; then > + varadds includes "-I$java_home/include/$java_pinc" > + else > + echo "" > + echo "Warning: \`$java_home/include/$java_pinc' in not a directory" > + fi > +fi > + > +varadds cppopts "-D_REENTRANT -D_LARGEFILE64_SOURCE" > + > +test=ctest$$ > + > +if $has_dso_test; then > + cat > $test.c << EOF > +extern int getchar(); > +int hello() {return getchar();} > +EOF > + > + echo "Checking for shared library support..." > + ok=false > + if [ "`($cc -c $ccflags $cppflags $test.c) 2>&1`" = "" ]; then > + if [ "`($cc $shflags $ldflags -o $test$so $test.$obj) 2>&1`" = "" > ]; then > + echo "Building shared library for $host-$cc." > + ok=true > + fi > + fi > + if ! $ok; then > + echo "No shared library support!" > + exit 1 > + fi > + rm -f $test.* $test >/dev/null 2>&1 || true > +fi > + > +have_include() > +{ > + cat > $test.c << EOF > +#include <stdlib.h> > +#include <$1.h> > +int main() {return 0;} > +EOF > + co="`$cc $ccflags $cppopts $test.c -o $test$exe 2>&1`" > + if [ ".$co" = "." ]; then > + echo 1 > + else > + if [ -x $test$exe ]; then > + echo 1 > + else > + echo 0 > + fi > + fi > + rm -f $test.* $test *.pdb >/dev/null 2>&1 || true > +} > + > +test_csizeof() > +{ > + cat > $test.c << EOF > +#include <stdio.h> > +#include <stdlib.h> > +#include <sys/types.h> > + > +int main() {printf("%d", sizeof($1));return 0;} > +EOF > + $cc $ccflags $cppopts $test.c -o $test$exe >/dev/null 2>&1 > + if [ -x $test$exe ]; then > + ./$test$exe 2>&1 > + else > + echo 0 > + fi > + rm -f $test.* $test *.pdb >/dev/null 2>&1 || true > +} > + > +# Generate configuration header file > +# > +cat > $topdir/include/ccconfig.h << EOF > +# AUTOMATICALY GENERATED -- DO NOT EDIT > +# > +#ifndef _CCCONFIG_H > +#define _CCCONFIG_H > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +#define HAVE_UNISTD_H `have_include unistd` > +#define HAVE_STRING_H `have_include string` > +#define HAVE_STRINGS_H `have_include strings` > +#define HAVE_WINDOWS_H `have_include windows` > +#define HAVE_INTTYPES_H `have_include inttypes` > +#define HAVE_DLFCN_H `have_include dlfcn` > +#define HAVE_LINK_H `have_include link` > +#define HAVE_SYS_TYPES_H `have_include sys/types` > +#define HAVE_SYS_CDEFS_H `have_include sys/cdefs` > +#define HAVE_SYS_RESOURCE_H `have_include sys/resource` > +#define HAVE_SYS_SOCKET_H `have_include sys/socket` > +#define HAVE_SYS_WAIT_H `have_include sys/wait` > +#define HAVE_SYS_SYSLIMITS_H `have_include sys/syslimits` > +#define HAVE_LIMITS_H `have_include limits` > + > +#define HAS_BIG_ENDIAN $bige > + > +#define CC_SIZEOF_INT `test_csizeof int` > +#define CC_SIZEOF_LONG `test_csizeof long` > +#define CC_SIZEOF_LONG_LONG `test_csizeof 'long long'` > +#define CC_SIZEOF_VOIDP `test_csizeof 'void *'` > +#define CC_SIZEOF_SIZE_T `test_csizeof size_t` > +#define CC_SIZEOF_OFF64_T `test_csizeof off64_t` > + > +EOF > + > +cat >> $topdir/include/ccconfig.h << EOF > + > +#ifdef __cplusplus > +} > +#endif > +#endif /* _CCCONFIG_H */ > +EOF > + > +sed -e "s;=...@cc@;=$cc;g" \ > + -e "s;=...@cpp@;=$cpp;g" \ > + -e "s;=...@cxx@;=$cxx;g" \ > + -e "s;=...@so@;=$so;g" \ > + -e "s;=...@obj@;=$obj;g" \ > + -e "s;=...@exe@;=$exe;g" \ > + -e "s;=...@ar@;=$ar;g" \ > + -e "s;=...@host@;=$host;g" \ > + -e "s;=...@mach@;=$mach;g" \ > + -e "s;=...@bits@;=$bits;g" \ > + -e "s;@platform@;$platform;g" \ > + -e "s;=...@ranlib@;=$ranlib;g" \ > + -e "s;=...@prefix@;=$prefix;g" \ > + -e "s;=...@libdir@;=$libdir;g" \ > + -e "s;=...@topdir@;=$topdir;g" \ > + -e "s;=...@ccflags@;=$ccflags;g" \ > + -e "s;=...@cppopts@;=$cppopts;g" \ > + -e "s;=...@cxxopts@;=$cxxopts;g" \ > + -e "s;=...@ldflags@;=$ldflags;g" \ > + -e "s;=...@shflags@;=$shflags;g" \ > + -e "s;=...@rcflags@;=$rcflags;g" \ > + -e "s;=...@includes@;=$includes;g" \ > + -e "s;=...@name@;=$name;g" \ > + Makefile$nmake.in > Makefile$nmake > + > +echo "Configured for $host$bits-$cc." > > Propchange: commons/sandbox/runtime/trunk/src/main/native/configure > > ------------------------------------------------------------------------------ > svn:eol-style = LF > > Propchange: commons/sandbox/runtime/trunk/src/main/native/configure > > ------------------------------------------------------------------------------ > svn:executable = * > > Added: commons/sandbox/runtime/trunk/src/main/native/include/acr.h > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr.h?rev=762729&view=auto > > ============================================================================== > --- commons/sandbox/runtime/trunk/src/main/native/include/acr.h (added) > +++ commons/sandbox/runtime/trunk/src/main/native/include/acr.h Tue Apr 7 > 12:09:08 2009 > @@ -0,0 +1,252 @@ > +/* Apache Commons Runtime > + * Copyright 2009 The Apache Software Foundation > + * > + *Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > + > +#ifndef _ACR_H > +#define _ACR_H > + > +#include "ccconfig.h" > +#if HAVE_WINDOWS_H > +#ifndef WIN32_LEAN_AND_MEAN > +#define WIN32_LEAN_AND_MEAN > +#endif > + > +#include <windows.h> > + > +#ifdef _M_IA64 > +/* Fix bug in PlatforSDK headers */ > +#define TMP_IA64 _M_IA64 > +#undef _M_IA64 > +#include <winternl.h> > +#define _M_IA64 TMP_IA64 > +#else > +#include <winternl.h> > +#endif > +#include <winsock2.h> > +#include <mswsock.h> > +#include <ws2tcpip.h> > +#endif /* HAVE_WINDOWS_H */ > + > +#include <stdlib.h> > +#include <stdarg.h> > +#include <stdio.h> > +#include <stddef.h> > + > +#if HAVE_UNISTD_H > +#include <unistd.h> > +#endif > +#if HAVE_STRING_H > +#include <string.h> > +#endif > +#if HAVE_STRINGS_H > +#include <strings.h> > +#endif > +#if HAVE_INTTYPES_H > +#include <inttypes.h> > +#endif > +#if HAVE_DLFCN_H > +#include <dlfcn.h> > +#endif > +#define HAVE_LINK_H > +#include <link.h> > +#endif > +#if HAVE_SYS_TYPES_H > +#include <sys/types.h> > +#endif > +#if HAVE_SYS_CDEFS_H > +#include <sys/cdefs.h> > +#endif > +#if HAVE_SYS_RESOURCE_H > +#include <sys/resource.h> > +#endif > +#if HAVE_SYS_SOCKET_H > +#include <sys/socket.h> > +#endif > +#if HAVE_SYS_WAIT_H > +#include <sys/wait.h> > +#endif > +/* Header files for PATH_MAX, _POSIX_PATH_MAX */ > +#if HAVE_LIMITS_H > +#include <limits.h> > +#else > +#if HAVE_SYS_SYSLIMITS_H > +#include <sys/syslimits.h> > +#endif > +#endif > + > +/* JNI header */ > +#include <jni.h> > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +#ifdef __cplusplus > +#define ACR_BEGIN_DECLS extern "C" { > +#define ACR_END_DECLS } > +#else > +#define ACR_BEGIN_DECLS > +#define ACR_END_DECLS > +#endif > + > +/* Typedefs that ACR needs. */ > +typedef unsigned char acr_byte_t; > +typedef short acr_int16_t; > +typedef unsigned short acr_uint16_t; > +typedef int acr_int32_t; > +typedef unsigned int acr_uint32_t; > +typedef unsigned long apr_ino_t; > +typedef size_t acr_size_t; > + > +#if defined(_MSC_VER) > +typedef ptrdiff_t acr_ssize_t; > +typedef __int64 acr_int64_t; > +typedef unsigned __int64 acr_uint64_t; > +typedef __int64 acr_off_t; > +typedef int acr_socklen_t; > +#else > +typedef ssize_t acr_ssize_t; > +typedef long long acr_int64_t; > +typedef unsigned long long acr_uint64_t; > +typedef off64_t acr_off_t; > +typedef socklen_t acr_socklen_t; > +#endif > + > + > +#if CC_SIZEOF_VOIDP == 8 > +typedef acr_uint64_t acr_ptr_t; > +#else > +typedef acr_uint32_t acr_ptr_t; > +#endif > + > +/** > + * ACR_DECLARE_EXPORT is defined when building the ANNEX dynamic library, > + * so that all public symbols are exported. > + * > + * ACR_DECLARE_STATIC is defined when including the ACR public headers, > + * to provide static linkage when the dynamic library may be unavailable. > + * > + * ACR_DECLARE_STATIC and ACR_DECLARE_EXPORT are left undefined when > + * including the ACR public headers, to import and link the symbols from > + * the dynamic ACR library and assure appropriate indirection and calling > + * conventions at compile time. > + */ > + > +#if !defined(_WIN32) > +/** > + * The public ACR functions are declared with ACR_DECLARE(), so they may > + * use the most appropriate calling convention. Public ACR functions with > + * variable arguments must use ACR_DECLARE_NONSTD(). > + * > + * @deffunc ACR_DECLARE(rettype) apr_func(args); > + */ > +#define ACR_DECLARE(type) type > +/** > + * The public ACR functions using variable arguments are declared with > + * ACR_DECLARE_NONSTD(), as they must use the C language calling convention. > + * > + * @deffunc ACR_DECLARE_NONSTD(rettype) apr_func(args, ...); > + */ > +#define ACR_DECLARE_NONSTD(type) type > +/** > + * The public ACR variables are declared with ACR_DECLARE_DATA. > + * This assures the appropriate indirection is invoked at compile time. > + * > + * @deffunc ACR_DECLARE_DATA type apr_variable; > + * @tip extern ACR_DECLARE_DATA type apr_variable; syntax is required for > + * declarations within headers to properly import the variable. > + */ > +#define ACR_DECLARE_DATA > +#elif defined(ACR_DECLARE_STATIC) > +#define ACR_DECLARE(type) type __stdcall > +#define ACR_DECLARE_NONSTD(type) type > +#define ACR_DECLARE_DATA > +#elif defined(ACR_DECLARE_EXPORT) > +#define ACR_DECLARE(type) __declspec(dllexport) type __stdcall > +#define ACR_DECLARE_NONSTD(type) __declspec(dllexport) type > +#define ACR_DECLARE_DATA __declspec(dllexport) > +#else > +/** > + * The public ACR functions are declared with ACR_DECLARE(), so they may > + * use the most appropriate calling convention. Public ACR functions with > + * variable arguments must use ACR_DECLARE_NONSTD(). > + * > + */ > +#define ACR_DECLARE(type) __declspec(dllimport) type __stdcall > +/** > + * The public ACR functions using variable arguments are declared with > + * ACR_DECLARE_NONSTD(), as they must use the C language calling convention. > + * > + */ > +#define ACR_DECLARE_NONSTD(type) __declspec(dllimport) type > +/** > + * The public ACR variables are declared with ACR_DECLARE_DATA. > + * This assures the appropriate indirection is invoked at compile time. > + * > + * @remark extern ACR_DECLARE_DATA type apr_variable; syntax is required for > + * declarations within headers to properly import the variable. > + */ > +#define ACR_DECLARE_DATA __declspec(dllimport) > +#endif > + > +#if !defined(_WIN32) || defined(ACR_MODULE_DECLARE_STATIC) > +/** > + * Declare a dso module's exported module structure as > ACR_MODULE_DECLARE_DATA. > + * > + * Unless ACR_MODULE_DECLARE_STATIC is defined at compile time, symbols > + * declared with ACR_MODULE_DECLARE_DATA are always exported. > + * @code > + * module ACR_MODULE_DECLARE_DATA mod_tag > + * @endcode > + */ > +#if defined(_WIN32) > +#define ACR_MODULE_DECLARE(type) type __stdcall > +#else > +#define ACR_MODULE_DECLARE(type) type > +#endif > +#define ACR_MODULE_DECLARE_NONSTD(type) type > +#define ACR_MODULE_DECLARE_DATA > +#else > +/** > + * ACR_MODULE_DECLARE_EXPORT is a no-op. Unless contradicted by the > + * ACR_MODULE_DECLARE_STATIC compile-time symbol, it is assumed and defined. > + */ > +#define ACR_MODULE_DECLARE_EXPORT > +#define ACR_MODULE_DECLARE(type) __declspec(dllexport) type > __stdcall > +#define ACR_MODULE_DECLARE_NONSTD(type) __declspec(dllexport) type > +#define ACR_MODULE_DECLARE_DATA __declspec(dllexport) > +#endif > + > +#define ACR_OS_WINDOWS 0x1000 > +#define ACR_OS_WIN64 0x1001 > +#define ACR_OS_WIN64 0x1002 > +#define ACR_OS_UNIX 0x2000 > +#define ACR_OS_LINUX 0x2001 > +#define ACR_OS_SOLARIS 0x2002 > +#define ACR_OS_DARWIN 0x2004 > +#define ACR_OS_HPUX 0x2008 > + > +#define ACR_CLASS_PATH "org/apache/commons/runtime/" > +#define ACR_JNI_EXPORT_DECLARE(RT, CL, MN) \ > + JNIEXPORT RT JNICALL Java_org_apache_commons_runtime_##CL##_##MN > + > + > +#ifdef __cplusplus > +} > +#endif > +#endif /* _ACR_H * > > Propchange: commons/sandbox/runtime/trunk/src/main/native/include/acr.h > > ------------------------------------------------------------------------------ > svn:eol-style = native > > Added: commons/sandbox/runtime/trunk/xdocs/images/logo.png > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/xdocs/images/logo.png?rev=762729&view=auto > > ============================================================================== > Binary file - no diff available. > > Propchange: commons/sandbox/runtime/trunk/xdocs/images/logo.png > > ------------------------------------------------------------------------------ > svn:mime-type = image/png > > Modified: commons/sandbox/runtime/trunk/xdocs/proposal.xml > URL: > http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/xdocs/proposal.xml?rev=762729&r1=762728&r2=762729&view=diff > > ============================================================================== > --- commons/sandbox/runtime/trunk/xdocs/proposal.xml (original) > +++ commons/sandbox/runtime/trunk/xdocs/proposal.xml Tue Apr 7 12:09:08 2009 > @@ -7,8 +7,6 @@ > > <section name="Proposal for Runtime Package"> > > - > - > <subsection name="(0) Rationale"> > > <p>Apache Commons Runtime provide Java classes and > @@ -18,7 +16,7 @@ > </subsection> > <subsection name="(1) Scope of the Package"> > > -<p>Provide JNI abstraction layer of various operating features > +<p>Provide JNI abstraction layer of various operating system features > in a portable way.</p> > > </subsection> > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org