On 2013-12-02 11:49-0800 Alan W. Irwin wrote: > The current status of epa_build is I am right in the middle of a > transition from using an include(filename) approach for configuring > the builds to an add_subdirectory(projectname) approach. The > advantage of the latter approach is the CMake variables have a much > more limited scope (so that variables set for one project do not > affect any other project that is configured). I hope to finish up > this transition by later today so that using the new add_subdirectory > approach I can replicate what I did before which was to build and test > PLplot and all its (non-Qt4) dependencies on Linux.
As usual that task took longer than I initially estimated but I have completed it now (revision 12819), and I am extremely pleased with the results of this reorganization and simplification of the epa_build logic. @Arjen: could you try the epa_build project on Cygwin? Obviously any bug fixing you are right in the middle of for PLplot takes precedence so this is only in case you want a break from that activity (or have already done on the easy stuff and want to put off the rest of the Tcl/Tk bug fixing to post-release). Just follow the _Linux_ directions in cmake/epa_build/README. That approach _should_ work in principle since Cygwin advertises itself as "Linux for Windows", but there are likely to be minor glitches for the Cygwin platform for which I would appreciate your feedback. Since this is a new platform entirely, I would start with a really small test by trying to build just one package for the BUILD_THE_BUILDTOOLS=ON case, The last line of the results from cmake shows you what build targets are available. But you can also find the possibilities this way: For BUILD_THE_BUILDTOOLS=ON: wine@raven> make help |grep build_ ... build_all ... rebuild_cache ... build_cmake ... build_pkg-config ... build_swig ... build_libpcre ... build_tk ... build_tcl ... build_itk ... build_iwidgets ... build_itcl3 ... build_itk3 ... build_iwidgets4.0 You might want to pick "build_tcl" as your target since you have an interest in that case. It should only take a few minutes to build and install. If that works, you might want to try build_iwidgets4.0 (which will automatically run most of the rest of the Tcl/Tk epa_build targets through a chain of dependencies setup by the existing epa_build configuration). None of these experiments should take very long. For example, if everything works so you eventually gain enough confidence to try the build_all target, that should take about 10 minutes total. But I should warn the build_cmake target will not work on Cygwin unless you install the required development version of the curl library. (libcurl is a tough build with a lot of dependencies. That is not currently configured in epa_build (see ToDo list below) so currently for all platforms you must either rely on the system version of the development libraries for curl in order to build cmake (easy on Cygwin which has the x86/libcurl-devel/libcurl-devel-7.33.0-1 package available and also easy on Linux) or else you must drop the idea of building cmake with epa_build and instead rely on the system version of CMake or a binary downloadable version of CMake from Kitware for non-Cygwin Windows platforms. Once you have built some/all of the buildtools successfully, then for BUILD_THE_BUILDTOOLS=OFF: (which will have a completely separate build tree and install tree, see the README file) here are the possibilities: ... build_all ... rebuild_cache ... build_ndiff ... build_plplot ... build_plplot-build ... build_plplot-configure ... build_plplot-install ... build_plplot-test ... build_libagg ... build_libharu ... build_libqhull ... build_shapelib ... build_wxwidgets ... build_pango ... build_cairo ... build_fontconfig ... build_gperf ... build_gtk-doc ... build_docbook-xml ... build_libxml2 ... build_docbook-xsl ... build_libxslt ... build_yelp-tools ... build_intltool ... build_itstool ... build_yelp-xsl ... build_pixman ... build_glib ... build_libffi ... build_gobject-introspection ... build_harfbuzz ... build_ragel ... build_plplot_lite ... build_plplot_lite-build ... build_plplot_lite-configure ... build_plplot_lite-install ... build_plplot_lite-test The build_plplot target builds everything on this list other than build_ndiff and build_plplot_lite through a chain of dependencies that is set up by the current epa_build configuration. This series of builds takes a total of 0.5 hours on my Linux platform. The build_plplot_lite target builds a small subset of the above targets in 5 minutes on my platform (by excluding pango and wxwidgets and their dependencies). That is the target I suggest you start with (just to keep everything simple) once you are satisfied with the results of the BUILD_THE_BUILDTOOLS ON case. @Andrew (or any other Unix user here with an interest in building PLplot dependencies as well as PLplot): Please give epa_build a try as well (and also give me feedback concerning any confusing or incomplete instructions in cmake/epa_build/README or any errors you run into). N.B. note I have only talked about the Unix case (Cygwin, Linux, and Mac OS X) so far. I have deliberately excluded non-Cygwin Windows because I _know_ certain of the above build configurations (e.g., tcl and tk) need some changes before they can be expected to work on MinGW/MSYS, for example. In fact, when I got the build_plplot_lite target to work on MinGW/MSYS/Wine some time ago, I relied on binary downloads for some buildtools and ignored others (e.g, Tcl/Tk) and therefore didn't bother with the BUILD_THE_BUILDTOOLS ON case at all. Obviously, build_plplot_lite case by design does not have pango/cairo dependencies. But build_plplot does have those dependencies and I could never get it to work on MinGW/MSYS/Wine (the builds crashed somewhere deep in the pango stack). I don't know whether that was due to a Wine bug (in which case someone with access to MinGW/MSYS on Microsoft Windows should be able to get a lot further) or due to some epa_build configuration issue which was obfuscated so badly by Wine deficiencies that I could not diagnose the problem. Here is the current epa_build ToDo list. * Add a build configuration for Qt4_lite. Unfortunately the Linux from Scratch bible I have used for other build configurations is not suitable here because in this case it goes strictly with the lame autotools approach (with a tonne of fixups they have figured out to get around the limitations of that approach) rather than the preferred (by Qt developers!) CMake approach. So I am going to have to dig a little to figure out the CMake approach for building Qt4. Nevertheless, LFS is still useful in this case because it tells you about the Qt4 dependencies. For epa_build I am going to first emphasize Qt4_lite, the lightest form (fewest dependencies) of Qt4 that is possible that still satisfies PLplot's minimal Qt4 needs. Later on, of course, if somebody was interested they could configure a more complete and powerful form of Qt4 that was suitable, for example, to support even an epa_build configuration for KDE. All of that is a distant dream at this stage, but Qt4_lite is not. * Update to the latest Wine and get a "plplot_lite" (PLplot without the pango/cairo, Qt4, and wxwidgets dependencies) build and test to also work on the MinGW/MSYS/Wine platform like it did before the epa_build add_subdirectory reorganization and for an older version of Wine. * Attempt to add a Tcl8.6 and friends buildtools for the Wine case. If that is a success, then try again with plplot_lite on MinGW/MSYS/Wine. Our normal Tcl test targets such as test_pltcl_standard_examples and test_tclsh_standard_examples, should work, and there is also a good chance that test_c_ntk will work also since -dev ntk only depends on Tk and not X. Of course, our other Tk test targets (test_c_tk, test_plserver_standard_examples, test_wish_standard_examples, test_plserver_runAllDemos, and test_wish_runAllDemos) will not work on this platform because all the PLplot Tk functionality exercised by those tests ultimately depends on -dev xwin and X. * libcurl build configuration following the specific libcurl information (and all its dependencies) in Linux from Scratch <http://www.linuxfromscratch.org/blfs/view/svn/basicnet/curl.html>. A build configuration success with libcurl would free epa_build users of the need to rely on binary versions of CMake which is a worthwhile goal although not nearly as high a priority as Qt4_lite since ABI incompatibility issues are not an issue with binary downloads of CMake (since that is just an application) while they are an issue with binary downloads of the Qt4 set of libraries. Completing the above list should be much easier now that I have reorganized epa_build. However, I am not likely compelete this list before the release. Fortunately, nothing on this list is release critical so will not affect the release timing which is still December 14th (9 days from now). Also, nothing on this list (except possibly dropping the build of CMake and relying on a binary version of CMake instead) is critical for trying out epa_build for yourself. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel