I was recently successful in building PLplot on my computer, so
emboldened by that experience, I decided to download the latest dev
release of PDL and give it a whirl. I hope the following report will
help Chris and others improve the installation process.
GSL
------
I thought I would give GSL 1.14 a try. Downloaded and built it
successfully. But the PDL::GSL bindings fail with the following error.
chmod 755 ../../../../blib/arch/auto/PDL/GSLSF/ZETA/ZETA.bundle
cp ZETA.bs ../../../../blib/arch/auto/PDL/GSLSF/ZETA/ZETA.bs
chmod 644 ../../../../blib/arch/auto/PDL/GSLSF/ZETA/ZETA.bs
Manifying ../../../../blib/man3/PDL::GSLSF::ZETA.3
make[2]: Makefile: No such file or directory
make[2]: *** No rule to make target `Makefile'. Stop.
make[1]: *** [subdirs] Error 2
make: *** [subdirs] Error 2
I can't figure out what is the cause of the error. the
PDL::GSLSF::ZETA.3 seems to have been manified successfully, and is
present in blib/man3, so the error is because of something after that.
===========
PDL::Graphics::PLplot
--------------------------------
The LDDLFLAGS setting in Graphics/PLplot/Makefile continues to cause a
bugaboo. If I make the following change, PDL::Graphics::PLplot also
installs. However, the following change has to be made manually
everytime. Could this be incorporated in the scripts to happen
automatically on Mac OS X?
# Change the following
LDDLFLAGS = -shared -L/usr/local/lib -L/usr/local/lib
# to
LDDLFLAGS = -bundle -undefined dynamic_lookup -L/usr/local/lib
===========
slatec
---------
I had WITH_SLATEC = undef in my perldl.conf, so slatec build was
attempted. However, seems like all the slatec programs were built
32-bit.
ld: warning: in slatec/chfcm.o, file was built for i386 which is not
the architecture being linked (x86_64)
ld: warning: in slatec/chfdv.o, file was built for i386 which is not
the architecture being linked (x86_64)
ld: warning: in slatec/chfev.o, file was built for i386 which is not
the architecture being linked (x86_64)
ld: warning: in slatec/chfie.o, file was built for i386 which is not
the architecture being linked (x86_64)
and so on...
I didn't build the above programs, as far as I can tell, so they need
to be updated wherever they came from.
Interestingly, I downloaded slatec 4.1 from netlib.org, but they are
all Fortran source code that I don't know how to compile. So, I didn't
bother with them.
===========
FFTW 3.2.2
------------------
I get the following message during configure phase, even though FFTW
is built and installed successfully.
Found FFTW2 double version in /usr/local/include/fftw.h !
Libs: 'libfftw.a', 'librfftw.a' Not Found
Fwiw, I do have libfftw.a, but no librfftw.a. See below
punk...@lucknow /usr/local/lib$ll libfft*
lrwxr-xr-x 1 root wheel 25 Jan 12 14:06 libfftw.a@ ->
/usr/local/lib/libfftw3.a
lrwxr-xr-x 1 root wheel 26 Jan 12 14:06 libfftw.la@ ->
/usr/local/lib/libfftw3.la
-rw-r--r-- 1 root wheel 1644216 Jul 2 10:46 libfftw3.a
-rwxr-xr-x 1 root wheel 891 Jul 2 10:46 libfftw3.la*
punk...@lucknow /usr/local/lib$ll librff*
ls: librff*: No such file or directory
punk...@lucknow /usr/local/lib$
=============
Also, I have TriD turned off. My perldl.conf file is below, and that
enables me to build PDL on Mac OS X along with the new pdl2
command-line shell.
=========== perldl.conf ==================
# -*-perl-*-
# PDL Configuration options
# You can edit this here or say 'perl Makefile.PL PDLCONF=file'
# or use ~/.perldl.conf
# Note in general "0" means False, "1" means "True" and "undef"
# means "Try if possible (e.g. because the library is found)"
#
# You can also use a string that matches /^y/i to mean True or
# one that matches /^n/i to mean False. It will be automatically
# converted to 1 or 0 before being loaded into the Config.pm module.
#
%PDL_CONFIG = (
#
# Do we generate HTML documentation? This is normally a good idea,
# as it's nice to browse -- but many folks don't use it, preferring
# the man page and/or help versions of the documentation. Undef or 1
# causes the HTML documentation to be built; 0 turns it off.
#
HTML_DOCS => 1,
# Location of directory for temporary files created during the
# build/test process. See the getpdl_config() routine in Makefile.PL
# for the choice made if TEMPDIR is left as 'undef': it boils down to
# the first value that is defined from
# $TEMP, $TMP, or "/tmp" [a TEMP directory for MSWin users]
#
TEMPDIR => undef,
# Decides if the output of attempts to link various function
# during 'perl Makefile.PL' will be hidden when building PDL
# should only be set to 0 for debugging purposes
# see also L<trylink|PDL::Core::Dev/trylink>
HIDE_TRYLINK => 1,
# you can set machine specific optimizations here
# the settings will be passed to the toplevel Makefile.PL
# which *should* pass it to any recursively invoked ones
OPTIMIZE => undef, # '-g',
# Use posix threading to make use of multiprocessor machines
# undef -> try if possible
# 0 -> don't use
# true -> force use
WITH_POSIX_THREADS => undef,
MALLOCDBG => undef,
# {
# include => '-I/home/csoelle/tmp',
# libs => '-L/home/csoelle/tmp -lmymalloc',
# define => << 'EOD',
##define malloc(n) dbgmalloc(n,__FILE__,__LINE__)
##define free(p) dbgfree(p)
#EOD
# include => '',
# libs => '-lefence',
# define => '',
# },
# Do we want routines to handle bad values?
# saying no will make PDL a bit faster
# true -> yes
# false -> no, undef -> no
#
# WITH_BADVAL => 0,
WITH_BADVAL => 1,
# if WITH_BADVAL == 1, do we use NaN/Inf to represent badvalues
# (not convinced setting this results in faster code)
#
BADVAL_USENAN => 0,
# BADVAL_USENAN => 1,
# the original BADVAL implementation assigned bad-values on pdl-types,
# not per pdl, setting the following to one will make it a pdl-variable
# THIS IS AN EXPERIMENTAL FEATURE -- BEWARE...
BADVAL_PER_PDL => 0,
# BADVAL_PER_PDL => 1,
# Try to build Graphics/TriD
#
# There are problems with the build on OS-X, so we turn it off by default
# for such systems
#
WITH_3D => 0,
#
# Build Graphics/TriD using Perl OpenGL (experimental)
#
USE_POGL => undef,
# USE_POGL => 0,
#
POGL_VERSION => 0.62, # minimum compatible OpenGL version
# POGL_WINDOW_TYPE => 'x11', # use X11+GLX for windows
POGL_WINDOW_TYPE => 'glut', # use GLUT for windows
#
# For Mesa 3.2
#
# OPENGL_LIBS => '-L/usr/local/Mesa/lib -lGL -lGLU -lXext -lX11',
#
# Mesa needs -DGL_GLEXT_LEGACY for glPolygonOffsetEXT among others
#
# OPENGL_DEFINE => '-DGL_GLEXT_LEGACY',
# OPENGL_INC => '-I/usr/include/GL/',
#
#
# For SGI GL
#
# OPENGL_LIBS => '-lGL -lGLU -lXext -lX11',
# OPENGL_INC => '',
# OPENGL_DEFINE => '',
#
# Let perl try to figure it out
# OPENGL_LIBS => undef,
# OPENGL_INC => undef,
# OPENGL_DEFINE => undef,
# Whether or not to build the Karma interface module
WITH_KARMA => 1, # Karma interface is deprecated, don't build
WHERE_KARMA => undef, # you may explicitly specify directory location
#
## Whether or not to build the PLplot interface module
#
# Whether or not to build the PDL::Slatec module
# 0 -> don't use
# true -> force use
WITH_SLATEC => 0, # Leave it up to PDL to decide
# Whether or not to build the PDL::Minuit module
# 0 -> don't use
WITH_MINUIT => 0, # Leave it up to PDL to decide
# If MINUIT_LIB is undef a standalone version of Minuit will be compiled
# and PDL::Minuit will link to this library (fortran code can be found
# at Lib/Minuit/minuitlib)
# If you want to try to link directly to the Minuit present
# in the CERN library libpacklib.a, include the full path to the library
# here, e.g., MINUIT_LIB => '/usr/local/lib/libpacklib.a',
MINUIT_LIB => undef,
# Whether or not to build the PDL::GSL module
# 0 -> don't use
# true -> force use
WITH_GSL => 0, # Leave it up to PDL to decide
# link flags for the GSL libs, e.g. '-L/usr/local/lib -lgsl -lm'
GSL_LIBS => undef, # use gsl-config
# Location to find GSL includes:
GSL_INC => undef, # use gsl-config
# Whether or not to build the PDL::FFTW module
# 0 -> don't use
# true -> force use
WITH_FFTW => 0, # Leave it up to PDL to decide
# Location to search for the FFTW libs
FFTW_LIBS => [ '/lib','/usr/lib','/usr/local/lib'],
# Location to find FFTW includes:
FFTW_INC => ['/usr/include/','/usr/local/include'],
# FFTW Numeric Precision Type to link in: (double or single precision)
FFTW_TYPE => 'double',
# Whether or not to build the PDL::IO::HDF module
# 0 -> don't use
# true -> force use
WITH_HDF => 0,
HDF_LIBS => 0,
HDF_INC => 0,
# Whether or not to build the PDL::IO::GD module
# 0 -> don't use
# true -> force use
WITH_GD => undef,
GD_LIBS => undef,
GD_INC => undef,
# Whether or not to build the PDL::GIS::Proj module
# 0 -> don't use
# true -> force use
WITH_PROJ => undef,
PROJ_LIBS => undef,
PROJ_INC => undef,
# do we build PDL::IO::Browser?
# - on some systems (eg OS-X) it won't build and I don't know enough
# about curses to fix it
# - 1 builds, 0 or undef does not build
#
WITH_IO_BROWSER => 0,
# Quiet Astro::FITS::Header warnings for PDL build process by default
# Eventually would be better to set undef by default, and have the
# Makefile.PL change the value after it has been found missing once.
# TBD after PDL 2.4.3 release...
#
FITS_LEGACY => 1,
# Should we use the new Devel::REPL perldl?
# Given the large numbers of dependencies for Devel::REPL, we
# don't want to have that as a required dependency for PDL.
# Still, if it is there already, we could use it...
#
WITH_DEVEL_REPL => 1,
# default settings do not build PLPLOT.
WITH_PLPLOT => 1, # Leave it up to PDL to decide
WHERE_PLPLOT_LIBS => '/usr/local/lib/plplot-5.9.6', # let
PDL search for plplot installation
WHERE_PLPLOT_INCLUDE => '/usr/local/include/plplot', # let PDL
search for plplot installation
# Additionally, change the following in Graphics/PLplot/Makefile
# In short the LDDLFLAGS are still set incorrectly for OS-X.
# In the generated Makefile they are (probably):
#LDDLFLAGS = -shared -L/usr/local/lib -L/usr/local/lib
#
# When they should be (at least for OS-X, and it has been awhile since I
# actually tested this...):
#LDDLFLAGS = -bundle -undefined dynamic_lookup -L/usr/local/lib
# example manual settings:
# WITH_PLPLOT => 1, # Build PLPLOT interface
# WHERE_PLPLOT_LIBS => '/usr/local/plplot/lib', # PLplot lib dir
# WHERE_PLPLOT_INCLUDE => '/usr/local/plplot/include', # PLplot include dir
);
1; # Return OK status on 'require'
=====================================
--
Puneet Kishor http://www.punkish.org
Carbon Model http://carbonmodel.org
Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor
Nelson Institute, UW-Madison http://www.nelson.wisc.edu
-----------------------------------------------------------------------
Assertions are politics; backing up assertions with evidence is science
=======================================================================
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl