tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bjohn...@apache.org
Subject svn commit: r577058 - in /incubator/tuscany/cpp/sdo: README_ANT_INSTALL antscripts/TuscanyMSVC8DevStudioCCompiler.jar antscripts/system.xml
Date Tue, 18 Sep 2007 20:59:34 GMT
Author: bjohnson
Date: Tue Sep 18 13:59:33 2007
New Revision: 577058

URL: http://svn.apache.org/viewvc?rev=577058&view=rev
Log:
Fixed msvc compilation issues by creating custom cctask compiler. Adding README_ANT_INSTALL

Added:
    incubator/tuscany/cpp/sdo/README_ANT_INSTALL
    incubator/tuscany/cpp/sdo/antscripts/TuscanyMSVC8DevStudioCCompiler.jar   (with props)
Modified:
    incubator/tuscany/cpp/sdo/antscripts/system.xml

Added: incubator/tuscany/cpp/sdo/README_ANT_INSTALL
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/README_ANT_INSTALL?rev=577058&view=auto
==============================================================================
--- incubator/tuscany/cpp/sdo/README_ANT_INSTALL (added)
+++ incubator/tuscany/cpp/sdo/README_ANT_INSTALL Tue Sep 18 13:59:33 2007
@@ -0,0 +1,269 @@
+Using ant to build TuscanySDO Native
+
+This guide shows how to build TuscanySDO Native with apache ant. 
+Traditionally TuscanySDO was compiled with automake, but we decided
+it would be easier to maintain and more flexible if we switched to 
+ant. The ant build process is still in its beta and will be formalized
+for Release M4. Currently the only item remaining is to finish writing
+ant build files for the rest of the samples and tests.
+
+
+Required Software to build TuscanySDO Native with ant
+=====================================================
+
+Java:
+        Most Linux, Mac, and Windows systems come with Java
+        Java 1.4.2 or later
+
+Ant:
+        Ant comes installed with almost all Linux distributions
+        version 1.6 or later
+        Download: http://ant.apache.org/
+
+antcontrib:
+        version 1.0b3 or later
+        Download: http://ant-contrib.sourceforge.net/
+
+antcontrib cpptasks.jar
+        version 1.0b4 or later
+        Download: http://ant-contrib.sourceforge.net/
+        Information: http://ant-contrib.sourceforge.net/cc.html
+
+
+Installation Instructions
+=========================
+
+Linux/Mac
+---------
+
+Make sure JAVA_HOME is set before starting.
+
+Install ant according to http://ant.apache.org/manual/index.html.
+
+Set the ANT_HOME variable to the directory where you install ant.
+export ANT_HOME="/home/your/ant"
+
+Add $ANT_HOME/bin to your path.
+export PATH="${PATH}:${ANT_HOME}/bin"
+
+The optional ant tasks included in antcontrib and cpptasks are needed to
+compile Tuscany Native with ant. Additional ant tasks (antcontrib and cpptasks)
+should be installed in $ANT_HOME/lib
+So place the antcontrib and cpptasks jars there.
+
+If you dont have write access to $ANT_HOME/lib, do the following:
+- create ${user.home}/.ant/lib
+- place the jars here
+
+Typically its a good idea to avoid adding optional ant tasks to your classpath,
+this can be problematic.
+
+Since the antcontrib compiler adaptor for microsoft msvc 8 has several bugs, we've
+written our own. Even though this compiler is for Windows, it is referenced in the
+ant build scripts and thus needs to be added to the classpath even for Linux/Mac.
+Add the TuscanyMSVC8DevStudioCCompiler jar to your classpath.
+export CLASSPATH="${CLASSPATH}:/TuscanySourceDir/antscripts/TuscanyMSVC8DevStudioCCompiler.jar"
+
+Windows
+-------
+
+Make sure JAVA_HOME is set before starting.
+
+Install ant according to http://ant.apache.org/manual/index.html.
+
+Set the ANT_HOME variable to the directory where you install ant.
+set ANT_HOME=c:\ant
+
+Add %ANT_HOME%\bin to your path.
+set PATH=%PATH%;%ANT_HOME%\bin
+
+The optional ant tasks included in antcontrib and cpptasks are needed to
+compile Tuscany Native with ant. Additional ant tasks (antcontrib and cpptasks)
+should be installed in %ANT_HOME%\lib
+So place the antcontrib and cpptasks jars there.
+
+If you dont have write access to %ANT_HOME%\lib, do the following:
+- create %user.home%\.ant\lib
+- place the jars here
+
+Typically its a good idea to avoid adding optional ant tasks to your classpath,
+this can be problematic.
+
+Since the antcontrib compiler adaptor for microsoft msvc 8 has several bugs, we've
+written our own, namely TuscanyMSVC8DevStudioCCompiler. The Tuscany MSVC8 adaptor 
+just makes sure that the correct parameters are passed to the compiler.
+Add the TuscanyMSVC8DevStudioCCompiler jar to your classpath.
+set CLASSPATH=%CLASSPATH%:c:\TuscanySourceDir\antscripts\TuscanyMSVC8DevStudioCCompiler.jar
+
+USAGE
+=====
+
+From the TuscanySDO Native root source directory, the entire application can be 
+compiled, linked, and installed by simply executing ant with no targets. This will
+execute the default "all" target.
+
+# ant
+
+The ant build system will scan your environment variables and ant configuration file
+and try to autoconfigure everything needed to build.  The environment variables can be 
+overridden by the ant configuration file: antscripts/platform.properties.  The only 
+configuration that is mandatory to build TuscanySDO Native is the location of libxml2.
+
+To configure the location of libxml2, do one of the following:
+  export LIBXML2_LIB=/libxml2/lib/dir
+  export LIBXML2_INCLUDE=/libxml2/include/dir
+  -- OR --
+  edit antscripts/platform.properties
+  platform.libxml2.lib.dir=/libxml2/lib/dir
+  platform.libxml2.include.dir=/libxml2/include/dir
+
+The platform.properties configuration always overrides environment variables.
+See the CONFIGURATION section below for more information.
+
+To compile in debug mode, add the following define to the ant command line or
+edit the platform.properties file as seen in the CONFIGURATION section below.
+
+# ant -Ddebug=true
+
+The TuscanySDO Native ant build process is hierarchical. Currently there are 
+build scripts in the following locations, which can all be invoked from the 
+root TuscanySDO directory:
+  TUSCANY_SDO_SRC_ROOT/build.xml
+  TUSCANY_SDO_SRC_ROOT/runtime/core/build.xml
+
+For a listing of public targets for any build.xml file, execute the following: 
+(display shown for the root src directory)
+
+# ant -p
+Buildfile: build.xml
+
+Main targets:
+
+ all      build and install all TuscanySdoNative source code and documentation
+ build    Build all TuscanySdoNative source code and documentation
+ clean    Clean all TuscanySdoNative compiled source code
+ install  Install TuscanySdoNative libraries and headers
+ test     Run SDO tests, not implemented yet
+Default target: all
+
+
+Public targets are those that have descriptions and are usually the only ones needed for
+compiling, installing and cleaning. For more avanced use, the private targets can be seen

+by looking at the actual build.xml file.
+
+
+CONFIGURATION
+==============
+
+The following explains how to configure the TuscanySDO Native ant build system.
+The build system is configured either by environment variables and/or by the
+antscripts/platform.properties file. Some options can only be configured via the
+platform.properties file. If an option can be configured in both places, the option
+specified in the platform.properties file overrides the environment variable.
+
+The TuscanySDO Native ant build system is capable of automatically configuring 
+everything except the location of the libxml2 library. All other configuration 
+options can be determined. (except of course the location of the optional 3rd-party
+packages: axis2c) 
+
+From anywhere there is a TuscanySDO Native build.xml file, the current system
+configuration can be displayed by executing the display.system ant target as 
+follows:
+
+# ant display.system
+Buildfile: build.xml
+
+check.libxml2:
+
+check.ws:
+
+display.system:
+     [echo]
+     [echo] TuscanySDO paths
+     [echo]   tuscanySDO.root.dir=         /amd/homes/bjohnson/tuscany_svn_head/sdo
+     [echo]   tuscanySDO.root.src.dir=     /amd/homes/bjohnson/tuscany_svn_head/sdo/runtime
+     [echo]   tuscanySDO.install.dir=      /nfs/homes/bjohnson/tuscany_svn_head/sdo/deploy
+     [echo]   sdo.impl.library.name=       tuscany_sdo
+     [echo]   sdo.impl.library.path=       /nfs/homes/bjohnson/tuscany_svn_head/sdo/deploy/lib
+     [echo]   sdo.impl.include.path=       /amd/homes/bjohnson/tuscany_svn_head/sdo/runtime/core/src
+     [echo]   tuscanySDO.library.version=  '.0.0.0'
+     [echo]
+     [echo] TuscanySDO compiler configuration
+     [echo]   compiler.name=               'g++'
+     [echo]   debug.compile=               'false'
+     [echo]   lib.ext=                     '.so'
+     [echo]   dll.ext=                     ''
+     [echo]   lib.prefix=                  'lib'
+     [echo]   object.ext=                  '.o'
+     [echo]   exe.ext=                     ''
+     [echo]   script.ext=                  '.sh'
+     [echo]   external.definitions.file=   ''
+     [echo]
+     [echo] libxml2 location
+     [echo]   libxml2.lib.dir=          /usr/lib
+     [echo]   libxml2.include.dir=      /usr/include/libxml2
+     [echo]
+     [echo] axis2c location
+     [echo]   axis2c.home.dir=          /nfs/homes/bjohnson/3rdparty/axis2c-src-0.96/deploy
+     [echo]
+
+BUILD SUCCESSFUL
+Total time: 0 seconds
+
+
+Compilation configuration
+-------------------------
+
+The compilation options can all be determined by the ant build system by
+examining the platform.  The values can only be overriden by editing the 
+platform.properties file. Following is a list of the options and their 
+default values:
+
+platform.lib.ext=        (Defaults to ".so" for Unix and ".lib" for Windows)
+platform.dll.ext=        (Defaults to "" for Unix and ".dll" for Windows. Not used for Unix)
+platform.exe.ext=        (Defaults to "" for Unix and ".exe" for Windows)
+platform.object.ext=     (Defaults to ".o" for Unix and ".obj" for Windows)
+platform.script.ext=     (Defaults to ".sh" for Unix and ".bat" for Windows)
+platform.compiler.name=  (Defaults to "g++" for Unix and "msvc8" for Windows)
+platform.debug.compile=  (Defaults to "false" for both Unix and Windows)
+
+To configure ant to use a compiler other than g++ or msvc, or to add your own
+ant tasks/definitions, specify a path for the platform.external.definitions.file
+and platform.compiler.name in the platform.properties configuration file. This 
+is especially useful for compiling on other platforms like AIX or Solaris.
+
+Tuscany SDO installation path
+-----------------------------
+
+The Tuscany SDO installation directory can be configured as follows:
+  export TUSCANY_SDOCPP=/tuscany/sdo/native/install/dir
+  -- OR --
+  edit antscripts/platform.properties
+  platform.tuscanySDO.install.dir=/tuscany/sdo/native/install/dir
+
+The Tuscany SDO installation directory defaults to:
+  TUSCANY_SDO_SRC_ROOT/deploy
+
+
+3rd Party configuration
+-----------------------
+
+AXIS2C:
+If not specified, then the values are left empty and the sdo_axiom library will not be compiled.
+
+  export AXIS2C_HOME=/axis2c/home/dir
+   -- OR --
+  edit antscripts/platform.properties
+  platform.axis2c.home.dir=/axis2c/home/dir
+
+LIBXML2:
+If not specified, then the the build will fail.
+
+  export LIBXML2_LIB=/libxml2/library/directory
+  export LIBXML2_INCLUDE=/libxml2/include/directory
+    -- OR --
+  edit antscripts/platform.properties
+  platform.libxml2.lib.dir=/libxml2/library/directory
+  platform.libxml2.include.dir=/libxml2/include/directory
+
+

Added: incubator/tuscany/cpp/sdo/antscripts/TuscanyMSVC8DevStudioCCompiler.jar
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/antscripts/TuscanyMSVC8DevStudioCCompiler.jar?rev=577058&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/cpp/sdo/antscripts/TuscanyMSVC8DevStudioCCompiler.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: incubator/tuscany/cpp/sdo/antscripts/system.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/antscripts/system.xml?rev=577058&r1=577057&r2=577058&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/antscripts/system.xml (original)
+++ incubator/tuscany/cpp/sdo/antscripts/system.xml Tue Sep 18 13:59:33 2007
@@ -214,10 +214,11 @@
       </condition>
 
       <condition property="compiler.name" value="g++">
-        <or>
-          <os family="unix"/>
-          <os family="mac"/>
-        </or>
+        <os family="unix"/>
+       </condition>
+
+      <condition property="compiler.name" value="mac_g++">
+        <os family="mac"/>
       </condition>
     </else>
   </if>
@@ -426,26 +427,45 @@
 
   <!--
      Base compiler definition
+     For now the base compiler is empty.
     -->
-  <compiler id="Tuscany-BaseCompiler" multithreaded="true" exceptions="true" rtti="true">
-    <defineset if="windows" define="WIN32,_CRT_SECURE_NO_DEPRECATE,_CRT_NON_CONFORMING_SWPRINTFS"/>
-    <defineset if="mac" define="IS_DARWIN"/>
-  </compiler>
+  <compiler id="Tuscany-BaseCompiler" multithreaded="true" exceptions="true" rtti="true"/>
 
   <!--
      Specific compiler definitions
+     The compilerarg location functionality completely omits the arg: antcontrib bug 1794857
     -->
-  <compiler id="msvc-Compiler" extends="Tuscany-BaseCompiler" name="msvc"/>
-  <compiler id="msvc8-Compiler" extends="Tuscany-BaseCompiler" name="msvc" exceptions="false">
-    <compilerarg value="/EHsc"/>
+
+    <!-- MSVC compilers for windows -->
+  <compiler id="msvc-Compiler" extends="Tuscany-BaseCompiler" name="msvc">
+    <defineset define="WIN32,_CRT_SECURE_NO_DEPRECATE,_CRT_NON_CONFORMING_SWPRINTFS"/>
   </compiler>
-  <compiler id="g++-Compiler" extends="Tuscany-BaseCompiler" name="g++"/>
 
-  <!-- Used for cross compilation with the -m32 flag -->
+    <!-- MSVC compilers for windows 
+         The standard msvc ant contrib cc task compiler doesnt work so well,
+         so we made our own until the bugs are resolved. The actual implementation
+         of TuscanyMSVC8DevStudioCCompiler is in TuscanySCA/tools/ant_cpptasks
+     -->
+  <compiler id="msvc8-Compiler"
+            extends="Tuscany-BaseCompiler"
+            classname="tuscany.antCompilers.TuscanyMSVC8DevStudioCCompiler">
+    <defineset define="WIN32,_CRT_SECURE_NO_DEPRECATE,_CRT_NON_CONFORMING_SWPRINTFS"/>
+  </compiler>
+
+    <!-- g++ compiler for most Unix platforms -->
+  <compiler id="g++-Compiler" extends="Tuscany-BaseCompiler" name="g++"/>
+  
+    <!-- g++ compiler for most Unix platforms
+         Used for cross compilation with the -m32 flag -->
   <compiler id="g++m32-Compiler" extends="Tuscany-BaseCompiler" name="g++">
     <compilerarg value="-m32"/>
   </compiler>
 
+    <!-- g++ compiler for Apple mac -->
+  <compiler id="mac_g++-Compiler" extends="Tuscany-BaseCompiler" name="g++">
+    <defineset define="IS_DARWIN"/>
+  </compiler>
+
   <!--
      Base linker definition
     -->
@@ -455,14 +475,26 @@
 
   <!--
      Specific linker definitions
+     The linker extends funcionality isnt working correctly: antcontrib bug 1794867
+     Specifically, the syslibset for dl was not working on Linux
     -->
-  <linker id="msvc-Linker" extends="Tuscany-BaseLinker" name="msvc"/>
-  <linker id="msvc8-Linker" extends="Tuscany-BaseLinker" name="msvc"/>
+  <linker id="msvc-Linker" extends="Tuscany-BaseLinker" name="msvc">
+    <syslibset libs="kernel32,user32,ws2_32"/>
+  </linker>
+    
+  <linker id="msvc8-Linker" extends="Tuscany-BaseLinker" name="msvc">
+    <syslibset libs="kernel32,user32,ws2_32"/>
+  </linker>
+    
   <linker id="g++-Linker" extends="Tuscany-BaseLinker" name="g++"/>
+
   <linker id="g++m32-Linker" extends="Tuscany-BaseLinker" name="g++">
     <linkerarg value="-m32"/>
   </linker>
 
+  <!--
+    Setup the external definitions file, if there is one
+  -->
   <if>
     <and>
       <isset property="platform.external.definitions.file"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org


Mime
View raw message