> On 2014-10-15 10:28-0000 Arjen Markus wrote:
>
>> Hi everyone,
>>
>> I am trying to test the build under MinGW/MSYS, but I have run into a 
>> problem with the device drivers:
>> The example programs can not find them, unless I set PLPLOT_DRV_DIR to the 
>> directory containing the .driver_info files.
>> However, when I set that environment variable [to work around the
>> issue above], the examples abort immediately, as they can not find the
>> .pal or .fnt files.
>>
>> I thought it might have to do with the plInBuildTree() function: I
>> run the programs from within the build tree, but MSYS uses the forward
>> slash to indicate directory segments whereas Windows and the code for
>> plInBuildTree() uses the backslash.
>>

Hi Arjen (again):

The result for the simple test of the MinGW-4.7.2/MSYS/Wine-1.6.1
platform was perfect for CMake-3.0.2. (Commit f61c742 gives the template
setup file change necessary to update to that version for epa_build).

Here is exactly what I did in case you are having trouble mimicking
that good result.

For convenience and reproducibility, I used epa_build to build and
install all plplot-lite dependencies and plplot itself but with no
epa_build run-time tests of those results.  This was for our principal
default build configuration (IMPORTANT, i.e., shared libraries and
dynamic devices).

No issues occurred for this simple epa_build without run-time tests
(which I believe is your case as well with the build tests you do with
your batch file approach).

I then followed up with this simple run-time test:

# Change directory from the top of the epa_build build tree
# to the top of the "build_plplot_lite" build tree.
bash.exe-3.1$ cd epa_build/Build/build_plplot_lite
# Figure out what was in the dll subdirectory (note all the library
# and device dll's are there):
bash.exe-3.1$ ls dll
_plplotc.pyd       libplplot.dll       libplplotf95.dll
libplplottcltk_Main.dll    mem.dll                  ps.dll
libcsirocsa.dll    libplplot.dll.a     libplplotf95.dll.a
libplplottcltk_Main.dll.a  ntk.dll                  svg.dll
libcsirocsa.dll.a  libplplotada.dll    libplplotf95c.dll
libqsastime.dll            null.dll                 wingcc.dll
libcsironn.dll     libplplotada.dll.a  libplplotf95c.dll.a
libqsastime.dll.a          pdf.dll                  xfig.dll
libcsironn.dll.a   libplplotcxx.dll    libplplottcltk.dll
libtclmatrix.dll           plplot_widgetmodule.dll
libplf95demolib.a  libplplotcxx.dll.a  libplplottcltk.dll.a
libtclmatrix.dll.a         plplotluac.dll

# Put the absolute form of that dll subdirectory at the top of the PATH
# and run the test
bash.exe-3.1$ PATH=$(pwd)/dll:$PATH
bash.exe-3.1$ examples/c/x01c.exe -dev psc -o /z/tmp/test.psc

There were no errors for this case, i.e., library and device driver
dll's, *.fnt, and *.pal files were all found in the build tree.
Furthermore, the /z/tmp/test.psc result was identical to the
corresponding Linux result (except for the embedded date).

In sum, there were perfect run-time results for this test so
long as the PATH was set correctly.

Since I also got perfect results in March for CMake-2.8.12.1
(downloaded from KitWare rather than built just like CMake-3.0.2 used
for the present test) and for a much more comprehensive build and run
time test that included everything above (and a whole lot more!), I
conclude there cannot be a regression (at least for this simple test)
between CMake-2.8.12.1 and CMake-3.0.2. or between the PLplot version
in March and the PLplot version now.

So that eliminates two possible reasons for this regression you have
observed between your old successful MinGW/MSYS test results (or my
present good test results) and your present bad test results.

I have given enough detail above so you should be able to exactly
replicate what I did using the batch file approach (which I believe
you preferred to the epa_build approach in the past).

So if you are positive you are mimicking my principal CMake configuration
items (shared library build + dynamic devices) and
the exact build and run-time test above, yet you still encounter an
error in finding the dll's and the *.fnt and *.pal files, then I 
guess it is possible the source of the problem is some regression you
have recently introduced into your batch files that setup the test
(compared to what you did before when you got good run-time results).

However I agree with a suggestion you made in your very latest post
that there is a good possibility the regression in behaviour is
between the MinGW-4.7.2 and old MSYS version consistent with that
MinGW version that I am using for my tests and the more modern
MinGW/MSYS you have currently installed.  In other words, your
MinGW/MSYS installation may be borked or just plain unstable (i.e.,
perhaps the modern version of MinGW you happen to be using is not as
stable as MinGW-4.7.2 has proved to be for me).

So I agree if it turns out you have no success mimicking the above
simple run-time test for PLplot with your currently installed version
of MinGW, you may want to experiment with different MinGW and MSYS
versions to see if you can find a stable combination like I have done.

Alternatively you may wish to try the independent project
MinGW-w64/MSYS2 which apparently is considerably more bug-free than
MinGW/MSYS and which also has a lot more features (more free software
libraries available) according to a response to my questions about
MSYS2 on _the mingw list_.  I emphasize what list I asked the question
on because normally that list is devoted to MinGW/MSYS so all this
early-adopter enthusiasm for MinGW-w64/MSYS2 on that list surprised
me.  Therefore, I plan to try MinGW-w64/MSYS2 myself just as soon as
the Wine gaps in Windows API that are required by the MinGW-w64/MSYS2
startup script are filled in, but it is taking quite a while for the
Wine developers to even start to deal with those gaps so I doubt I
will be able to try MinGW-w64/MSYS2 any time soon.

In conclusion, my good run-time test result today for CMake-3.0.2 and
my previous (March) good run time tests for CMake-2.8.12.1 shows the
regression you have discovered cannot be in CMake or PLplot for at
least the default build and simple run-time test described above.  And
if you are using the same batch script approach that you used before
to set up the PLplot default build, the regression is unlikely to be
caused by some problem within that batch file.

So if you cannot replicate my good but simple test above for the
default build, then I suggest you try installing some other version of
MinGW, and if that does not work try installing MinGW-w64/MSYS2 using
their completely different (from MinGW/MSYS) "Pacman" automatic
installer described at
<http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/> and
<https://wiki.archlinux.org/index.php/pacman> and which was apparently
ported to Windows for MinGW-w64/MSYS2 from the ArchLinux distribution.

Note, that MinGW/MSYS and MinGW-w64/MSYS2 are completely independent
software packages (no common developers) which respectively are an
ancient fork and a modern fork of Cygwin without all the Cygwin
baggage, i.e, the executables built on either platform run without the
large cygwin dll. So if you are already getting a good Cygwin run-time
result for PLplot, then it is likely that MinGW-w64/MSYS2 will just
work out of the box, with the same "lite" benefit as MinGW/MSYS, but
with hundreds of FOSS libraries optionally available via the Pacman
installer which is a Cygwin-like benefit without the cygwin dll
penalty.

So if a non-working run-time test provides the excuse (or maybe even
without that excuse!) please take this opportunity to try
MinGW-w64/MSYS2 to discover if that platform is going to work for
PLplot (note, with Kitware binary version of CMake and not the Cygwin
version).

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
__________________________

------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to