You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(33) |
Jun
|
Jul
(30) |
Aug
(2) |
Sep
|
Oct
(30) |
Nov
(136) |
Dec
(59) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(255) |
Feb
(169) |
Mar
(322) |
Apr
(185) |
May
(33) |
Jun
(89) |
Jul
(47) |
Aug
(59) |
Sep
(40) |
Oct
(31) |
Nov
(74) |
Dec
(84) |
2002 |
Jan
(163) |
Feb
(78) |
Mar
(23) |
Apr
(5) |
May
(22) |
Jun
(75) |
Jul
(143) |
Aug
(48) |
Sep
(111) |
Oct
(58) |
Nov
(124) |
Dec
(278) |
2003 |
Jan
(106) |
Feb
(276) |
Mar
(354) |
Apr
(97) |
May
(14) |
Jun
(3) |
Jul
(7) |
Aug
(21) |
Sep
(83) |
Oct
(110) |
Nov
(3) |
Dec
(119) |
2004 |
Jan
(318) |
Feb
(409) |
Mar
(68) |
Apr
(23) |
May
(105) |
Jun
(147) |
Jul
(69) |
Aug
(53) |
Sep
(23) |
Oct
(14) |
Nov
(15) |
Dec
(63) |
2005 |
Jan
(146) |
Feb
(69) |
Mar
(157) |
Apr
(127) |
May
(166) |
Jun
(8) |
Jul
(5) |
Aug
(3) |
Sep
(8) |
Oct
(17) |
Nov
(29) |
Dec
(34) |
2006 |
Jan
(3) |
Feb
(4) |
Mar
(1) |
Apr
(70) |
May
(241) |
Jun
(82) |
Jul
(344) |
Aug
(196) |
Sep
(87) |
Oct
(57) |
Nov
(121) |
Dec
(86) |
2007 |
Jan
(60) |
Feb
(67) |
Mar
(102) |
Apr
(28) |
May
(13) |
Jun
(29) |
Jul
(38) |
Aug
(56) |
Sep
(91) |
Oct
(89) |
Nov
(50) |
Dec
(68) |
2008 |
Jan
(87) |
Feb
(47) |
Mar
(100) |
Apr
(34) |
May
(65) |
Jun
(54) |
Jul
(98) |
Aug
(128) |
Sep
(109) |
Oct
(141) |
Nov
(40) |
Dec
(206) |
2009 |
Jan
(176) |
Feb
(226) |
Mar
(134) |
Apr
(84) |
May
(152) |
Jun
(85) |
Jul
(91) |
Aug
(153) |
Sep
(141) |
Oct
(59) |
Nov
(87) |
Dec
(75) |
2010 |
Jan
(58) |
Feb
(41) |
Mar
(51) |
Apr
(74) |
May
(81) |
Jun
(39) |
Jul
(30) |
Aug
(43) |
Sep
(76) |
Oct
(59) |
Nov
(62) |
Dec
(52) |
2011 |
Jan
(125) |
Feb
(41) |
Mar
(96) |
Apr
(53) |
May
(21) |
Jun
(23) |
Jul
(48) |
Aug
(71) |
Sep
(37) |
Oct
(81) |
Nov
(60) |
Dec
(32) |
2012 |
Jan
(51) |
Feb
(23) |
Mar
|
Apr
(8) |
May
(2) |
Jun
|
Jul
(8) |
Aug
(25) |
Sep
(4) |
Oct
(32) |
Nov
(17) |
Dec
(2) |
2013 |
Jan
(8) |
Feb
(2) |
Mar
(9) |
Apr
(9) |
May
(37) |
Jun
(48) |
Jul
(63) |
Aug
(42) |
Sep
(59) |
Oct
(83) |
Nov
(141) |
Dec
(133) |
2014 |
Jan
(57) |
Feb
(58) |
Mar
(58) |
Apr
(25) |
May
(14) |
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <ai...@us...> - 2013-12-01 08:09:14
|
Revision: 12789 http://sourceforge.net/p/plplot/code/12789 Author: airwin Date: 2013-12-01 08:09:08 +0000 (Sun, 01 Dec 2013) Log Message: ----------- Add some special tricks to help cmake find Java and D(2?) for my Debian stable gcj, etc., java and D2 installation. Modified Paths: -------------- trunk/cmake/epa_build/setup/setup_linux Modified: trunk/cmake/epa_build/setup/setup_linux =================================================================== --- trunk/cmake/epa_build/setup/setup_linux 2013-12-01 07:19:12 UTC (rev 12788) +++ trunk/cmake/epa_build/setup/setup_linux 2013-12-01 08:09:08 UTC (rev 12789) @@ -14,6 +14,17 @@ export CXXFLAGS='-O3 -fvisibility=hidden -Wuninitialized' export FFLAGS='-O3 -Wuninitialized' +# The debian gcj-4.7-jdk package (or its dependencies) has +# some peculiar locations for java components so CMake needs +# some help in finding those. +export CMAKE_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/include +export CMAKE_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/gcj-4.7-13 + +# In the past, CMake has needed help finding the Phobos library for D +# for Debian stable. I am not sure this is necessary anymore with D2, +# but it apparently does not hurt. +CMAKE_LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:$CMAKE_LIBRARY_PATH + # End of tailored values. # Put buildtools that have been built and installed by build_packages on PATH. @@ -23,13 +34,9 @@ # configuration tool will be found. PATH=${INSTALL_PREFIX}/bin:$PATH -# Put appropriate buildtools areas on these. -export CMAKE_INCLUDE_PATH -export CMAKE_LIBRARY_PATH +CMAKE_INCLUDE_PATH=${INSTALL_PREFIX}_buildtools/include:$CMAKE_INCLUDE_PATH +CMAKE_LIBRARY_PATH=${INSTALL_PREFIX}_buildtools/lib:$CMAKE_LIBRARY_PATH -CMAKE_INCLUDE_PATH=${INSTALL_PREFIX}_buildtools/include -CMAKE_LIBRARY_PATH=${INSTALL_PREFIX}_buildtools/lib - # Put version 3 of itcl and friends higher on CMAKE_INCLUDE_PATH then # the above default. CMAKE_INCLUDE_PATH=${INSTALL_PREFIX}_buildtools/include/itcl3.4:$CMAKE_INCLUDE_PATH This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-12-01 07:19:17
|
Revision: 12788 http://sourceforge.net/p/plplot/code/12788 Author: airwin Date: 2013-12-01 07:19:12 +0000 (Sun, 01 Dec 2013) Log Message: ----------- Drop -fvisibility=hidden option from both CFLAGS and CXXFLAGS. This solved a build issue where I happened to have those flags enabled. Tested by Alan W. Irwin <ai...@us...> on Linux using build_wxwidgets target for epa_build project. Modified Paths: -------------- trunk/cmake/epa_build/wxwidgets/bp.cmake Modified: trunk/cmake/epa_build/wxwidgets/bp.cmake =================================================================== --- trunk/cmake/epa_build/wxwidgets/bp.cmake 2013-12-01 02:04:10 UTC (rev 12787) +++ trunk/cmake/epa_build/wxwidgets/bp.cmake 2013-12-01 07:19:12 UTC (rev 12788) @@ -47,18 +47,24 @@ # memory with MinGW. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 # for discussion of this. Apparently the issue was fixed for # MinGW-4.6, but it appears to be back for 4.7.2. - set(${BP_PACKAGE}_SET_CXXFLAGS "CXXFLAGS=-fno-keep-inline-dllexport") + set(${BP_PACKAGE}_SET_CXXFLAGS "CXXFLAGS=-fno-keep-inline-dllexport $ENV{CXXFLAGS}") else(MSYS_PLATFORM) set(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") - set(${BP_PACKAGE}_SET_CXXFLAGS) + set(${BP_PACKAGE}_SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") endif(MSYS_PLATFORM) #message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") +set(${BP_PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + +# Drop -fvisibility=hidden since that option does not work for this package. +string(REGEX REPLACE "-fvisibility=hidden" "" ${BP_PACKAGE}_SET_CFLAGS "${${BP_PACKAGE}_SET_CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" ${BP_PACKAGE}_SET_CXXFLAGS "${${BP_PACKAGE}_SET_CXXFLAGS}") + ExternalProject_Add( build_${BP_PACKAGE} URL ${${BP_PACKAGE}_URL} URL_MD5 ${${BP_PACKAGE}_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${${BP_PACKAGE}_SET_CXXFLAGS} ${source_PATH}/${BP_CONFIGURE_COMMAND} --enable-shared --enable-unicode --enable-debug --enable-debug_gdb + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${${BP_PACKAGE}_SET_CFLAGS} ${${BP_PACKAGE}_SET_CXXFLAGS} ${source_PATH}/${BP_CONFIGURE_COMMAND} --enable-shared --enable-unicode --enable-debug --enable-debug_gdb BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} install ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-12-01 02:04:21
|
Revision: 12787 http://sourceforge.net/p/plplot/code/12787 Author: airwin Date: 2013-12-01 02:04:10 +0000 (Sun, 01 Dec 2013) Log Message: ----------- Replace build_projects and BUILD_PROJECTS everywhere with epa_build and EPA_BUILD. Modified Paths: -------------- trunk/cmake/epa_build/CMakeLists.txt trunk/cmake/epa_build/README trunk/cmake/epa_build/gtk_transform.py trunk/cmake/epa_build/plplot/bp.cmake trunk/cmake/epa_build/setup/setup_linux Modified: trunk/cmake/epa_build/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/CMakeLists.txt 2013-12-01 02:01:49 UTC (rev 12786) +++ trunk/cmake/epa_build/CMakeLists.txt 2013-12-01 02:04:10 UTC (rev 12787) @@ -18,7 +18,7 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -project(build_projects NONE) +project(epa_build NONE) message(STATUS "CMake version = ${CMAKE_VERSION}") message(STATUS "CMAKE_SYSTEM = ${CMAKE_SYSTEM}") @@ -27,11 +27,11 @@ cmake_minimum_required(VERSION 2.8.11.2 FATAL_ERROR) -set(EP_BASE ${CMAKE_BINARY_DIR}/build_projects) +set(EP_BASE ${CMAKE_BINARY_DIR}/epa_build) message(STATUS "EP_BASE = ${EP_BASE}") set_directory_properties(PROPERTIES EP_BASE ${EP_BASE}) -# Set build_projects variables to control builds in general +# Set epa_build variables to control builds in general # Test whether there is access to the MSYS platform on the PATH. Note # this is a different question than whether you are using the "MSYS @@ -58,14 +58,14 @@ message(STATUS "CYGWIN = ${CYGWIN}") if(CYGWIN) - message(FATAL_ERROR "build_projects does not work correctly on the Cygwin platform. Use the MinGW compiler and MSYS platform instead.") + message(FATAL_ERROR "epa_build does not work correctly on the Cygwin platform. Use the MinGW compiler and MSYS platform instead.") endif(CYGWIN) if(WIN32 AND NOT MSYS_PLATFORM) - message(FATAL_ERROR "build_projects does not work correctly on Windows without the MSYS platform. Install the MSYS platform (perhaps without sh.exe depending on CMake generator) on Windows.") + message(FATAL_ERROR "epa_build does not work correctly on Windows without the MSYS platform. Install the MSYS platform (perhaps without sh.exe depending on CMake generator) on Windows.") endif(WIN32 AND NOT MSYS_PLATFORM) -# List of executables required by build_projects CMake logic. +# List of executables required by epa_build CMake logic. set(executables_LIST # ExternalProject workarounds touch @@ -77,7 +77,7 @@ patch # General env - # Not specifically required by build_projects (yet), but some + # Not specifically required by epa_build (yet), but some # individual project configurations will not work unless this is # available so might as well check it here. bash @@ -96,7 +96,7 @@ if(MSYS_PLATFORM) message(STATUS "${executable} missing from your MSYS platform. Use mingw-get to install it.") endif(MSYS_PLATFORM) - message(FATAL_ERROR "${executable} must be on your PATH in order for build_projects to work correctly") + message(FATAL_ERROR "${executable} must be on your PATH in order for epa_build to work correctly") endif(NOT ${EXECUTABLE}_EXECUTABLE) endforeach(executable ${executables_LIST}) @@ -242,8 +242,8 @@ message(STATUS "BP_PARALLEL_CTEST_COMMAND = ${BP_PARALLEL_CTEST_COMMAND}") # Put ${CMAKE_INSTALL_PREFIX}/bin on the PATH as well for those cases -# where some executable built and installed by build_projects needs -# to be found by another project being configured by build_projects. +# where some executable built and installed by epa_build needs +# to be found by another project being configured by epa_build. if(MSYS_PLATFORM) set(BP_ORIGINAL_NATIVE_PATH "$ENV{PATH};${CMAKE_INSTALL_PREFIX}/bin") else(MSYS_PLATFORM) @@ -278,7 +278,7 @@ if(MSYS_PLATFORM) message(STATUS "${executable} missing from your MSYS platform. If sh is missing, use a generator other than 'MinGW Makefiles'. If something else is missing use mingw-get to install it.") endif(MSYS_PLATFORM) - message(FATAL_ERROR "${executable} must be on your PATH in order for build_projects to work correctly") + message(FATAL_ERROR "${executable} must be on your PATH in order for epa_build to work correctly") endif(NOT ${EXECUTABLE}_EXECUTABLE) endforeach(executable ${executables_LIST}) Modified: trunk/cmake/epa_build/README =================================================================== --- trunk/cmake/epa_build/README 2013-12-01 02:01:49 UTC (rev 12786) +++ trunk/cmake/epa_build/README 2013-12-01 02:04:10 UTC (rev 12787) @@ -96,7 +96,7 @@ 1. Linux Note that setup_linux sets up all the important environment variables you -need including GENERATOR_STRING, INSTALL_PREFIX, and BUILD_PROJECTS_SOURCE_PATH. +need including GENERATOR_STRING, INSTALL_PREFIX, and EPA_BUILD_SOURCE_PATH. A. [OPTIONAL] build necessary additional buildtools whose versions you prefer compared to the versions available on your Linux distro. @@ -108,7 +108,7 @@ rm -rf <Build tree prefix>/build_dir-linux_buildtools/* ${INSTALL_PREFIX}_buildtools cd <Build tree prefix>/build_dir-linux_buildtools -cmake -DCMAKE_VERBOSE_MAKEFILE=ON -G"$GENERATOR_STRING" -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}_buildtools -DBUILD_THE_BUILDTOOLS=ON $BUILD_PROJECTS_SOURCE_PATH >& cmake.out +cmake -DCMAKE_VERBOSE_MAKEFILE=ON -G"$GENERATOR_STRING" -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}_buildtools -DBUILD_THE_BUILDTOOLS=ON $EPA_BUILD_SOURCE_PATH >& cmake.out # Check cmake.out for any errors less cmake.out @@ -135,7 +135,7 @@ rm -rf <Build tree prefix>/build_dir-linux/* ${INSTALL_PREFIX} cd <Build tree prefix>/build_dir-linux -cmake -DCMAKE_VERBOSE_MAKEFILE=ON -G"$GENERATOR_STRING" -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX} $BUILD_PROJECTS_SOURCE_PATH >& cmake.out +cmake -DCMAKE_VERBOSE_MAKEFILE=ON -G"$GENERATOR_STRING" -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX} $EPA_BUILD_SOURCE_PATH >& cmake.out # Check cmake.out for any errors less cmake.out Modified: trunk/cmake/epa_build/gtk_transform.py =================================================================== --- trunk/cmake/epa_build/gtk_transform.py 2013-12-01 02:01:49 UTC (rev 12786) +++ trunk/cmake/epa_build/gtk_transform.py 2013-12-01 02:04:10 UTC (rev 12787) @@ -2,7 +2,7 @@ # Read gtk jhbuild xml module that has been produced by # gtk_xml_recursive_process.py from stdin and transform it into data -# required for build_projects using the ElementTree XML API. +# required for epa_build using the ElementTree XML API. # Copyright (C) 2013 Alan W. Irwin Modified: trunk/cmake/epa_build/plplot/bp.cmake =================================================================== --- trunk/cmake/epa_build/plplot/bp.cmake 2013-12-01 02:01:49 UTC (rev 12786) +++ trunk/cmake/epa_build/plplot/bp.cmake 2013-12-01 02:04:10 UTC (rev 12787) @@ -91,12 +91,12 @@ #endif(PREFER_DOWNLOAD) # Assumption that the top-level local PLplot source tree is two directories -# up from the present top-level directory for build_projects. -# This assumption is correct if you are accessing build_projects as +# up from the present top-level directory for epa_build. +# This assumption is correct if you are accessing epa_build as # a subset of the PLplot source tree so that its location is in -# cmake/build_projects within that source tree. +# cmake/epa_build within that source tree. # But it is not the case if you have independently -# checked out just the build_projects subset of the normal PLplot source +# checked out just the epa_build subset of the normal PLplot source # tree so check that the result really is a plplot source tree. get_filename_component(PLPLOT_LOCAL_SOURCE_DIR ${CMAKE_SOURCE_DIR} PATH) get_filename_component(PLPLOT_LOCAL_SOURCE_DIR ${PLPLOT_LOCAL_SOURCE_DIR} PATH) @@ -106,7 +106,7 @@ ) if(NOT IS_PLPLOT_SOURCE_TREE) - message(FATAL_ERROR "build_projects not located in cmake/build_projects in a PLplot source tree") + message(FATAL_ERROR "epa_build not located in cmake/epa_build in a PLplot source tree") endif(NOT IS_PLPLOT_SOURCE_TREE) set(tags "" "_lite") Modified: trunk/cmake/epa_build/setup/setup_linux =================================================================== --- trunk/cmake/epa_build/setup/setup_linux 2013-12-01 02:01:49 UTC (rev 12786) +++ trunk/cmake/epa_build/setup/setup_linux 2013-12-01 02:04:10 UTC (rev 12787) @@ -7,7 +7,7 @@ export INSTALL_PREFIX=/home/wine/newstart/build_script/install-linux -export BUILD_PROJECTS_SOURCE_PATH=/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects +export EPA_BUILD_SOURCE_PATH=/home/software/plplot_svn/HEAD/plplot_allura/cmake/epa_build # gcc, g++, and gfortran flags you might want to tailor to different values. export CFLAGS='-O3 -fvisibility=hidden -Wuninitialized' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-12-01 02:01:54
|
Revision: 12786 http://sourceforge.net/p/plplot/code/12786 Author: airwin Date: 2013-12-01 02:01:49 +0000 (Sun, 01 Dec 2013) Log Message: ----------- Add libxslt to list of packages to be configured. Modified Paths: -------------- trunk/cmake/epa_build/README.developers Modified: trunk/cmake/epa_build/README.developers =================================================================== --- trunk/cmake/epa_build/README.developers 2013-12-01 01:05:55 UTC (rev 12785) +++ trunk/cmake/epa_build/README.developers 2013-12-01 02:01:49 UTC (rev 12786) @@ -99,7 +99,7 @@ # PACKAGE_LIST contains a list of "starting" packages and the # dependencies of those should suck in the rest of the packages in # add_packages.xml. -PACKAGE_LIST="libffi intltool pixman gperf swig" +PACKAGE_LIST="libffi intltool pixman gperf swig libxslt" for PACKAGE in $PACKAGE_LIST; do ./gtk_transform.py $PACKAGE 1 <add_packages.xml 1>> add_packages.data 2>> add_packages.stderr done This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-12-01 01:06:01
|
Revision: 12785 http://sourceforge.net/p/plplot/code/12785 Author: airwin Date: 2013-12-01 01:05:55 +0000 (Sun, 01 Dec 2013) Log Message: ----------- Initial commit of xmlcatalog-wrapper configuration which was inadvertently not added to the svn repository. Added Paths: ----------- trunk/cmake/epa_build/xmlcatalog-wrapper/ trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake trunk/cmake/epa_build/xmlcatalog-wrapper/filter_arguments.cmake trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper.sh.in Added: trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt (rev 0) +++ trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt 2013-12-01 01:05:55 UTC (rev 12785) @@ -0,0 +1,60 @@ +# Top-level CMakeLists.txt for the CMake-based build system +# of the xmlcatalog-wrapper software. + +# Copyright (C) 2013 Alan W. Irwin + +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library General Public License as published +# by the Free Software Foundation; version 2 of the License. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# This project is one method of beating the argument mangling issue +# for xmlcatalog when xmlcatalog is run directly from a shell (such +# as bash.exe) which is linked to the MSYS runtime. +project(xmlcatalog-wrapper NONE) + +message(STATUS "CMake version = ${CMAKE_VERSION}") +message(STATUS "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}") + +cmake_minimum_required(VERSION 2.8.10.2 FATAL_ERROR) + +# Do nothing unless WIN32 AND NOT CYGWIN +# Jury is still out whether this is required for Cygwin, but I +# presume not until proven otherwise. + +if(WIN32 AND NOT CYGWIN) + # Configure xmlcatalog-wrapper.sh.in to xmlcatalog and install it. + # The xmlcatalog name of the configured script does not clash with + # the name of the executable xmlcatalog.exe on Windows platforms and + # will be executed in preference to xmlcatalog.exe whenever an + # autotools configure script or other shell environment runs the + # command "xmlcatalog". + set(XMLCATALOG_EXECUTABLE ${CMAKE_INSTALL_PREFIX}/bin/xmlcatalog.exe) + set(FILTER_ARGUMENTS_SCRIPT_LOCATION ${CMAKE_INSTALL_PREFIX}/share/xmlcatalog-wrapper/filter_arguments.cmake) + configure_file( + ${CMAKE_SOURCE_DIR}/xmlcatalog-wrapper.sh.in + ${CMAKE_BINARY_DIR}/xmlcatalog + @ONLY + ) + + # Use relative (to CMAKE_INSTALL_PREFIX) installation locations + # which must be consistent with the above XMLCATALOG_EXECUTABLE + # and FILTER_ARGUMENTS_SCRIPT_LOCATION variables. + install( + PROGRAMS ${CMAKE_BINARY_DIR}/xmlcatalog + DESTINATION bin + ) + install( + FILES ${CMAKE_SOURCE_DIR}/filter_arguments.cmake + DESTINATION share/xmlcatalog-wrapper + ) + +endif(WIN32 AND NOT CYGWIN) Property changes on: trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake =================================================================== --- trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake (rev 0) +++ trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake 2013-12-01 01:05:55 UTC (rev 12785) @@ -0,0 +1,88 @@ +# xmlcatalog-wrapper/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of xmlcatalog-wrapper. + +# Copyright (C) 2013 Alan W. Irwin + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# The top-level CMakeLists.txt file that includes this file should +# have run "include(ExternalProject)" and set EP_BASE variable (and +# corresponding directory property) as well as various BP variables +# used below that configure how the External_Project functions +# operate. + +# Protect against configuring a build twice in one CMake call +if(xmlcatalog-wrapper_configured) + return() +endif(xmlcatalog-wrapper_configured) +set(xmlcatalog-wrapper_configured ON) + +# List of dependencies (most of which are build tools) which should be +# ignored. +set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) + +set(xmlcatalog-wrapper_dependencies_LIST) +# Remove dependencies that should be ignored. +if(xmlcatalog-wrapper_dependencies_LIST) + list(REMOVE_ITEM xmlcatalog-wrapper_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(xmlcatalog-wrapper_dependencies_LIST) + +set(xmlcatalog-wrapper_dependencies_targets) +foreach(build_configuration ${xmlcatalog-wrapper_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND xmlcatalog-wrapper_dependencies_targets build_${build_configuration}) + else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of xmlcatalog-wrapper has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${xmlcatalog-wrapper_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE xmlcatalog-wrapper) + +# Data that is related to downloads. +# This directory is the source directory +set(${BP_PACKAGE}_URL ${CMAKE_SOURCE_DIR}/xmlcatalog-wrapper) + +# Data that is related to the PATH that must be used. +if(MSYS_PLATFORM) + #set(BP_PATH_NODLL "${BP_PATH}") + #set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") + # Must have all elements of env command in MSYS platform form + determine_msys_path(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") + set(${BP_PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") +else(MSYS_PLATFORM) + set(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") + set(${BP_PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + DEPENDS ${${BP_PACKAGE}_dependencies_targets} + URL ${${BP_PACKAGE}_URL} + #URL_HASH ${${BP_PACKAGE}_DOWNLOAD_HASH_TYPE}=${${BP_PACKAGE}_DOWNLOAD_HASH} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + BUILD_IN_SOURCE OFF + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + ) + +list(APPEND build_target_LIST build_${BP_PACKAGE}) +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "${BP_PACKAGE} restored original BP_PATH = ${BP_PATH}") Added: trunk/cmake/epa_build/xmlcatalog-wrapper/filter_arguments.cmake =================================================================== --- trunk/cmake/epa_build/xmlcatalog-wrapper/filter_arguments.cmake (rev 0) +++ trunk/cmake/epa_build/xmlcatalog-wrapper/filter_arguments.cmake 2013-12-01 01:05:55 UTC (rev 12785) @@ -0,0 +1,8 @@ +execute_process( + COMMAND ${executable} ${argument_list} + RESULT_VARIABLE return_code + ) + +if(NOT return_code EQUAL 0) + message(FATAL_ERROR "${executable} returned return_code = ${return_code}") +endif(NOT return_code EQUAL 0) Added: trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper.sh.in =================================================================== --- trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper.sh.in (rev 0) +++ trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper.sh.in 2013-12-01 01:05:55 UTC (rev 12785) @@ -0,0 +1,5 @@ +#!/bin/bash +# Prepare bash argument_list variable as a semicolon-separated CMake list +# of the arguments to this script. +IFS=';' +cmake -Dexecutable:FILEPATH=@XMLCATALOG_EXECUTABLE@ -Dargument_list:STRING="$*" -P @FILTER_ARGUMENTS_SCRIPT_LOCATION@ \ No newline at end of file Property changes on: trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper.sh.in ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-30 21:49:32
|
Revision: 12784 http://sourceforge.net/p/plplot/code/12784 Author: airwin Date: 2013-11-30 21:49:28 +0000 (Sat, 30 Nov 2013) Log Message: ----------- Really create updated instructions for developers of epa_build. (Last commit for updated instructions only contained part of the edits.) Modified Paths: -------------- trunk/cmake/epa_build/README.developers Modified: trunk/cmake/epa_build/README.developers =================================================================== --- trunk/cmake/epa_build/README.developers 2013-11-30 20:19:07 UTC (rev 12783) +++ trunk/cmake/epa_build/README.developers 2013-11-30 21:49:28 UTC (rev 12784) @@ -71,6 +71,19 @@ cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake +# Patch generated configuration files. This patch file contains +# additional changes that cannot be done via a patch to the *.xml file. +# Typically, these changes are hand edits which are tested then committed. +# So typically the patch is created by rerunning the above cmake +# command then using "svn diff" > configured_pango.patch" to generate +# the reverse form of the patch to change the result created by the +# above cmake command into the svn committed form which is done with +# the following patch command. + +patch --reverse -p0 <configured_pango.patch + +N.B. configured_pango.patch is kept under version control. + # One known issue with the gtk+ stack and other software we build is # certain package dependencies are completely missing (called "bad # packages above) such as pkg-config and libffi which have to be built @@ -79,8 +92,8 @@ # others that can be configured with a template (e.g., libffi) we use # add_packages.xml (under version control) as follows: -rm -f add_packages.data -touch add_packages.data +rm -f add_packages.data add_packages.stderr +touch add_packages.data add_packages.stderr # PACKAGE_LIST only contains the package names in add_packages.xml # that do not depend on any other package in that file. Thus, # PACKAGE_LIST contains a list of "starting" packages and the @@ -88,6 +101,15 @@ # add_packages.xml. PACKAGE_LIST="libffi intltool pixman gperf swig" for PACKAGE in $PACKAGE_LIST; do - ./gtk_transform.py $PACKAGE 1 <add_packages.xml 1>> add_packages.data + ./gtk_transform.py $PACKAGE 1 <add_packages.xml 1>> add_packages.data 2>> add_packages.stderr done + +# Look for any bad results: +less add_packages.stderr + +# It turns out there is one "bad" package, pkg-config which must be +# configured with a hand-edited configuration. + +# Generate the "good" package configurations. + cmake -DFILENAME:FILEPATH=add_packages.data -P configure_bp.cmake This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-30 20:19:11
|
Revision: 12783 http://sourceforge.net/p/plplot/code/12783 Author: airwin Date: 2013-11-30 20:19:07 +0000 (Sat, 30 Nov 2013) Log Message: ----------- Rename build_projects subdirectory to epa_build. N.B. this is just the first step in the renaming and reorganization of this project. Added Paths: ----------- trunk/cmake/epa_build/ Removed Paths: ------------- trunk/cmake/build_projects/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-30 20:15:02
|
Revision: 12782 http://sourceforge.net/p/plplot/code/12782 Author: airwin Date: 2013-11-30 20:14:56 +0000 (Sat, 30 Nov 2013) Log Message: ----------- Updated instructions for developers of epa_build. Modified Paths: -------------- trunk/cmake/build_projects/README.developers Modified: trunk/cmake/build_projects/README.developers =================================================================== --- trunk/cmake/build_projects/README.developers 2013-11-30 19:36:02 UTC (rev 12781) +++ trunk/cmake/build_projects/README.developers 2013-11-30 20:14:56 UTC (rev 12782) @@ -19,10 +19,14 @@ cd .. ./gtk_xml_recursive_process.py \ $GTK_VERSION/gnome-apps-$GTK_VERSION.modules \ ->gtk_packages_$GTK_VERSION.xml +>| gtk_packages_$GTK_VERSION.xml -To create the schema for gtk_packages.xml use +# Patch this result to correct errors I have discovered in the jhbuild +# configuration or else to use new versions of packages. +patch <patch_gtk_packages.xml + +# To create the schema for gtk_packages.xml use trang -I xml gtk_packages_$GTK_VERSION.xml gtk_packages_$GTK_VERSION.rnc # That resulting schema file is quite helpful in figuring out @@ -42,12 +46,25 @@ # dependencies. Currently I use a command variable of 1 to keep # the number of packages configured for building pango and # (hard) dependencies to a minimum. -./gtk_transform.py "pango" 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data +./gtk_transform.py "pango" 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data 2>|pango_packages.stderr +# Check for errors: +less pango_packages.stderr + +# That file currently shows there are 10 "good" +# packages (ones found as a result of the pango package dependency +# chain) and 14 "bad" packages (ones not found this way which have to +# be configured another way). + # N.B. there are no plans to keep gtk_packages.xml, gtk_packages.rnc, -# or pango_packages.data under version control. However, if a patch -# is necessary for gtk_packages.xml created as above, we will keep -# that patch under version control. +# or pango_packages.data under version control. However, +# gtk_xml_recursive_process.py, patch_gtk_packages.xml, and +# gtk_transform.py are all kept under version control so that +# gtk_packages_$GTK_VERSION.xml, gtk_packages_$GTK_VERSION.rnc, and +# pango_packages.data can be reproduced at any time for the current +# $GTK_VERSION value or produced for some updated $GTK_VERSION value. +# Note that in that latter case, it will be necessary to edit the file +# names in patch_gtk_packages.xml to conform to the new version. # Finally to actually generate build configurations for build_packages run # the following command. @@ -55,12 +72,12 @@ cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake # One known issue with the gtk+ stack and other software we build is -# certain package dependencies are completely missing such as -# pkg-config and libffi which have to be built independently. For -# some of those missing packages we use a hand-generated configuration -# (e.g., pkg-config/bp.cmake). For others that can be configured with -# a template (e.g., libffi) we use add_packages.xml (under version -# control) as follows: +# certain package dependencies are completely missing (called "bad +# packages above) such as pkg-config and libffi which have to be built +# independently. For some of those missing packages we use a +# hand-generated configuration (e.g., pkg-config/bp.cmake). For +# others that can be configured with a template (e.g., libffi) we use +# add_packages.xml (under version control) as follows: rm -f add_packages.data touch add_packages.data This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-30 19:36:05
|
Revision: 12781 http://sourceforge.net/p/plplot/code/12781 Author: airwin Date: 2013-11-30 19:36:02 +0000 (Sat, 30 Nov 2013) Log Message: ----------- Initial commit of the reverse form of patch containing all subsequent hand edits of configured results generated by the cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake command. This patch is in reverse form because it is generated by committing the tested hand edits, then running the command above to create a local version without the hand edits, then svn diff > configured_pango.patch to create the patch containing the hand edits in reversed form. Added Paths: ----------- trunk/cmake/build_projects/configured_pango.patch Added: trunk/cmake/build_projects/configured_pango.patch =================================================================== --- trunk/cmake/build_projects/configured_pango.patch (rev 0) +++ trunk/cmake/build_projects/configured_pango.patch 2013-11-30 19:36:02 UTC (rev 12781) @@ -0,0 +1,20 @@ +Index: itstool/bp.cmake +=================================================================== +--- itstool/bp.cmake (revision 12780) ++++ itstool/bp.cmake (working copy) +@@ -64,7 +64,6 @@ + set(${BP_PACKAGE}_URL http://files.itstool.org/itstool/itstool-1.2.0.tar.bz2) + set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) + set(${BP_PACKAGE}_DOWNLOAD_HASH 46fed63fb89c72dbfc03097b4477084ff05ad6f171212d8f1f1546ea543978aa) +-set(${BP_PACKAGE}_PATCH itstool-1.2.0-python-location-fixes.patch) + + # Data that is related to the PATH that must be used. + if(MSYS_PLATFORM) +@@ -85,7 +84,6 @@ + DEPENDS ${${BP_PACKAGE}_dependencies_targets} + URL ${${BP_PACKAGE}_URL} + URL_HASH ${${BP_PACKAGE}_DOWNLOAD_HASH_TYPE}=${${BP_PACKAGE}_DOWNLOAD_HASH} +- PATCH_COMMAND ${PATCH_EXECUTABLE} -p1 < ${CMAKE_SOURCE_DIR}/itstool/${${BP_PACKAGE}_PATCH} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${${BP_PACKAGE}_SET_CFLAGS} ${source_PATH}/${BP_CONFIGURE_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} + BUILD_IN_SOURCE OFF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-29 21:51:17
|
Revision: 12780 http://sourceforge.net/p/plplot/code/12780 Author: airwin Date: 2013-11-29 21:51:12 +0000 (Fri, 29 Nov 2013) Log Message: ----------- Split README into a "README" file that is just for users of epa_build and where the directions are considerably simplified by referring to files to edit and source in the setup directory, and README.developers which is strictly for developers of epa_build. Modified Paths: -------------- trunk/cmake/build_projects/README Added Paths: ----------- trunk/cmake/build_projects/README.developers Modified: trunk/cmake/build_projects/README =================================================================== --- trunk/cmake/build_projects/README 2013-11-29 20:56:03 UTC (rev 12779) +++ trunk/cmake/build_projects/README 2013-11-29 21:51:12 UTC (rev 12780) @@ -1,13 +1,20 @@ -The build_projects project should work out of the box for -Linux or Mac OS X systems with a full development tool-chain installed. +This file contains directions for epa_build users. If in addition you +are interested in helping to develop that project, you should look at +README.developers as well. +The epa_build project should work out of the box for Linux or Mac OS X +systems with a full development tool-chain installed including +relevant compilers (gcc, g++, gfortran, Ada in the suite of gcc +compilers), relevant scripting languages (Python, Lua, etc.), make, +and cmake (at least version 2.8.11.2). + But the situation is different on Windows where you have to download and install specific toolchain software before you start. =============================================================================== Installing the Required Windows Toolchain: -N.B. There is a good possibility that build_projects will work with the +N.B. There is a good possibility that epa_build will work with the Microsoft proprietary toolchain, and I would be happy to accept patches to make that so (including a patch for this file), but my only experience is with free software so until I receive such patches, the @@ -33,7 +40,7 @@ This downgrade is necessary and quite important, see http://sourceforge.net/p/mingw/bugs/1950. Otherwise, you will get an infinite hang from any attempt to do parallel -builds (which build_projects automatically uses for many +builds (which epa_build automatically uses for many of its builds) using the MSYS make.exe command. 3. Install additional needed MSYS software that is not installed by @@ -41,237 +48,114 @@ mingw-get.exe --recursive install msys-unzip -4. Copy the MinGW-4.7.2/msys/1.0/bin directory to +4. Download a recent cmake.exe version from +http://www.cmake.org/files. I am currently using +v2.8/cmake-2.8.10.2-win32-x86.zip. Unpack this using the unzip +command you just installed and put cmake.exe on your PATH. + +5. [OPTIONAL] Copy the MinGW-4.7.2/msys/1.0/bin directory to MinGW-4.7.2/msys/1.0/bin_without_sh and remove sh.exe from that latter -PATH (This works around a CMake issue with the "MinGW Makefiles" generator.) +PATH (This works around an issue with the "MinGW Makefiles" generator +which apparently processes path names differently if sh.exe is in the +PATH. Hopefully, that "MinGW Makefiles" kludge will disappear in the +future.) -5. Put both MinGW-4.7.2/bin and either MinGW-4.7.2/msys/1.0/bin (for +6. Put both MinGW-4.7.2/bin and either MinGW-4.7.2/msys/1.0/bin (for any Windows CMake generator you are going to use other than "MinGW -Makefiles) or MinGW-4.7.2/msys/1.0/bin_without_sh (for the case of -"MinGW Makefiles" on your PATH. +Makefiles) or [OPTIONAL] MinGW-4.7.2/msys/1.0/bin_without_sh (for the case of +"MinGW Makefiles") on your PATH. -6. Download a recent cmake.exe version from -http://www.cmake.org/files. I am currently using -v2.8/cmake-2.8.10.2-win32-x86.zip. Unpack this using the unzip -command you just installed. Put the resulting -cmake-2.8.10.2-win32-x86/bin on your PATH. This downloadable binary -(which poses a security concern like all downloadable binaries) -is only used once. +7. [OPTIONAL} If you are going to try the "NMake Makefiles JOM" +generator, download the latest jom_VERSION.zip from +http://releases.qt-project.org/jom, unpack it with unzip.exe just just +installed and put jom.exe on your PATH. -7. If you are going to try the "NMake Makefiles JOM" generator, download -the latest jom_VERSION.zip from http://releases.qt-project.org/jom, unpack -it with unzip.exe just just installed and put jom.exe on your PATH. - -8. If you are going to try the "Ninja" generator, then follow the -build instructions for that tool at +8. [OPTIONAL] If you are going to try the "Ninja" generator, then +follow the build instructions for that tool at http://www.cmake.org/pipermail/cmake/2013-June/055038.html + one correction in a following post in that thread. + =============================================================================== +Set up instructions for epa_build -Build instructions for the buildtools (such as cmake): +1. Linux or Mac OS X. -Note that when cmake is built this way it is configured by the -bootstrap script (which demands sh is on the PATH) rather than cmake -itself so the downloaded binary version of cmake used to configure the -build_tools build is not actually used to build cmake which provides a -slight increase in security for the paranoid. And you should be -paranoid about security (i.e., you should build your own -version of CMake from source, in my opinion rather than relying -on a downloaded binary) since crackers are always -trying it on. +Tailor the indicated values in setup/setup_linux for your own +system, then source that file, e.g., -Note the special paths below which have a _buildtools suffix, and also -note the special option -DBUILD_THE_BUILDTOOLS=ON which configures -builds of _only_ the build tools such as cmake that are used for the -other software projects. +source <Top directory of PLplot source tree>/cmake/epa_build/setup/setup_linux -Linux "Unix Makefiles" +2. Windows platforms -wine@raven> mkdir -p /home/wine/newstart/build_script/build_dir-linux_buildtools -wine@raven> cd /home/wine/newstart/build_script/build_dir-linux_buildtools -wine@raven> rm -rf /home/wine/newstart/build_script/build_dir-linux_buildtools/* -wine@raven> cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/home/wine/newstart/build_script/install-linux_buildtools -DBUILD_THE_BUILDTOOLS=ON ~software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -wine@raven> make VERBOSE=1 build_all >& build_all.out +Similar instructions about tailoring and sourcing relevant files to be +done later after I update and test the files in question. -Windows "MSYS Makefiles" (This is a special case that requires sh.exe to -be on the PATH so the "MinGW Makefiles" generator cannot be used. +=============================================================================== +Build directions for epa_build -bash.exe-3.1$ mkdir -p /z/home/wine/newstart/build_script/build_dir-git_buildtools -bash.exe-3.1$ cd /z/home/wine/newstart/build_script/build_dir-git_buildtools -bash.exe-3.1$ rm -rf /z/home/wine/newstart/build_script/build_dir-git_buildtools/* -bash.exe-3.1$ cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/z/home/wine/newstart/build_script/install-git_buildtools -DBUILD_THE_BUILDTOOLS=ON /z/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -bash.exe-3.1$ mingw32-make.exe VERBOSE=1 build_all >& build_all.out +1. Linux -Build instructions for everything else which is not a build tool but -which uses those (such as cmake) which have been built above: +Note that setup_linux sets up all the important environment variables you +need including GENERATOR_STRING, INSTALL_PREFIX, and BUILD_PROJECTS_SOURCE_PATH. -1. Put the bin directory contained in the install tree created above -at the top of the PATH. In my case this directory is either -/home/wine/newstart/build_script/install-linux_buildtools/bin (Linux) -or /z/home/wine/newstart/build_script/install-git_buildtool/bin -(Windows). This step insures you will be using the buildtools you -built yourself from source from now on rather than some downloaded binary. +A. [OPTIONAL] build necessary additional buildtools whose versions you +prefer compared to the versions available on your Linux distro. -2. Adjust the local path to the PLplot source tree in plplot/bp.cmake -(this will only be necessary until build_projects is updated to configure -a build of an svn client that works on Windows). The alternative is -to download and test a released version of PLplot, but I prefer the -svn trunk version because that is much more up to date. +# Insure you start with an empty build tree and vacant install tree +# Set <Build tree prefix> to any convenient directory under your control +# where you would like build results to be collected. +mkdir -p <Build tree prefix>/build_dir-linux_buildtools +rm -rf <Build tree prefix>/build_dir-linux_buildtools/* ${INSTALL_PREFIX}_buildtools +cd <Build tree prefix>/build_dir-linux_buildtools -3. Examples of configuring a build and test of PLplot and some of its -soft dependencies on several different systems with various generators -and build tools. Adjust these for your own paths, and note the first -three commands in each group are to insure you start with a clean -build directory +cmake -DCMAKE_VERBOSE_MAKEFILE=ON -G"$GENERATOR_STRING" -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}_buildtools -DBUILD_THE_BUILDTOOLS=ON $BUILD_PROJECTS_SOURCE_PATH >& cmake.out -Linux "Unix Makefiles" +# Check cmake.out for any errors +less cmake.out --------------- -# Source this file to setup a Linux build_packages build. -# Put latest CMake on PATH -PATH=/home/software/cmake/install/bin:$PATH +# Figure out which buildtools you want to build +make help -# Put buildtools that have been built and installed by build_packages on PATH. -PATH=/home/wine/newstart/build_script/install-linux_buildtools/bin:$PATH +# I recommend building all of them on Linux. +make all >& all.out -# Put Linux install directory on PATH (so that, e.g., the wxwidgets -# configuration tool will be found. -PATH=/home/wine/newstart/build_script/install-linux/bin:$PATH +# Check all.out for any errors +less all.out -# Make *.pc files that are installed by a build_packages build accessible to -# pkg-config -export PKG_CONFIG_PATH=/home/wine/newstart/build_script/install-linux/lib/pkgconfig/:/home/wine/newstart/build_script/install-linux/share/pkgconfig +B. Build and test a lite version of PLplot (without building or using +major soft dependencies such as pango/cairo, Qt4, and wxwidgets) +and [OPTIONAL] a fully configured PLplot version (where currently +pango/cairo and wxwidgets are built and used and the system +version of Qt4 is used). -# As temporary measure also use system-installed *.pc files for dependencies -# which are currently not built. Put these at the end of PKG_CONFIG_PATH -# so they are only used as a last resort. -PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig --------------- +# Insure you start with an empty build tree and vacant install tree +# Set <Build tree prefix> to any convenient directory under your control +# where you would like build results to be collected. +mkdir -p <Build tree prefix>/build_dir-linux +rm -rf <Build tree prefix>/build_dir-linux/* ${INSTALL_PREFIX} +cd <Build tree prefix>/build_dir-linux -wine@raven> mkdir -p /home/wine/newstart/build_script/build_dir-linux -wine@raven> cd /home/wine/newstart/build_script/build_dir-linux -wine@raven> rm -rf /home/wine/newstart/build_script/build_dir-linux/* -wine@raven> cmake -G"Unix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX:PATH=/home/wine/newstart/build_script/install-linux ~software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -wine@raven> cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/home/wine/newstart/build_script/install-linux ~software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -# wxwidgets and pango are soft dependencies of PLplot which add value to -# its build. -wine@raven> make build_wxwidgets >& build_wxwidgets.out -wine@raven> make build_pango >& build_pango.out -# Build plplot using the above soft dependencies as well as some hard -# dependencies it knows about. -wine@raven> make build_plplot >& build_plplot.out +cmake -DCMAKE_VERBOSE_MAKEFILE=ON -G"$GENERATOR_STRING" -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX} $BUILD_PROJECTS_SOURCE_PATH >& cmake.out -Windows "MinGW Makefiles" +# Check cmake.out for any errors +less cmake.out -bash.exe-3.1$ mkdir -p /z/home/wine/newstart/build_script/build_dir-git_mingw -bash.exe-3.1$ cd /z/home/wine/newstart/build_script/build_dir-git_mingw -bash.exe-3.1$ rm -rf /z/home/wine/newstart/build_script/build_dir-git_mingw/* -bash.exe-3.1$ cmake -G"MinGW Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/z/home/wine/newstart/build_script/install-git_mingw /z/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -bash.exe-3.1$ mingw32-make.exe VERBOSE=1 build_plplot >& build_plplot.out +# Figure out which packages you want to build +make help -Other combinations that have been successfully tested in part by building -all the C and C++ PLplot dependencies with the "build_all" target. +# Build and test the "lite" version of PLplot +make build_plplot_lite >& build_plplot_lite.out -Note, the "build_all" target does not include PLplot itself yet -(which has additional languages needs such as Fortran, and Ada which -are known to not work for "Ninja" and which might not work for "NMake Makefiles JOM" ). Also note, we assume something similar to the first three commands -given above has been used to start with a clean build tree. +# Check build_plplot_lite.out for any errors +less build_plplot_lite.out -On Linux: +# [OPTIONAL] Build and test the complete version of PLplot. +make build_plplot >& build_plplot.out -# "Ninja" generator -irwin@raven> cmake -G"Ninja" -DCMAKE_INSTALL_PREFIX:PATH=/home/wine/newstart/build_script/install-linux_ninja ~software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -irwin@raven> ninja -v build_all >& build_all.out +# Check build_plplot.out for any errors +less build_plplot.out -On Windows: +2. Windows platforms -# "MSYS Makefiles" generator -# This one should work for the build_plplot target as well, but I -# haven't tested it yet. -bash.exe-3.1$ cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/z/home/wine/newstart/build_script/install-git /z/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -bash.exe-3.1$ make.exe VERBOSE=1 build_all >& build_all.out - -# "Ninja" generator -bash.exe-3.1$ cmake -G"Ninja" -DCMAKE_INSTALL_PREFIX:PATH=/z/home/wine/newstart/build_script/install-git_ninja /z/home/software/plplot_svn/HEAD/pl -plot_allura/cmake/build_projects >& cmake.out -bash.exe-3.1$ ninja -v build_all >& build_all.out - -# "NMake Makefiles JOM" generator -# This CMake generator currently has some issues with using the MinGW suite -# of compilers by default that must be worked around by being specific about -# what compilers you want. -bash.exe-3.1$ cmake -G"NMake Makefiles JOM" -DCMAKE_C_COMPILER:FILEPATH=/z/home/wine/newstart/MinGW-4.7.2/bin/gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=/z/home/wine/newstart/MinGW-4.7.2/bin/g++.exe -DCMAKE_RC_COMPILER:FILEPATH=/z/home/wine/newstart/MinGW-4.7.2/bin/windres.exe -DCMAKE_INSTALL_PREFIX:PATH=/z/home/wine/newstart/build_script/install-git_jom /z/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out -bash.exe-3.1$ jom build_all >& build_all.out - -N.B. All of the above have been run without issues on a Wine platform -(wine-git close to wine-1.6-rc1) and therefore should also work for -the Microsoft version of Windows. - -=============================================================================== -Build configuration for the special case of GTK. The GNOME Tool Kit stack -of libraries is normally built by jhbuild which keeps its configuration -files in xml form. Here is how you convert that form of build-configuration -data to the build_projects form. - -# Chose this latest version (as of August 2013) because it probably has -# improved build and dependency instructions compared to previous versions. -# For example, the glib version (2.37.4) is known to solve a build issue -# that I ran into for earlier glib versions. -export GTK_VERSION=3.9.4 -mkdir -p $GTK_VERSION -cd $GTK_VERSION -# This downloads all the relevant xml build configuration files -# for the given version of GTK -wget -nd ftp://ftp.acc.umu.se/pub/GNOME/teams/releng/$GTK_VERSION/* -cd .. -./gtk_xml_recursive_process.py \ -$GTK_VERSION/gnome-apps-$GTK_VERSION.modules \ ->gtk_packages_$GTK_VERSION.xml - -To create the schema for gtk_packages.xml use - -trang -I xml gtk_packages_$GTK_VERSION.xml gtk_packages_$GTK_VERSION.rnc - -# That resulting schema file is quite helpful in figuring out -# how to process gtk_packages_$GTK_VERSION.xml as below. - -# Transform the xml form to a form that can be used by a cmake script. -# Note, there will be some information messages sent to stderr by this -# script that typically relate to good packages (ones that can be -# transformed by this script) and bad packages. Currently the list of -# bad packages are confined just to those which are completely missing -# from the jhbuild data for gtk. The first command-line argument is -# the starting package name and the second command-line argument is a -# control variable where the least significant bit is ON for following (hard) -# "dependencies" dependencies, the next least significant bit is ON -# for following (soft) "suggests", dependencies, and the next least -# significant bit is ON for following (would be nice) "after" -# dependencies. Currently I use a command variable of 1 to keep -# the number of packages configured for building pango and -# (hard) dependencies to a minimum. -./gtk_transform.py "pango" 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data - -# N.B. there are no plans to keep gtk_packages.xml, gtk_packages.rnc, -# or pango_packages.data under version control. However, if a patch -# is necessary for gtk_packages.xml created as above, we will keep -# that patch under version control. - -# Finally to actually generate build configurations for build_packages run -# the following command. - -cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake - -# One known issue with the gtk+ stack is certain package dependencies -# are completely missing such as pkg-config and libffi which have to -# be built independently. For pkg-config we use a hand-generated -# configuration, pkg-config/bp.cmake. Other missing packages that -# can be configured with a template such as libffi, we use gtk_packages_add.xml -# (under version control) as follows: - -rm -f add_packages.data -touch add_packages.data -PACKAGE_LIST="libffi intltool pixman gperf" -for PACKAGE in $PACKAGE_LIST; do - ./gtk_transform.py $PACKAGE 1 <gtk_packages_add.xml 1>> add_packages.data -done -cmake -DFILENAME:FILEPATH=add_packages.data -P configure_bp.cmake +Very similar to above, but I will fill in variations that I used +on Wine when I get a chance to test them again. Added: trunk/cmake/build_projects/README.developers =================================================================== --- trunk/cmake/build_projects/README.developers (rev 0) +++ trunk/cmake/build_projects/README.developers 2013-11-29 21:51:12 UTC (rev 12780) @@ -0,0 +1,76 @@ +This file contains directions for developers of the epa_build project. +If you are only interested in using that project, you should be +consulting the README file instead. + +The GNOME Tool Kit stack of libraries is normally built by jhbuild +which keeps its configuration files in xml form. Here is how you +convert that form of build-configuration data to the epa_build form. + +# Chose this latest version (as of August 2013) because it probably has +# improved build and dependency instructions compared to previous versions. +# For example, the glib version (2.37.4) is known to solve a build issue +# that I ran into for earlier glib versions. +export GTK_VERSION=3.9.4 +mkdir -p $GTK_VERSION +cd $GTK_VERSION +# This downloads all the relevant xml build configuration files +# for the given version of GTK +wget -nd ftp://ftp.acc.umu.se/pub/GNOME/teams/releng/$GTK_VERSION/* +cd .. +./gtk_xml_recursive_process.py \ +$GTK_VERSION/gnome-apps-$GTK_VERSION.modules \ +>gtk_packages_$GTK_VERSION.xml + +To create the schema for gtk_packages.xml use + +trang -I xml gtk_packages_$GTK_VERSION.xml gtk_packages_$GTK_VERSION.rnc + +# That resulting schema file is quite helpful in figuring out +# how to process gtk_packages_$GTK_VERSION.xml as below. + +# Transform the xml form to a form that can be used by a cmake script. +# Note, there will be some information messages sent to stderr by this +# script that typically relate to good packages (ones that can be +# transformed by this script) and bad packages. Currently the list of +# bad packages are confined just to those which are completely missing +# from the jhbuild data for gtk. The first command-line argument is +# the starting package name and the second command-line argument is a +# control variable where the least significant bit is ON for following (hard) +# "dependencies" dependencies, the next least significant bit is ON +# for following (soft) "suggests", dependencies, and the next least +# significant bit is ON for following (would be nice) "after" +# dependencies. Currently I use a command variable of 1 to keep +# the number of packages configured for building pango and +# (hard) dependencies to a minimum. +./gtk_transform.py "pango" 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data + +# N.B. there are no plans to keep gtk_packages.xml, gtk_packages.rnc, +# or pango_packages.data under version control. However, if a patch +# is necessary for gtk_packages.xml created as above, we will keep +# that patch under version control. + +# Finally to actually generate build configurations for build_packages run +# the following command. + +cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake + +# One known issue with the gtk+ stack and other software we build is +# certain package dependencies are completely missing such as +# pkg-config and libffi which have to be built independently. For +# some of those missing packages we use a hand-generated configuration +# (e.g., pkg-config/bp.cmake). For others that can be configured with +# a template (e.g., libffi) we use add_packages.xml (under version +# control) as follows: + +rm -f add_packages.data +touch add_packages.data +# PACKAGE_LIST only contains the package names in add_packages.xml +# that do not depend on any other package in that file. Thus, +# PACKAGE_LIST contains a list of "starting" packages and the +# dependencies of those should suck in the rest of the packages in +# add_packages.xml. +PACKAGE_LIST="libffi intltool pixman gperf swig" +for PACKAGE in $PACKAGE_LIST; do + ./gtk_transform.py $PACKAGE 1 <add_packages.xml 1>> add_packages.data +done +cmake -DFILENAME:FILEPATH=add_packages.data -P configure_bp.cmake This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-29 20:56:07
|
Revision: 12779 http://sourceforge.net/p/plplot/code/12779 Author: airwin Date: 2013-11-29 20:56:03 +0000 (Fri, 29 Nov 2013) Log Message: ----------- Initial commit of file (that needs tailoring for each individual system) which should be sourced from bash to setup the epa_build for Linux. Added Paths: ----------- trunk/cmake/build_projects/setup/ trunk/cmake/build_projects/setup/setup_linux Added: trunk/cmake/build_projects/setup/setup_linux =================================================================== --- trunk/cmake/build_projects/setup/setup_linux (rev 0) +++ trunk/cmake/build_projects/setup/setup_linux 2013-11-29 20:56:03 UTC (rev 12779) @@ -0,0 +1,56 @@ +# Source this file to setup a Linux build_packages build. + +# Tailor these values. + +# Put latest CMake on PATH +PATH=/home/software/cmake/install/bin:$PATH + +export INSTALL_PREFIX=/home/wine/newstart/build_script/install-linux + +export BUILD_PROJECTS_SOURCE_PATH=/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects + +# gcc, g++, and gfortran flags you might want to tailor to different values. +export CFLAGS='-O3 -fvisibility=hidden -Wuninitialized' +export CXXFLAGS='-O3 -fvisibility=hidden -Wuninitialized' +export FFLAGS='-O3 -Wuninitialized' + +# End of tailored values. + +# Put buildtools that have been built and installed by build_packages on PATH. +PATH=${INSTALL_PREFIX}_buildtools/bin:$PATH + +# Put Linux install directory on PATH (so that, e.g., the wxwidgets +# configuration tool will be found. +PATH=${INSTALL_PREFIX}/bin:$PATH + +# Put appropriate buildtools areas on these. +export CMAKE_INCLUDE_PATH +export CMAKE_LIBRARY_PATH + +CMAKE_INCLUDE_PATH=${INSTALL_PREFIX}_buildtools/include +CMAKE_LIBRARY_PATH=${INSTALL_PREFIX}_buildtools/lib + +# Put version 3 of itcl and friends higher on CMAKE_INCLUDE_PATH then +# the above default. +CMAKE_INCLUDE_PATH=${INSTALL_PREFIX}_buildtools/include/itcl3.4:$CMAKE_INCLUDE_PATH + +# Put appropriate install areas on these. +CMAKE_INCLUDE_PATH=${INSTALL_PREFIX}/include:$CMAKE_INCLUDE_PATH +CMAKE_LIBRARY_PATH=${INSTALL_PREFIX}/lib:$CMAKE_LIBRARY_PATH + +# Put buildtools on LD_LIBRARY_PATH. This is necessary for at least swig +# build tool to find libpcre library that is part of the buildtools. +export LD_LIBRARY_PATH=${INSTALL_PREFIX}_buildtools/lib + +# Put buildtools pkg-config directories at top of PKG_CONFIG_PATH +export PKG_CONFIG_PATH=${INSTALL_PREFIX}_buildtools/share/pkgconfig:${INSTALL_PREFIX}_buildtools/lib/pkgconfig + +# Put install-location pkg-config directories at top of PKG_CONFIG_PATH +PKG_CONFIG_PATH=$INSTALL_PREFIX/share/pkgconfig:$INSTALL_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH + +# As temporary measure also use system-installed *.pc files for dependencies +# which are currently not built. Put these at the end of PKG_CONFIG_PATH +# so they are only used as a last resort. +PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig + +export GENERATOR_STRING="Unix Makefiles" Property changes on: trunk/cmake/build_projects/setup/setup_linux ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Revision \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-29 01:16:54
|
Revision: 12778 http://sourceforge.net/p/plplot/code/12778 Author: airwin Date: 2013-11-29 01:16:49 +0000 (Fri, 29 Nov 2013) Log Message: ----------- Add many more interactive tests (-dev ntk, pltcl_standard_examples, tclsh_standard_examples, wish_standard_examples, plserver_runAllDemos, and wish_runAllDemos) to traditional (Makefile + pkg-config) build and test of the installed examples tree. Tested by Alan W. Irwin <ai...@us...> on Linux running "make install" for the core build and then changing directory to the installed examples and running "make test_interactive" (which uses the traditional build system for those examples. This was done with all tests mentioned above enabled one-by-one (to deal with some known issues for those tests). For this commit, the ones with the known issues (wish_standard_examples, plserver_runAllDemos, and wish_runAllDemos) have been temporarily disabled until those issues are fixed. Modified Paths: -------------- trunk/plplot_test/CMakeLists.txt trunk/plplot_test/plplot-test-interactive.sh.in Modified: trunk/plplot_test/CMakeLists.txt =================================================================== --- trunk/plplot_test/CMakeLists.txt 2013-11-28 19:19:04 UTC (rev 12777) +++ trunk/plplot_test/CMakeLists.txt 2013-11-29 01:16:49 UTC (rev 12778) @@ -50,6 +50,30 @@ @ONLY ) + # Set up optional tests in the configured plplot-test-interactive.sh file. + + set(pkgIndex_LOCATION ${DATA_DIR}) + set(SHELL_TEST_PLTCL_STANDARD_EXAMPLES 1) + set(SHELL_TEST_PLSERVER_STANDARD_EXAMPLES 1) + # FIXME. Currently plserver_runAllDemos needs work so drop it for now. + set(SHELL_TEST_PLSERVER_RUNALLDEMOS 0) + + # All Tcl/Tk tests that use the "package require" approach only + # work with shared libraries. + if(BUILD_SHARED_LIBS) + set(SHELL_TEST_TCLSH_STANDARD_EXAMPLES 1) + # FIXME. Currently wish_standard_examples segfaults on exit. So + # drop it for now. + set(SHELL_TEST_WISH_STANDARD_EXAMPLES 0) + # FIXME. Currently the wish_runAllDemos needs work and also has + # an intermittent bug (x?? not recognized as a command). + set(SHELL_TEST_WISH_RUNALLDEMOS 0) + else(BUILD_SHARED_LIBS) + set(SHELL_TEST_TCLSH_STANDARD_EXAMPLES 0) + set(SHELL_TEST_WISH_STANDARD_EXAMPLES 0) + set(SHELL_TEST_WISH_RUNALLDEMOS 0) + endif(BUILD_SHARED_LIBS) + configure_file( plplot-test-interactive.sh.in ${CMAKE_CURRENT_BINARY_DIR}/plplot-test-interactive.sh Modified: trunk/plplot_test/plplot-test-interactive.sh.in =================================================================== --- trunk/plplot_test/plplot-test-interactive.sh.in 2013-11-28 19:19:04 UTC (rev 12777) +++ trunk/plplot_test/plplot-test-interactive.sh.in 2013-11-29 01:16:49 UTC (rev 12778) @@ -99,6 +99,7 @@ PLD_xwin=@PLD_xwin@ PLD_tk=@PLD_tk@ +PLD_ntk=@PLD_ntk@ PLD_xcairo=@PLD_xcairo@ PLD_gcw=@PLD_gcw@ PLD_wxwidgets=@PLD_wxwidgets@ @@ -108,7 +109,7 @@ # These blank-delimited strings must be consistent with previous configured # list of devices. -POSSIBLE_INTERACTIVE_DEVICES_LIST="xwin tk xcairo gcw wxwidgets qtwidget" +POSSIBLE_INTERACTIVE_DEVICES_LIST="xwin tk ntk xcairo gcw wxwidgets qtwidget" POSSIBLE_DEVICES_LIST="$POSSIBLE_INTERACTIVE_DEVICES_LIST extcairo extqt" # Default DEVICES_LIST is all eligible devices if environment variable @@ -256,6 +257,7 @@ done if [ "@ENABLE_tk@" = "ON" ] ; then + cd "${SRC_EXAMPLES_DIR}"/tcl plserver <<EOF plstdwin . @@ -267,13 +269,156 @@ exit EOF -# Just in case EXAMPLES_DIR is a relative path such as the default ".". - cd .. - cd "${EXAMPLES_DIR}"/tk -# Drop 14 because multiple devices do not seem to work in this context. -# Drop 31 since it produces empty plot (by design). - plserver <<EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for plgrid example" + OVERALL_STATUS_CODE=$status_code + fi + + # OPTIONAL tests. + TEST_PLTCL_STANDARD_EXAMPLES=@SHELL_TEST_PLTCL_STANDARD_EXAMPLES@ + TEST_TCLSH_STANDARD_EXAMPLES=@SHELL_TEST_TCLSH_STANDARD_EXAMPLES@ + TEST_PLSERVER_STANDARD_EXAMPLES=@SHELL_TEST_PLSERVER_STANDARD_EXAMPLES@ + TEST_WISH_STANDARD_EXAMPLES=@SHELL_TEST_WISH_STANDARD_EXAMPLES@ + TEST_PLSERVER_RUNALLDEMOS=@SHELL_TEST_PLSERVER_RUNALLDEMOS@ + TEST_WISH_RUNALLDEMOS=@SHELL_TEST_WISH_RUNALLDEMOS@ + + if [ "$TEST_PLTCL_STANDARD_EXAMPLES" -ne 0 ] ; then + # Copied almost entirely from pltcl_standard_examples script. + cd .. + # Just in case EXAMPLES_DIR is a relative path such as the default ".". + cd "${EXAMPLES_DIR}"/tcl + # Drop 14 because multiple devices do not seem to work in this context. + # Drop 31 since it produces empty plot (by design). + # Drop 32 since it has not been propagated (for the present by + # design) from C. + pltcl <<EOF +source tcldemos.tcl +plsdev "xwin" +plinit +# Disable pausing. +plspause 0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +#14 +15 +16 +17 +18 +19 +20 +plspause 0 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +#31 +#32 +33 +exit +EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for pltcl_standard_examples." + OVERALL_STATUS_CODE=$status_code + fi + fi + + if [ "$TEST_TCLSH_STANDARD_EXAMPLES" -ne 0 ] ; then + # Copied almost entirely from TCLSH_standard_examples script. + cd .. + # Just in case EXAMPLES_DIR is a relative path such as the default ".". + cd "${EXAMPLES_DIR}"/tcl + # Drop 14 because multiple devices do not seem to work in this context. + # Drop 31 since it produces empty plot (by design). + # Drop 32 since it has not been propagated (for the present by + # design) from C. + tclsh <<EOF +lappend auto_path @pkgIndex_LOCATION@ +package require Pltcl +source tcldemos.tcl +plsdev "xwin" +plinit +# Disable pausing. +plspause 0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +#14 +15 +16 +17 +18 +19 +20 +plspause 0 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +#31 +#32 +33 +exit +EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for tclsh_standard_examples." + OVERALL_STATUS_CODE=$status_code + fi + fi + + if [ "$TEST_PLSERVER_STANDARD_EXAMPLES" -ne 0 ] ; then + # Copied almost entirely from plserver_standard_examples script. + cd .. + # Just in case EXAMPLES_DIR is a relative path such as the default ".". + cd "${EXAMPLES_DIR}"/tk + # Drop 14 because multiple devices do not seem to work in this context. + # Drop 31 since it produces empty plot (by design). + # Drop 32 since it has not been propagated (for the present by + # design) from C. + plserver <<EOF source tkdemos.tcl +plw::set_pause .plw 0 +0 1 2 3 @@ -287,6 +432,7 @@ 11 12 13 +#14 15 16 17 @@ -303,9 +449,116 @@ 28 29 30 +#31 +#32 +33 exit EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for plserver_standard_examples" + OVERALL_STATUS_CODE=$status_code + fi + fi + if [ "$TEST_WISH_STANDARD_EXAMPLES" -ne 0 ] ; then + # Copied almost entirely from wish_standard_examples script. + cd .. + # Just in case EXAMPLES_DIR is a relative path such as the default ".". + cd "${EXAMPLES_DIR}"/tk + # Drop 14 because multiple devices do not seem to work in this context. + # Drop 31 since it produces empty plot (by design). + # Drop 32 since it has not been propagated (for the present by + # design) from C. + # Both examples 2 ("Couldn't parse color 76") and 24 ("illegal + # number of colors in cmap0: red") error out so we comment out + # those examples for now. Example 20 enables plspause so + # we comment that out for now. + wish <<EOF +lappend auto_path @pkgIndex_LOCATION@ +package require Pltk +source tkdemos.tcl +# Note wish currently disables pauses so no special method is +# required to do that (unlike the plserver case). +0 +1 +#2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +#14 +15 +16 +17 +18 +19 +#20 +21 +22 +23 +#24 +25 +26 +27 +28 +29 +30 +#31 +#32 +33 +exit +EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for wish_standard_examples" + OVERALL_STATUS_CODE=$status_code + fi + fi + + if [ "$TEST_PLSERVER_RUNALLDEMOS" -ne 0 ] ; then + # Copied almost entirely from plserver_runAllDemos script. + cd .. + # Just in case EXAMPLES_DIR is a relative path such as the default ".". + cd "${EXAMPLES_DIR}"/tk + plserver <<EOF +source runAllDemos.tcl +EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for plserver_runAllDemos." + OVERALL_STATUS_CODE=$status_code + fi + fi + + if [ "$TEST_WISH_RUNALLDEMOS" -ne 0 ] ; then + # Copied almost entirely from wish_runAllDemos script. + cd .. + # Just in case EXAMPLES_DIR is a relative path such as the default ".". + cd "${EXAMPLES_DIR}"/tk + wish <<EOF +lappend auto_path @pkgIndex_LOCATION@ +package require Plplotter +source runAllDemos.tcl +EOF + # Look for any status codes (segfaults or whatever) + status_code=$? + if [ "$status_code" -ne 0 ] ; then + echo "ERROR indicated by status code = $status_code for wish_runAllDemos." + OVERALL_STATUS_CODE=$status_code + fi + fi fi + if [ "$OVERALL_STATUS_CODE" -ne 0 ] ; then echo "A major error occurred for one of the interactive examples" else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-28 19:19:11
|
Revision: 12777 http://sourceforge.net/p/plplot/code/12777 Author: airwin Date: 2013-11-28 19:19:04 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Use better naming convention for scripts. examples/tcl/standard_examples.in ==> examples/tcl/pltcl_standard_examples.in examples/tk/standard_examples.in ==> examples/tk/plserver_standard_examples.in Tested by: Alan W. Irwin <ai...@us...> on Linux using the test_interactive target for both the core build tree and the installed examples build tree. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/tcl/CMakeLists.txt trunk/examples/tk/CMakeLists.txt Added Paths: ----------- trunk/examples/tcl/pltcl_standard_examples.in trunk/examples/tk/plserver_standard_examples.in Removed Paths: ------------- trunk/examples/tcl/standard_examples.in trunk/examples/tk/standard_examples.in Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2013-11-28 12:50:28 UTC (rev 12776) +++ trunk/examples/CMakeLists.txt 2013-11-28 19:19:04 UTC (rev 12777) @@ -870,7 +870,7 @@ if(ENABLE_tcl AND PLD_xwin) add_custom_target(test_pltcl_standard_examples - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tcl/standard_examples -dev xwin -np + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tcl/pltcl_standard_examples -dev xwin -np DEPENDS ${xwin_target} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tcl ) @@ -964,7 +964,7 @@ list(APPEND targets_examples_tk test_tk_plgrid) add_custom_target(test_plserver_standard_examples - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/standard_examples + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/plserver_standard_examples DEPENDS ${xwin_target} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk ) Modified: trunk/examples/tcl/CMakeLists.txt =================================================================== --- trunk/examples/tcl/CMakeLists.txt 2013-11-28 12:50:28 UTC (rev 12776) +++ trunk/examples/tcl/CMakeLists.txt 2013-11-28 19:19:04 UTC (rev 12777) @@ -76,12 +76,12 @@ set(tcl_SCRIPTS ${tcl_SCRIPTS} x${STRING_INDEX}) endforeach(STRING_INDEX ${tcl_STRING_INDICES}) -# standard_examples is a configured shell script that runs all the standard -# examples under pltcl. +# pltcl_standard_examples is a configured shell script that runs all +# the standard examples under pltcl. get_target_property(pltcl_LOCATION pltcl LOCATION) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/standard_examples.in - ${CMAKE_CURRENT_BINARY_DIR}/standard_examples + ${CMAKE_CURRENT_SOURCE_DIR}/pltcl_standard_examples.in + ${CMAKE_CURRENT_BINARY_DIR}/pltcl_standard_examples @ONLY ) @@ -135,7 +135,7 @@ ) install(FILES ${tcl_FILES} DESTINATION ${DATA_DIR}/examples/tcl) - install(PROGRAMS ${tcl_SCRIPTS} standard_examples.in tclsh_standard_examples.in + install(PROGRAMS ${tcl_SCRIPTS} pltcl_standard_examples.in tclsh_standard_examples.in DESTINATION ${DATA_DIR}/examples/tcl ) Copied: trunk/examples/tcl/pltcl_standard_examples.in (from rev 12772, trunk/examples/tcl/standard_examples.in) =================================================================== --- trunk/examples/tcl/pltcl_standard_examples.in (rev 0) +++ trunk/examples/tcl/pltcl_standard_examples.in 2013-11-28 19:19:04 UTC (rev 12777) @@ -0,0 +1,41 @@ +#!@SH_EXECUTABLE@ +# Examples 14 and 31 left out - see Tk standard_examples.in +# Note the backslash at the end of the comments - this causes Tcl to +# ignore the next line. It becomes a valid Tcl script as well as valid +# shell script \ +exec @pltcl_LOCATION@ "$0" "$@" +source tcldemos.tcl +plinit +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +15 +16 +17 +18 +19 +20 +plspause 0 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +33 +exit Deleted: trunk/examples/tcl/standard_examples.in =================================================================== --- trunk/examples/tcl/standard_examples.in 2013-11-28 12:50:28 UTC (rev 12776) +++ trunk/examples/tcl/standard_examples.in 2013-11-28 19:19:04 UTC (rev 12777) @@ -1,41 +0,0 @@ -#!@SH_EXECUTABLE@ -# Examples 14 and 31 left out - see Tk standard_examples.in -# Note the backslash at the end of the comments - this causes Tcl to -# ignore the next line. It becomes a valid Tcl script as well as valid -# shell script \ -exec @pltcl_LOCATION@ "$0" "$@" -source tcldemos.tcl -plinit -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -15 -16 -17 -18 -19 -20 -plspause 0 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -33 -exit Modified: trunk/examples/tk/CMakeLists.txt =================================================================== --- trunk/examples/tk/CMakeLists.txt 2013-11-28 12:50:28 UTC (rev 12776) +++ trunk/examples/tk/CMakeLists.txt 2013-11-28 19:19:04 UTC (rev 12777) @@ -140,13 +140,13 @@ # plgrid is a configured shell script that runs the plgrid.tcl example # (N.B., in the tcl directory) using plserver. -# standard_examples is a configured shell script that runs all the standard -# examples under plserver. +# plserver_standard_examples is a configured shell script that runs +# all the standard examples under plserver. set(tk_SCRIPTS tk01 tk03 plgrid - standard_examples + plserver_standard_examples wish_standard_examples ) # These examples depend on Itk to work. Copied: trunk/examples/tk/plserver_standard_examples.in (from rev 12772, trunk/examples/tk/standard_examples.in) =================================================================== --- trunk/examples/tk/plserver_standard_examples.in (rev 0) +++ trunk/examples/tk/plserver_standard_examples.in 2013-11-28 19:19:04 UTC (rev 12777) @@ -0,0 +1,51 @@ +#!@SH_EXECUTABLE@ +# Run plserver example for standard examples. +# Drop examples 14 and 31 because querying for devices does not +# seem to work in this context. +# The following exec command reexecutes the script under wish. This +# is possible because all comment lines are ignored by wish including +# continued ones with a trailing backslash like this one \ +exec @plserver_LOCATION@ -f "$0" "$@" +source tkdemos.tcl +# +# Turn off pausing - Note in the current plserver case, the plxframe +# uses a visual clue and bindings to key press events so a different +# method must be used to disable pausing than in the wish case. +# Note that the widget in question is .plw, not $plwin +# +plw::set_pause .plw 0 +# +# Now run the examples one by one +# +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +33 +exit Deleted: trunk/examples/tk/standard_examples.in =================================================================== --- trunk/examples/tk/standard_examples.in 2013-11-28 12:50:28 UTC (rev 12776) +++ trunk/examples/tk/standard_examples.in 2013-11-28 19:19:04 UTC (rev 12777) @@ -1,51 +0,0 @@ -#!@SH_EXECUTABLE@ -# Run plserver example for standard examples. -# Drop examples 14 and 31 because querying for devices does not -# seem to work in this context. -# The following exec command reexecutes the script under wish. This -# is possible because all comment lines are ignored by wish including -# continued ones with a trailing backslash like this one \ -exec @plserver_LOCATION@ -f "$0" "$@" -source tkdemos.tcl -# -# Turn off pausing - Note in the current plserver case, the plxframe -# uses a visual clue and bindings to key press events so a different -# method must be used to disable pausing than in the wish case. -# Note that the widget in question is .plw, not $plwin -# -plw::set_pause .plw 0 -# -# Now run the examples one by one -# -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -33 -exit This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-28 12:50:32
|
Revision: 12776 http://sourceforge.net/p/plplot/code/12776 Author: andrewross Date: 2013-11-28 12:50:28 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Update D language version of example 22. Modified Paths: -------------- trunk/examples/d/x22d.d Modified: trunk/examples/d/x22d.d =================================================================== --- trunk/examples/d/x22d.d 2013-11-28 11:57:58 UTC (rev 12775) +++ trunk/examples/d/x22d.d 2013-11-28 12:50:28 UTC (rev 12776) @@ -23,9 +23,26 @@ // import std.math; +import std.string; import plplot; +// +// Global transform function for a constriction using data passed in +// This is the same transformation used in constriction. +// +extern ( C ) { +void +transform( PLFLT x, PLFLT y, PLFLT *xt, PLFLT *yt, PLPointer data ) +{ + PLFLT *xmax = cast(PLFLT *) data; + + *xt = x; + *yt = y / 4.0 * ( 3 - cos( PI * x / *xmax ) ); +} +} + + //-------------------------------------------------------------------------- // main // @@ -92,10 +109,11 @@ // Vector plot of flow through a constricted pipe // void - constriction() + constriction( int astyle ) { const int nx = 20; const int ny = 20; + string title; PLFLT dx = 1.0; PLFLT dy = 1.0; @@ -133,7 +151,7 @@ b = ymax / 4.0 * ( 3 - cos( PI * x / xmax ) ); if ( fabs( y ) < b ) { - dbdx = ymax / 4.0 * sin( PI * x / xmax ) * y / b; + dbdx = ymax / 4.0 * sin( PI * x / xmax ) * PI / xmax * y / b; u[i][j] = Q * ymax / b; v[i][j] = dbdx * u[i][j]; } @@ -146,12 +164,90 @@ } plenv( xmin, xmax, ymin, ymax, 0, 0 ); - pllab( "(x)", "(y)", "#frPLplot Example 22 - constriction" ); + title = format("#frPLplot Example 22 - constriction (arrow style %d)", astyle); + pllab( "(x)", "(y)", title ); plcol0( 2 ); - plvect( u, v, -0.5, cgrid2 ); + plvect( u, v, -1.0, cgrid2 ); plcol0( 1 ); } + + // + // Vector plot of flow through a constricted pipe + // with a coordinate transform + // + void + constriction2() + { + const int nx = 20; + const int ny = 20; + const int nc = 11; + const int nseg = 20; + + PLFLT [] clev = new PLFLT[nc]; + + PLFLT dx = 1.0; + PLFLT dy = 1.0; + + PLFLT xmin = -nx / 2 * dx; + PLFLT xmax = nx / 2 * dx; + PLFLT ymin = -ny / 2 * dy; + PLFLT ymax = ny / 2 * dy; + + plstransform( &transform, cast(PLPointer) &xmax ); + + PLcGrid2 cgrid2; + cgrid2.xg = new PLFLT[][nx]; + for ( int i = 0; i < nx; i++ ) + cgrid2.xg[i] = new PLFLT[ny]; + cgrid2.yg = new PLFLT[][nx]; + for ( int i = 0; i < nx; i++ ) + cgrid2.yg[i] = new PLFLT[ny]; + + PLFLT[][] u = new PLFLT[][nx]; + for ( int i = 0; i < nx; i++ ) + u[i] = new PLFLT[ny]; + PLFLT[][] v = new PLFLT[][nx]; + for ( int i = 0; i < nx; i++ ) + v[i] = new PLFLT[ny]; + + PLFLT Q = 2.0; + PLFLT x, y, b, dbdx; + for ( int i = 0; i < nx; i++ ) + { + x = ( i - nx / 2 + 0.5 ) * dx; + for ( int j = 0; j < ny; j++ ) + { + y = ( j - ny / 2 + 0.5 ) * dy; + cgrid2.xg[i][j] = x; + cgrid2.yg[i][j] = y; + b = ymax / 4.0 * ( 3 - cos( PI * x / xmax ) ); + u[i][j] = Q * ymax / b; + v[i][j] = 0.0; + } + } + + for ( int i = 0; i < nc; i++ ) + { + clev[i] = Q + i * Q / ( nc - 1 ); + } + + plenv( xmin, xmax, ymin, ymax, 0, 0 ); + pllab( "(x)", "(y)", "#frPLplot Example 22 - constriction with plstransform" ); + plcol0( 2 ); + plshades( u, null, xmin + dx / 2, xmax - dx / 2, + ymin + dy / 2, ymax - dy / 2, + clev, 0.0, 1, 1.0, 0 ); + plvect( u, v, -1.0, cgrid2 ); + // Plot edges using plpath (which accounts for coordinate transformation) rather than plline + plpath( nseg, xmin, ymax, xmax, ymax ); + plpath( nseg, xmin, ymin, xmax, ymin ); + plcol0( 1 ); + + plstransform( null, null ); + + } + //-------------------------------------------------------------------------- // f2mnmx // @@ -307,7 +403,7 @@ // Set arrow style using arrow_x and arrow_y then // plot using these arrows. plsvect( arrow_x, arrow_y, fill ); - myPlot.constriction(); + myPlot.constriction( 1 ); // Pairs of points making the line segments used to plot the user defined arrow PLFLT[] arrow2_x = [ -0.5, 0.3, 0.3, 0.5, 0.3, 0.3 ]; @@ -317,8 +413,12 @@ // plot using these filled arrows. fill = 1; plsvect( arrow2_x, arrow2_y, fill ); - myPlot.constriction(); + myPlot.constriction( 2 ); + myPlot.constriction2(); + + plsvect( null, null, 0); + myPlot.potential(); plend(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-28 11:58:01
|
Revision: 12775 http://sourceforge.net/p/plplot/code/12775 Author: andrewross Date: 2013-11-28 11:57:58 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Add plpath to d language bindings. Modified Paths: -------------- trunk/bindings/d/plplot.d Modified: trunk/bindings/d/plplot.d =================================================================== --- trunk/bindings/d/plplot.d 2013-11-28 06:10:49 UTC (rev 12774) +++ trunk/bindings/d/plplot.d 2013-11-28 11:57:58 UTC (rev 12775) @@ -1418,6 +1418,7 @@ //alias c_pllegend pllegend; alias c_pllightsource pllightsource; //alias c_plline plline; +alias c_plpath plpath; //alias c_plline3 plline3; alias c_pllsty pllsty; //alias c_plmap plmap; @@ -1941,6 +1942,9 @@ // Set fill pattern directly. void c_plpat( PLINT nlin, PLINT *inc, PLINT *del ); +// Draw a line connecting two points, accounting for coordinate transforms +void c_plpath( PLINT n, PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2 ); + // Plots array y against x for n points using ASCII code "code". void c_plpoin( PLINT n, PLFLT *x, PLFLT *y, PLINT code ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-28 06:10:52
|
Revision: 12774 http://sourceforge.net/p/plplot/code/12774 Author: airwin Date: 2013-11-28 06:10:49 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Change some target names to a more consistent naming convention: test_tcl_standard_examples ==> test_pltcl_standard_examples test_tk_standard_examples ==> test_plserver_standard_examples Make sure the targets test_tclsh_standard_examples, test_wish_standard_examples, and test_wish_runAllDemos are only configured for the case when BUILD_SHARED_LIBS is true because from experiment the "package require" method of dynamically loading Tcl extension modules only works for shared objects. Modified Paths: -------------- trunk/examples/CMakeLists.txt Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2013-11-28 06:00:42 UTC (rev 12773) +++ trunk/examples/CMakeLists.txt 2013-11-28 06:10:49 UTC (rev 12774) @@ -1,7 +1,7 @@ # examples/CMakeLists.txt ### Process this file with cmake to produce Makefile ### -# Copyright (C) 2006-2012 Alan W. Irwin +# Copyright (C) 2006-2013 Alan W. Irwin # # This file is part of PLplot. # @@ -423,7 +423,7 @@ set(plplot_test_debug) endif(VALGRIND_ALL_TESTS) else(VALGRIND_EXECUTABLE) - set(plplot_test_debug) + set(plplot_test_debug) endif(VALGRIND_EXECUTABLE) if(CORE_BUILD) @@ -869,38 +869,41 @@ endif(ENABLE_pygcw) if(ENABLE_tcl AND PLD_xwin) - add_custom_target(test_tcl_standard_examples + add_custom_target(test_pltcl_standard_examples COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tcl/standard_examples -dev xwin -np DEPENDS ${xwin_target} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tcl ) - add_dependencies(test_tcl_standard_examples + add_dependencies(test_pltcl_standard_examples pltcl tcl_examples tclIndex_tcl xwin ) if(FILE_DEPENDS_xwin) - add_dependencies(test_tcl_standard_examples test_xwin_dyndriver) + add_dependencies(test_pltcl_standard_examples test_xwin_dyndriver) endif(FILE_DEPENDS_xwin) - list(APPEND interactive_targets_LIST test_tcl_standard_examples) + list(APPEND interactive_targets_LIST test_pltcl_standard_examples) - add_custom_target(test_tclsh_standard_examples - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tcl/tclsh_standard_examples - DEPENDS ${xwin_target} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tcl - ) - add_dependencies(test_tclsh_standard_examples - plplottcltk${LIB_TAG} - tcl_examples - tclIndex_tcl - xwin - ) - if(FILE_DEPENDS_xwin) - add_dependencies(test_tclsh_standard_examples test_xwin_dyndriver) - endif(FILE_DEPENDS_xwin) - list(APPEND interactive_targets_LIST test_tclsh_standard_examples) - + if(BUILD_SHARED_LIBS) + # tests that use "package require Pltcl" only work if + # BUILD_SHARED_LIBS is true. + add_custom_target(test_tclsh_standard_examples + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tcl/tclsh_standard_examples + DEPENDS ${xwin_target} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tcl + ) + add_dependencies(test_tclsh_standard_examples + plplottcltk${LIB_TAG} + tcl_examples + tclIndex_tcl + xwin + ) + if(FILE_DEPENDS_xwin) + add_dependencies(test_tclsh_standard_examples test_xwin_dyndriver) + endif(FILE_DEPENDS_xwin) + list(APPEND interactive_targets_LIST test_tclsh_standard_examples) + endif(BUILD_SHARED_LIBS) endif(ENABLE_tcl AND PLD_xwin) if(ENABLE_tk AND PLD_tk) @@ -960,12 +963,12 @@ endif(FILE_DEPENDS_xwin) list(APPEND targets_examples_tk test_tk_plgrid) - add_custom_target(test_tk_standard_examples + add_custom_target(test_plserver_standard_examples COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/standard_examples DEPENDS ${xwin_target} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk ) - add_dependencies(test_tk_standard_examples + add_dependencies(test_plserver_standard_examples plserver tcl_examples tclIndex_tcl @@ -974,38 +977,42 @@ xwin ) if(FILE_DEPENDS_xwin) - add_dependencies(test_tk_standard_examples test_xwin_dyndriver) + add_dependencies(test_plserver_standard_examples test_xwin_dyndriver) endif(FILE_DEPENDS_xwin) - list(APPEND targets_examples_tk test_tk_standard_examples) + list(APPEND targets_examples_tk test_plserver_standard_examples) - add_custom_target(test_wish_standard_examples - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/wish_standard_examples -geometry 800x600 - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk - ) - add_dependencies(test_wish_standard_examples - plplottcltk${LIB_TAG} - tk - xwin - tcl_examples - tclIndex_tcl - tclIndex_tk - tclIndex_examples_tk - ) - if(FILE_DEPENDS_xwin) - add_dependencies(test_wish_standard_examples test_xwin_dyndriver) - endif(FILE_DEPENDS_xwin) - # Temporarily suspend adding this target to the rest of the Tk - # interactive targets (and therefore also this target is not added - # to the overall list of targets run by the test_interactive - # target) because of a segfault generated by this target. The - # cause of that segfault is the Tcl exit command is somehow not - # compatible with how we have implemented the Tcl plframe command - # that is run by tkdemos.tcl in the wish case, but that is as much - # as we know at this stage. - message(STATUS "WARNING: The test_wish_standard_examples target can be run independently but + if(BUILD_SHARED_LIBS) + # tests that use "package require Pltk" only work if + # BUILD_SHARED_LIBS is true. + add_custom_target(test_wish_standard_examples + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/wish_standard_examples -geometry 800x600 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk + ) + add_dependencies(test_wish_standard_examples + plplottcltk${LIB_TAG} + tk + xwin + tcl_examples + tclIndex_tcl + tclIndex_tk + tclIndex_examples_tk + ) + if(FILE_DEPENDS_xwin) + add_dependencies(test_wish_standard_examples test_xwin_dyndriver) + endif(FILE_DEPENDS_xwin) + # Temporarily suspend adding this target to the rest of the Tk + # interactive targets (and therefore also this target is not added + # to the overall list of targets run by the test_interactive + # target) because of a segfault generated by this target. The + # cause of that segfault is the Tcl exit command is somehow not + # compatible with how we have implemented the Tcl plframe command + # that is run by tkdemos.tcl in the wish case, but that is as much + # as we know at this stage. + message(STATUS "WARNING: The test_wish_standard_examples target can be run independently but it segfaults at the end so it is temporarily excluded from being a dependency of other more general interactive test targets") - # list(APPEND targets_examples_tk test_wish_standard_examples) + # list(APPEND targets_examples_tk test_wish_standard_examples) + endif(BUILD_SHARED_LIBS) if(ENABLE_itk) add_custom_target(test_tk_02 @@ -1059,6 +1066,7 @@ tclIndex_tcl tclIndex_tk tclIndex_examples_tk + xwin ) message(STATUS "WARNING: The test_plserver_runAlldemos target can be run independently but @@ -1066,22 +1074,26 @@ dependency of other more general interactive test targets") #list(APPEND targets_examples_tk test_plserver_runAllDemos) - add_custom_target(test_wish_runAllDemos - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/wish_runAllDemos -geometry 800x600 - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk - ) - add_dependencies(test_wish_runAllDemos - plplottcltk${LIB_TAG} - tkwin - tcl_examples - tclIndex_tcl - tclIndex_tk - tclIndex_examples_tk - ) - message(STATUS "WARNING: The test_wish_runAlldemos target can be run independently but + if(BUILD_SHARED_LIBS) + # tests that use "package require Plplotter" only work if + # BUILD_SHARED_LIBS is true. + add_custom_target(test_wish_runAllDemos + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/wish_runAllDemos -geometry 800x600 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk + ) + add_dependencies(test_wish_runAllDemos + plplottcltk${LIB_TAG} + tkwin + tcl_examples + tclIndex_tcl + tclIndex_tk + tclIndex_examples_tk + ) + message(STATUS "WARNING: The test_wish_runAlldemos target can be run independently but there are several issues with this target so it is temporarily excluded from being a dependency of other more general interactive test targets") - # list(APPEND targets_examples_tk test_wish_runAlldemos) + # list(APPEND targets_examples_tk test_wish_runAlldemos) + endif(BUILD_SHARED_LIBS) endif(ENABLE_itk) endif(ENABLE_tk AND PLD_tk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-28 06:00:50
|
Revision: 12773 http://sourceforge.net/p/plplot/code/12773 Author: airwin Date: 2013-11-28 06:00:42 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Document and rearrange order of initializing members of plPlotterPtr and plFramePtr structures in same order as the members of the structures are defined to help keep track of what is initialized and what not. There is no change in initialization of plFramePtr, but this analysis showed that both plPlotterPtr->double_buffer and plPlotterPtr->pldis (and several other members which were also not initialized in the working plFramePtr case) were unitialized. The double_buffer initialization quiets a valgrind warning about an uninitialized variable. The pldis initialization may not be necessary (because valgrind did not complain about it), but it does follow what is done in the plFramePtr case. These plPlotterPtr initialization changes made no difference to the erratic on-again off-again issue with test_wish_runAllDemos where sometimes the examples run at the touch of the button consistently for one particular compilation of plplotter.c, and other times they error out consistently for a different compilation of plplotter.c with messages like invalid command name "x00" So it appears some other issue is the source of the complete change in behaviour of the plplotter Tcl/Tk extension package from one compilation of plplotter.c to the next. Modified Paths: -------------- trunk/bindings/tk/plframe.c trunk/bindings/tk-x-plat/plplotter.c Modified: trunk/bindings/tk/plframe.c =================================================================== --- trunk/bindings/tk/plframe.c 2013-11-27 20:22:18 UTC (rev 12772) +++ trunk/bindings/tk/plframe.c 2013-11-28 06:00:42 UTC (rev 12773) @@ -383,43 +383,58 @@ } plFramePtr = (PlFrame *) ckalloc( sizeof ( PlFrame ) ); + + // Initialize in the same order as the members of the struct just + // to keep track of what is initialized and what not. + plFramePtr->tkwin = new; plFramePtr->display = Tk_Display( new ); plFramePtr->interp = interp; - plFramePtr->xorGC = NULL; + //plFramePtr->widgetCMD = <initialized below for HAVE_ITCL case> plFramePtr->border = NULL; + //plFramePtr->borderWidth = <uninitialized> + //plFramePtr->relief = <uninitialized> + plFramePtr->width = Tk_Width( plFramePtr->tkwin ); + plFramePtr->height = Tk_Height( plFramePtr->tkwin ); plFramePtr->cursor = None; - plFramePtr->xhair_cursor = None; plFramePtr->flags = 0; - plFramePtr->width = Tk_Width( plFramePtr->tkwin ); - plFramePtr->height = Tk_Height( plFramePtr->tkwin ); + plFramePtr->tkwin_initted = 0; + // Associate new PLplot stream with this widget + plmkstrm( &plFramePtr->ipls ); + plgpls( &plFramePtr->pls ); + plFramePtr->ipls_save = 0; + plFramePtr->plr = (PLRDev *) ckalloc( sizeof ( PLRDev ) ); + plFramePtr->bgColor = NULL; + plFramePtr->plpr_cmd = NULL; + plFramePtr->pldis.x = 0; + plFramePtr->pldis.y = 0; + plFramePtr->pldis.width = 0; + plFramePtr->pldis.height = 0; plFramePtr->prevWidth = 0; plFramePtr->prevHeight = 0; + plFramePtr->SaveFnam = NULL; + // plFramePtr->devDesc = <uninitialized, to be malloced?>; + // plFramePtr->devName = <uninitialized, to be malloced?>; + plFramePtr->xorGC = NULL; + // plFram Ptr->pts = <uninitialized array>; plFramePtr->continue_draw = 0; - plFramePtr->ipls = 0; - plFramePtr->ipls_save = 0; - plFramePtr->tkwin_initted = 0; - plFramePtr->bgColor = NULL; - plFramePtr->plpr_cmd = NULL; + plFramePtr->xhair_cursor = None; + plFramePtr->xl = 0.; + plFramePtr->yl = 0.; + plFramePtr->xr = 1.; + plFramePtr->yr = 1.; + plFramePtr->xScrollCmd = NULL; + plFramePtr->yScrollCmd = NULL; plFramePtr->bopCmd = NULL; plFramePtr->eopCmd = NULL; plFramePtr->xhairs = 0; plFramePtr->drawing_xhairs = 0; + // plFram Ptr->xhair_x = <uninitialized array>; + // plFram Ptr->xhair_y = <uninitialized array>; plFramePtr->rband = 0; plFramePtr->drawing_rband = 0; - plFramePtr->xScrollCmd = NULL; - plFramePtr->yScrollCmd = NULL; - plFramePtr->xl = 0.; - plFramePtr->yl = 0.; - plFramePtr->xr = 1.; - plFramePtr->yr = 1.; - plFramePtr->SaveFnam = NULL; - plFramePtr->pldis.x = 0; - plFramePtr->pldis.y = 0; - plFramePtr->pldis.width = 0; - plFramePtr->pldis.height = 0; + // plFram Ptr->rband_pt = <uninitialized array>; - plFramePtr->plr = (PLRDev *) ckalloc( sizeof ( PLRDev ) ); plr = plFramePtr->plr; plr->pdfs = NULL; plr->at_bop = 0; @@ -427,11 +442,6 @@ plr->iodev = (PLiodev *) ckalloc( sizeof ( PLiodev ) ); plr_start( plr ); -// Associate new PLplot stream with this widget - - plmkstrm( &plFramePtr->ipls ); - plgpls( &plFramePtr->pls ); - // Set up stuff for rubber-band drawing plFramePtr->xhair_cursor = Modified: trunk/bindings/tk-x-plat/plplotter.c =================================================================== --- trunk/bindings/tk-x-plat/plplotter.c 2013-11-27 20:22:18 UTC (rev 12772) +++ trunk/bindings/tk-x-plat/plplotter.c 2013-11-28 06:00:42 UTC (rev 12773) @@ -372,6 +372,9 @@ Tk_SetClass( tkwin, "Plframe" ); plPlotterPtr = (PlPlotter *) malloc( sizeof ( PlPlotter ) ); + + // Initialize in the same order as the members of the struct just + // to keep track of what is initialized and what not. plPlotterPtr->tkwin = tkwin; plPlotterPtr->display = Tk_Display( tkwin ); plPlotterPtr->interp = interp; @@ -379,46 +382,57 @@ Tcl_CreateCommand( interp, Tk_PathName( plPlotterPtr->tkwin ), (Tcl_CmdProc *) PlPlotterWidgetCmd, (ClientData) plPlotterPtr, (Tcl_CmdDeleteProc *) NULL ); - plPlotterPtr->xorGC = NULL; plPlotterPtr->border = NULL; + //plPlotterPtr->borderWidth = <uninitialized>; + //plPlotterPtr->relief = <uninitialized>; + plPlotterPtr->width = Tk_Width( plPlotterPtr->tkwin ); + plPlotterPtr->height = Tk_Height( plPlotterPtr->tkwin ); plPlotterPtr->cursor = None; - plPlotterPtr->xhair_cursor = None; plPlotterPtr->flags = 0; - plPlotterPtr->width = Tk_Width( plPlotterPtr->tkwin ); - plPlotterPtr->height = Tk_Height( plPlotterPtr->tkwin ); + plPlotterPtr->tkwin_initted = 0; + // Associate new PLplot stream with this widget + plmkstrm( &plPlotterPtr->ipls ); + plgpls( &plPlotterPtr->pls ); + plPlotterPtr->ipls_save = 0; + plPlotterPtr->plr = (PLRDev *) malloc( sizeof ( PLRDev ) ); + plPlotterPtr->plpr_cmd = NULL; + plPlotterPtr->active_plot = 1; + plPlotterPtr->isActive = 0; + plPlotterPtr->pldis.x = 0; + plPlotterPtr->pldis.y = 0; + plPlotterPtr->pldis.width = 0; + plPlotterPtr->pldis.height = 0; plPlotterPtr->prevWidth = 0; plPlotterPtr->prevHeight = 0; + plPlotterPtr->SaveFnam = NULL; + // plPlotterPtr->devDesc = <uninitialized, to be malloced?>; + // plPlotterPtr->devName = <uninitialized, to be malloced?>; + plPlotterPtr->xorGC = NULL; + // plPlotterPtr->pts = <uninitialized array>; plPlotterPtr->continue_draw = 0; - plPlotterPtr->ipls = 0; - plPlotterPtr->ipls_save = 0; - plPlotterPtr->tkwin_initted = 0; - plPlotterPtr->plpr_cmd = NULL; + plPlotterPtr->xhair_cursor = None; + plPlotterPtr->xl = 0.; + plPlotterPtr->yl = 0.; + plPlotterPtr->xr = 1.; + plPlotterPtr->yr = 1.; + plPlotterPtr->xScrollCmd = NULL; + plPlotterPtr->yScrollCmd = NULL; plPlotterPtr->bopCmd = NULL; plPlotterPtr->eopCmd = NULL; plPlotterPtr->xhairs = 0; - plPlotterPtr->active_plot = 1; - plPlotterPtr->isActive = 0; plPlotterPtr->drawing_xhairs = 0; + // plPlotterPtr->xhair_x = <uninitialized array>; + // plPlotterPtr->xhair_y = <uninitialized array>; plPlotterPtr->rband = 0; plPlotterPtr->drawing_rband = 0; - plPlotterPtr->xScrollCmd = NULL; - plPlotterPtr->yScrollCmd = NULL; - plPlotterPtr->xl = 0.; - plPlotterPtr->yl = 0.; - plPlotterPtr->xr = 1.; - plPlotterPtr->yr = 1.; - plPlotterPtr->SaveFnam = NULL; + // plPlotterPtr->rband_pt = <uninitialized array>; + plPlotterPtr->double_buffer = 1; - plPlotterPtr->plr = (PLRDev *) malloc( sizeof ( PLRDev ) ); plr = plPlotterPtr->plr; plr->pdfs = NULL; plr->iodev = (PLiodev *) malloc( sizeof ( PLiodev ) ); plr_start( plr ); -// Associate new PLplot stream with this widget - - plmkstrm( &plPlotterPtr->ipls ); - plgpls( &plPlotterPtr->pls ); // Tell the stream about myself plPlotterPtr->pls->plPlotterPtr = plPlotterPtr; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-27 20:22:21
|
Revision: 12772 http://sourceforge.net/p/plplot/code/12772 Author: airwin Date: 2013-11-27 20:22:18 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Add test for whether the SAHooks type is available from shapelib, and if the resulting HAVE_SAHOOKS CMake variable is true, then #define the HAVE_SAHOOKS C macro for src/plmap.c. Tested by Alan W. Irwin <ai...@us...> on Linux by checking that the example 19 result (for shapelib 1.3.0) does not generate the misleading "Unable to open" error messages from shapelib that you get when HAVE_SAHOOKS is not true. Modified Paths: -------------- trunk/cmake/modules/shapelib.cmake trunk/src/CMakeLists.txt Modified: trunk/cmake/modules/shapelib.cmake =================================================================== --- trunk/cmake/modules/shapelib.cmake 2013-11-27 18:22:39 UTC (rev 12771) +++ trunk/cmake/modules/shapelib.cmake 2013-11-27 20:22:18 UTC (rev 12772) @@ -1,7 +1,7 @@ # cmake/modules/shapefil.cmake # # Copyright (C) 2012 Andrew Ross -# Copyright (C) 2012 Alan W. Irwin +# Copyright (C) 2012-2013 Alan W. Irwin # # This file is part of PLplot. # @@ -27,7 +27,7 @@ ) # Look for shapelib libraries -if (HAVE_SHAPELIB) +if(HAVE_SHAPELIB) find_package(Shapelib) if(SHAPELIB_FOUND) set(SHAPELIB_RPATH ${SHAPELIB_LIBRARY_DIRS}) @@ -41,4 +41,24 @@ FORCE ) endif(SHAPELIB_FOUND) -endif (HAVE_SHAPELIB) +endif(HAVE_SHAPELIB) + +if(HAVE_SHAPELIB) + # See if shapelib is a modern version with access to SAHooks type. + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Check_SAHooks.c + "#include <shapefil.h> +void main(void){SAHooks sHooks;} +" + ) + try_compile(HAVE_SAHOOKS ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/Check_SAHooks.c + CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${SHAPELIB_INCLUDE_DIR}" + ) + if(NOT HAVE_SAHOOKS) + message(STATUS "WARNING: the (rather ancient) version of shapelib that has been found does not + include the SAHooks type. Therefore, the misleading \"Unable to open ...\" + error messages that shapelib generates as PLplot checks several directories + for specified shapefiles will not be quieted." + ) + endif(NOT HAVE_SAHOOKS) +endif(HAVE_SHAPELIB) Modified: trunk/src/CMakeLists.txt =================================================================== --- trunk/src/CMakeLists.txt 2013-11-27 18:22:39 UTC (rev 12771) +++ trunk/src/CMakeLists.txt 2013-11-27 20:22:18 UTC (rev 12772) @@ -371,7 +371,17 @@ if(NOT PLMAP_COMPILE_PROPS) set(PLMAP_COMPILE_PROPS) endif(NOT PLMAP_COMPILE_PROPS) - set_source_files_properties(plmap.c PROPERTIES COMPILE_FLAGS "${PLMAP_COMPILE_PROPS} -I${SHAPELIB_INCLUDE_DIR}") + set_source_files_properties(plmap.c + PROPERTIES + COMPILE_FLAGS "${PLMAP_COMPILE_PROPS} -I${SHAPELIB_INCLUDE_DIR}" + ) + if(HAVE_SAHOOKS) + set_source_files_properties(plmap.c + PROPERTIES + COMPILE_DEFINITIONS HAVE_SAHOOKS + ) + endif(HAVE_SAHOOKS) + set( libplplot${LIB_TAG}_LINK_LIBRARIES ${libplplot${LIB_TAG}_LINK_LIBRARIES} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-27 18:22:42
|
Revision: 12771 http://sourceforge.net/p/plplot/code/12771 Author: airwin Date: 2013-11-27 18:22:39 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Style previous commit. Modified Paths: -------------- trunk/src/plmap.c Modified: trunk/src/plmap.c =================================================================== --- trunk/src/plmap.c 2013-11-27 18:16:31 UTC (rev 12770) +++ trunk/src/plmap.c 2013-11-27 18:22:39 UTC (rev 12771) @@ -51,7 +51,7 @@ OpenShapeFile( const char *fn ); static void -CustomErrors(const char *message); +CustomErrors( const char *message ); #endif @@ -476,9 +476,9 @@ // Our thanks to Frank Warmerdam, the developer of shapelib for suggesting // this approach for quieting shapelib "Unable to open" error messages. static -void CustomErrors(const char *message) +void CustomErrors( const char *message ) { - if (strstr(message,"Unable to open") == NULL) + if ( strstr( message, "Unable to open" ) == NULL ) fprintf( stderr, "%s\n", message ); } @@ -487,8 +487,8 @@ { SHPHandle file; char *fs = NULL, *dn = NULL; -#ifdef HAVE_SAHOOKS - SAHooks sHooks; +#ifdef HAVE_SAHOOKS + SAHooks sHooks; SASetupDefaultHooks( &sHooks ); sHooks.Error = CustomErrors; @@ -497,7 +497,7 @@ // For this case live with the misleading "Unable to open" error // messages. int sHooks; -#define SHPOpenLL(a, b, c) SHPOpen(a, b) +#define SHPOpenLL( a, b, c ) SHPOpen( a, b ) #endif //*** search build tree *** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-11-27 18:16:38
|
Revision: 12770 http://sourceforge.net/p/plplot/code/12770 Author: airwin Date: 2013-11-27 18:16:31 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Solve recently introduced build issue for the majority of Debian-based distribution users who are still using an ancient version of shapelib. If the HAVE_SAHOOKS macro is not defined (always in the present case because I haven't yet created the test to #define HAVE_SAHOOKS) drop back to using SHPOpen with no SAHooks argument) rather than SHPOpenLL. Tested by Alan W. Irwin <ai...@us...> on Linux by building and running (using valgrind) standard C example 19, which produced good results (completely clean valgrind run and good plots) along with the misleading but expected Unable to open usaglobe.shp or usaglobe.SHP. Unable to open usaglobe.shp or usaglobe.SHP. Unable to open globe.shp or globe.SHP. Unable to open globe.shp or globe.SHP. messages from SHPOpen. ToDo: implement a CMake-based test that will #define the HAVE_SAHOOKS C macro (or not) for plmap.c. This will get rid of the above misleading messages if the shapelib library is modern enough to include SAHooks. Modified Paths: -------------- trunk/src/plmap.c Modified: trunk/src/plmap.c =================================================================== --- trunk/src/plmap.c 2013-11-27 15:37:50 UTC (rev 12769) +++ trunk/src/plmap.c 2013-11-27 18:16:31 UTC (rev 12770) @@ -487,10 +487,18 @@ { SHPHandle file; char *fs = NULL, *dn = NULL; +#ifdef HAVE_SAHOOKS SAHooks sHooks; SASetupDefaultHooks( &sHooks ); sHooks.Error = CustomErrors; +#else + // Using ancient version of shapelib without SAHooks or SHPOpenLL. + // For this case live with the misleading "Unable to open" error + // messages. + int sHooks; +#define SHPOpenLL(a, b, c) SHPOpen(a, b) +#endif //*** search build tree *** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-27 15:37:53
|
Revision: 12769 http://sourceforge.net/p/plplot/code/12769 Author: andrewross Date: 2013-11-27 15:37:50 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Add comment about use of global variable. Modified Paths: -------------- trunk/examples/lua/x22.lua Modified: trunk/examples/lua/x22.lua =================================================================== --- trunk/examples/lua/x22.lua 2013-11-27 15:32:40 UTC (rev 12768) +++ trunk/examples/lua/x22.lua 2013-11-27 15:37:50 UTC (rev 12769) @@ -127,6 +127,8 @@ pl.col0(1) end +-- Note this function uses the global variable xmax rather than passing +-- data as in C. function transform(x,y) xt = x This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-27 15:32:45
|
Revision: 12768 http://sourceforge.net/p/plplot/code/12768 Author: andrewross Date: 2013-11-27 15:32:40 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Update lua version of example 22. Modified Paths: -------------- trunk/examples/lua/x22.lua Modified: trunk/examples/lua/x22.lua =================================================================== --- trunk/examples/lua/x22.lua 2013-11-27 13:32:41 UTC (rev 12767) +++ trunk/examples/lua/x22.lua 2013-11-27 15:32:40 UTC (rev 12768) @@ -43,7 +43,7 @@ ymin = -ny/2*dy ymax = ny/2*dy - cgrid2 = {} + cgrid2 = {} cgrid2["xg"] = {} cgrid2["yg"] = {} cgrid2["nx"] = nx @@ -77,7 +77,7 @@ -- Vector plot of flow through a constricted pipe -function constriction() +function constriction( astyle ) nx = 20 ny = 20 dx = 1 @@ -109,7 +109,7 @@ cgrid2["yg"][i][j] = y b = ymax/4*(3-math.cos(math.pi*x/xmax)) if math.abs(y)<b then - dbdx = ymax/4*math.sin(math.pi*x/xmax)*y/b + dbdx = ymax/4*math.sin(math.pi*x/xmax)*math.pi/xmax*y/b u[i][j] = Q*ymax/b v[i][j] = dbdx*u[i][j] else @@ -120,13 +120,82 @@ end pl.env(xmin, xmax, ymin, ymax, 0, 0) - pl.lab("(x)", "(y)", "#frPLplot Example 22 - constriction") + title = string.format( "#frPLplot Example 22 - constriction (arrow style %d)", astyle ) + pl.lab("(x)", "(y)", title) pl.col0(2) - pl.vect(u, v, -0.5, "pltr2", cgrid2) + pl.vect(u, v, -1.0, "pltr2", cgrid2) pl.col0(1) end +function transform(x,y) + + xt = x + yt = y / 4.0 * ( 3 - math.cos( math.pi * x / xmax )) + return xt, yt +end + +-- Vector plot of flow through a constricted pipe +function constriction2() + nx = 20 + ny = 20 + nc = 11 + nseg = 20 + + dx = 1 + dy = 1 + + xmin = -nx/2*dx + xmax = nx/2*dx + ymin = -ny/2*dy + ymax = ny/2*dy + + pl.stransform( "transform" ) + + cgrid2 = {} + cgrid2["xg"] = {} + cgrid2["yg"] = {} + cgrid2["nx"] = nx + cgrid2["ny"] = ny + u = {} + v = {} + + Q = 2 + for i = 1, nx do + x = (i-1-nx/2+0.5)*dx + cgrid2["xg"][i] = {} + cgrid2["yg"][i] = {} + u[i] = {} + v[i] = {} + for j = 1, ny do + y = (j-1-ny/2+0.5)*dy + cgrid2["xg"][i][j] = x + cgrid2["yg"][i][j] = y + b = ymax/4*(3-math.cos(math.pi*x/xmax)) + u[i][j] = Q*ymax/b + v[i][j] = 0.0 + end + end + + clev = {} + for i = 1, nc do + clev[i] = Q + (i-1)*Q/(nc-1) + end + + pl.env(xmin, xmax, ymin, ymax, 0, 0) + pl.lab("(x)", "(y)", "#frPLplot Example 22 - constriction with plstransform") + pl.col0(2) + pl.shades(u, xmin+dx/2, xmax-dx/2, ymin+dy/2, ymax-dy/2, clev, 0.0, 1, 1.0, 0 ); + pl.vect(u, v, -1.0, "pltr2", cgrid2) + pl.path( nseg, xmin, ymax, xmax, ymax ); + pl.path( nseg, xmin, ymin, xmax, ymin ); + pl.col0(1) + + pl.stransform() + +end + + function f2mnmx(f, nx, ny) fmax = f[1][1] fmin = fmax @@ -260,14 +329,18 @@ -- Set arrow style using arrow_x and arrow_y then -- plot using these arrows. pl.svect(arrow_x, arrow_y, fill) -constriction() +constriction(1) -- Set arrow style using arrow2_x and arrow2_y then -- plot using these filled arrows. fill = 1 pl.svect(arrow2_x, arrow2_y, fill) -constriction() +constriction(2) +constriction2() + +pl.svect(nil, nil, 0) + potential() pl.plend() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-27 13:32:45
|
Revision: 12767 http://sourceforge.net/p/plplot/code/12767 Author: andrewross Date: 2013-11-27 13:32:41 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Update octave version of example 22. Modified Paths: -------------- trunk/examples/octave/x22c.m Modified: trunk/examples/octave/x22c.m =================================================================== --- trunk/examples/octave/x22c.m 2013-11-27 12:16:50 UTC (rev 12766) +++ trunk/examples/octave/x22c.m 2013-11-27 13:32:41 UTC (rev 12767) @@ -18,6 +18,8 @@ 1; +global xmax; + function ix22c ## Parse and process command line arguments */ @@ -43,14 +45,18 @@ ## Set arrow style using arrow_x and arrow_y then ## plot using these arrows. plsvect(arrow_x', arrow_y', fill); - constriction; + constriction(1); ## Set arrow style using arrow2_x and arrow2_y then ## plot using these filled arrows. */ fill = 1; plsvect(arrow2_x', arrow2_y', fill); - constriction; + constriction(2); + constriction2; + + plsvect([],[],0); + potential; ## Don't forget to call plend1 to finish off! */ @@ -86,7 +92,7 @@ end ## Vector plot of flow through a constricted pipe -function constriction +function constriction( astyle ) nx = 20; ny = 20; @@ -103,18 +109,75 @@ yg = ones(nx,1)*[ymin+dy/2:dy:ymax-dy/2]; b = ymax/4.0.*(3-cos(pi*xg/xmax)); - dbdx = ymax/4.0.*sin(pi*xg/xmax).*yg./b; + dbdx = ymax/4.0.*sin(pi*xg/xmax)*pi/xmax.*yg./b; u = Q*ymax./b.*(abs(yg)<b); v = dbdx.*u.*(abs(yg)<b); plenv(xmin, xmax, ymin, ymax, 0, 0); - pllab("(x)", "(y)", "#frPLplot Example 22 - constriction"); + title = sprintf( "#frPLplot Example 22 - constriction (arrow style %d)", astyle ); + + pllab("(x)", "(y)", title ); plcol0(2); - plvect2(u,v,-0.5,xg,yg); + plvect2(u,v,-1.0,xg,yg); plcol0(1); end +## +## Global transform function for a constriction using data passed in +## This is the same transformation used in constriction. +## +function [xt, yt] = transform( x, y, data ) + global xmax; + xt = x; + yt = y / 4.0 * ( 3 - cos( pi * x / xmax ) ); +end + +## Vector plot of flow through a constricted pipe with +## a coordinate transformation +function constriction2() + + global xmax; + + nx = 20; + ny = 20; + nc = 11; + nseg = 20; + + dx = 1.0; + dy = 1.0; + + xmin = -nx/2*dx; + xmax = nx/2*dx; + ymin = -ny/2*dy; + ymax = ny/2*dy; + + plstransform( @transform, [] ); + + Q = 2.0; + xg = [xmin+dx/2:dx:xmax-dx/2]'*ones(1,ny); + yg = ones(nx,1)*[ymin+dy/2:dy:ymax-dy/2]; + + b = ymax/4.0.*(3.0-cos(pi*xg/xmax)); + u = Q*ymax./b; + v = zeros(nx,ny); + + clev = Q + (0:(nc-1))*Q/(nc-1); + + plenv(xmin, xmax, ymin, ymax, 0, 0); + pllab("(x)", "(y)", "#frPLplot Example 22 - constriction with plstransform" ); + plcol0(2); + plshades(u, xmin+dx/2,xmax-dx/2,ymin+dy/2,ymax-dy/2,clev',0.0,1,1.0,0); + plvect2(u,v,-1.0,xg,yg); + ## Plot edges using plpath (which accounts for coordinate transformation) rather than plline + plpath( nseg, xmin, ymax, xmax, ymax ); + plpath( nseg, xmin, ymin, xmax, ymin ); + plcol0(1); + + plstransform( [], [] ); + +end + ## Vector plot of the gradient of a shielded potential (see example 9) function potential This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-27 12:16:53
|
Revision: 12766 http://sourceforge.net/p/plplot/code/12766 Author: andrewross Date: 2013-11-27 12:16:50 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Update java version of example 22. Modified Paths: -------------- trunk/examples/java/x22.java Modified: trunk/examples/java/x22.java =================================================================== --- trunk/examples/java/x22.java 2013-11-27 12:12:14 UTC (rev 12765) +++ trunk/examples/java/x22.java 2013-11-27 12:16:50 UTC (rev 12766) @@ -33,6 +33,18 @@ import java.lang.Math; +class Transform implements PLCallbackCT { + public void coordTransform( double x, double y, double[] xt, double[] yt, Object data ) + { + double xmax; + + xmax = 10.0; + + xt[0] = x; + yt[0] = y / 4.0 * ( 3 - Math.cos( Math.PI * x / xmax ) ); + } +} + class x22 { double MIN( double x, double y ) { return ( x < y ? x : y ); } double MAX( double x, double y ) { return ( x > y ? x : y ); } @@ -43,7 +55,7 @@ double[][] v = null; double[][] xg = null; double[][] yg = null; - int nx, ny; + int nx, ny, nc, nseg; // Vector plot of the circulation about the origin void circulation() @@ -84,7 +96,7 @@ } // Vector plot of flow through a constricted pipe - void constriction() + void constriction( int astyle ) { int i, j; double dx, dy, x, y; @@ -112,7 +124,7 @@ if ( Math.abs( y ) < b ) { dbdx = ymax / 4.0 * Math.sin( Math.PI * x / xmax ) * - y / b; + Math.PI / xmax * y / b; u[i][j] = Q * ymax / b; v[i][j] = dbdx * u[i][j]; } @@ -125,12 +137,70 @@ } pls.env( xmin, xmax, ymin, ymax, 0, 0 ); - pls.lab( "(x)", "(y)", "#frPLplot Example 22 - constriction" ); + pls.lab( "(x)", "(y)", "#frPLplot Example 22 - constriction (arrow style " + astyle + ")" ); pls.col0( 2 ); - pls.vect( u, v, -0.5, xg, yg ); + pls.vect( u, v, -1.0, xg, yg ); pls.col0( 1 ); } +// +// Vector plot of flow through a constricted pipe +// with a coordinate transform +// + void constriction2( ) + { + int i, j; + double dx, dy, x, y; + double xmin, xmax, ymin, ymax; + double Q, b, dbdx; + double[] clev = new double[nc]; + Transform transform = new Transform(); + + dx = 1.0; + dy = 1.0; + + xmin = -nx / 2 * dx; + xmax = nx / 2 * dx; + ymin = -ny / 2 * dy; + ymax = ny / 2 * dy; + + pls.stransform( transform, xmax ); + + Q = 2.0; + for ( i = 0; i < nx; i++ ) + { + x = ( i - nx / 2 + 0.5 ) * dx; + for ( j = 0; j < ny; j++ ) + { + y = ( j - ny / 2 + 0.5 ) * dy; + xg[i][j] = x; + yg[i][j] = y; + b = ymax / 4.0 * ( 3 - Math.cos( Math.PI * x / xmax ) ); + u[i][j] = Q * ymax / b; + v[i][j] = 0.0; + } + } + + for ( i = 0; i < nc; i++ ) + { + clev[i] = Q + i * Q / ( nc - 1 ); + } + + pls.env( xmin, xmax, ymin, ymax, 0, 0 ); + pls.lab( "(x)", "(y)", "#frPLplot Example 22 - constriction with plstransform" ); + pls.col0( 2 ); + pls.shades( u, xmin + dx / 2, xmax - dx / 2, + ymin + dy / 2, ymax - dy / 2, + clev, 0, 1, 1.0, 0, xg, yg ); + pls.vect( u, v, -1.0, xg, yg ); + // Plot edges using plpath (which accounts for coordinate transformation) rather than plline + pls.path( nseg, xmin, ymax, xmax, ymax ); + pls.path( nseg, xmin, ymin, xmax, ymin ); + pls.col0( 1 ); + + pls.stransform( null, null ); +} + // Vector plot of the gradient of a shielded potential (see example 9) void potential() { @@ -270,6 +340,8 @@ nx = 20; ny = 20; + nc = 11; + nseg = 20; // Allocate arrays u = new double[nx][ny]; @@ -284,14 +356,18 @@ // Set arrow style using arrow_x and arrow_y then // plot uMath.sing these arrows. pls.svect( arrow_x, arrow_y, fill ); - constriction(); + constriction( 1 ); // Set arrow style using arrow2_x and arrow2_y then // plot using these filled arrows. fill = true; pls.svect( arrow2_x, arrow2_y, fill ); - constriction(); + constriction( 2 ); + constriction2(); + + pls.svect(null,null,false); + potential(); pls.end(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-11-27 12:12:17
|
Revision: 12765 http://sourceforge.net/p/plplot/code/12765 Author: andrewross Date: 2013-11-27 12:12:14 +0000 (Wed, 27 Nov 2013) Log Message: ----------- Update python version of example 22. Modified Paths: -------------- trunk/examples/python/xw22.py Modified: trunk/examples/python/xw22.py =================================================================== --- trunk/examples/python/xw22.py 2013-11-27 12:11:34 UTC (rev 12764) +++ trunk/examples/python/xw22.py 2013-11-27 12:12:14 UTC (rev 12765) @@ -27,8 +27,8 @@ arrow_y = [0.0, 0.0, 0.2, 0.0, -0.2, 0.0] arrow2_x = [-0.5, 0.3, 0.3, 0.5, 0.3, 0.3] arrow2_y = [0.0, 0.0, 0.2, 0.0, -0.2, 0.0] +xmax = 0.0 - def circulation(): nx = 20 @@ -62,7 +62,7 @@ # Vector plot of flow through a constricted pipe -def constriction(): +def constriction( astyle ): nx = 20 ny = 20 @@ -85,18 +85,70 @@ b = ymax/4.0*(3-cos(pi*x/xmax)) b2 = multiply.outer(b,iy) mask = greater.outer(b,abs(y)) - dbdx = ymax/4.0*(sin(pi*xg/xmax)*yg/b2) + dbdx = ymax/4.0*(sin(pi*xg/xmax)*pi/xmax*yg/b2) u = Q*ymax/b2*mask v = dbdx*u plenv(xmin, xmax, ymin, ymax, 0, 0) - pllab("(x)", "(y)", "#frPLplot Example 22 - constriction") + pllab("(x)", "(y)", "#frPLplot Example 22 - constriction (arrow style "+str(astyle)+")") plcol0(2) - scaling=-0.5 + scaling=-1.0 plvect(u,v,scaling,pltr2,xg,yg) plcol0(1) +def transform( x, y, xt, yt, data ): + xt[0] = x + yt[0] = y / 4.0 * ( 3 - cos( pi * x / xmax ) ) + + +# Vector plot of flow through a constricted pipe +def constriction2(): + + global xmax + + nx = 20 + ny = 20 + nc = 11 + nseg = 20 + + dx = 1.0 + dy = 1.0 + + xmin = -nx/2*dx + xmax = nx/2*dx + ymin = -ny/2*dy + ymax = ny/2*dy + + plstransform( transform, None ) + + Q = 2.0 + ix = ones(nx) + iy = ones(ny) + x = (arange(nx)-nx/2+0.5)*dx + y = (arange(ny)-ny/2+0.5)*dy + xg = multiply.outer(x,iy) + yg = multiply.outer(ix,y) + b = ymax/4.0*(3-cos(pi*x/xmax)) + b2 = multiply.outer(b,iy) + u = Q*ymax/b2 + v = multiply.outer(zeros(nx),iy) + + clev = Q + arange(nc)*Q/(nc-1) + + plenv(xmin, xmax, ymin, ymax, 0, 0) + pllab("(x)", "(y)", "#frPLplot Example 22 - constriction with plstransform") + + plcol0(2) + plshades(u,xmin+dx/2,xmax-dx/2,ymin+dy/2,ymax-dy/2,clev,0.0,1,1.0,0,None,None) + scaling=-1.0 + plvect(u,v,scaling,pltr2,xg,yg) + plpath(nseg,xmin,ymax,xmax,ymax) + plpath(nseg,xmin,ymin,xmax,ymin) + plcol0(1) + + plstransform(None,None) + # Vector plot of the gradient of a shielded potential (see example 9) def potential(): nper = 100 @@ -199,14 +251,18 @@ # Set arrow style using arrow_x and arrow_y then # plot using these arrows. plsvect(arrow_x, arrow_y, fill) - constriction() + constriction(1) # Set arrow style using arrow2_x and arrow2_y then # plot using these filled arrows. fill = 1 plsvect(arrow2_x, arrow2_y, fill) - constriction() + constriction(2) + constriction2() + + plsvect( None, None, 0) + potential() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |