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

Reply via email to