open pdf form itextsharp c# : How to delete text from pdf Library control class asp.net web page winforms ajax R-admin6-part1663

Appendix C: Platform notes
56
CXXFLAGS="-xO5 -xlibmil -nofstore -features=tmplrefstatic"
CXXPICFLAGS=-Kpic
FC=sunf95
FCFLAGS=$FFLAGS
FCPICFLAGS=-Kpic
LDFLAGS=-L/opt/sunstudio12.1/rtlibs/amd64
SHLIB_LDFLAGS=-shared
SHLIB_CXXLDFLAGS=-G
SHLIB_FCLDFLAGS=-G
SAFE_FFLAGS="-O5 -libmil"
-m64 could be added, but was the default. Do not use -fast: see the warnings under Solaris.
(The C++ options are also explained under Solaris.)
Others have found on at least some versions of ‘ix86’ Linux that the configure flag
--disable-largefile was needed (since glob.h on that platform presumed gcc was being
used).
C.3 OS X
The instructions here are for ‘x86_64’ builds on 10.9 (Mavericks) or later. In principle
4
Rcan
be built for 10.6 to 10.8 but these has not been tested recently.
To build R you need Apple’s ‘Command Line Tools’: these can be (re-)installed by
xcode-select --install. (If you have a fresh OS installation, running e.g. make in a ter-
minal will offer the installation of the command-line tools. If you have installed Xcode, this
provides the command-line tools. The tools will need to be reinstalled when OS X is upgraded,
as upgrading partially removes them.)
You need readline (or to configure using --without-readline), and a Fortran compiler.
Those and other binary components are available from https://r.research.att.com/libs:
you are likely to need pcre and xz (recent OS X provides libs but not headers for these).
An X sub-system is required unless configuring using --without-x: see https://xquartz.
macosforge.org/.
To use the quartz() graphics device you need to configure with --with-aqua (which is the
default): quartz() then becomes the default device when running R at the console and X11
would only be used for the command-line-R data editor/viewer and one version of Tcl/Tk. (This
needs an Objective-C compiler
5
which can compile the source code of quartz().)
Use --without-aqua if you want a standard Unix-alike build: apart from disabling quartz()
and the ability to use the build with R.app, it also changes the default location of the personal
library (see ?.libPaths).
Various compilers can be used. The current
CRAN
distribution of R is built using
CC=clang
CXX=clang++
F77=gfortran-4.8
FC=$F77
OBJC=clang
CFLAGS=-Wall -mtune=core2 -g -O2
CXXFLAGS=-Wall -mtune=core2 -g -O2’
OBJCFLAGS=-Wall -mtune=core2 -g -O2
F77FLAGS=-Wall -g -O2
4
It will be necessary to install later versions of software such as libcurl.
5
These days that is defined by Apple’s implementation of clang, so it is strongly recommended to use that.
How to delete text from pdf - delete, remove text from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# developers to use mature APIs to delete and remove text content from PDF document
acrobat remove text from pdf; how to delete text from a pdf document
How to delete text from pdf - VB.NET PDF delete text library: delete, remove text from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Programming Guide to Delete Text from PDF File
delete text pdf preview; online pdf editor to delete text
Appendix C: Platform notes
57
FCFLAGS=$F77FLAGS
with clang and clang++ from the ‘Command Line Tools’ and the Fortran compiler from
https://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2.
6
Other builds of gfortran are available: see https://gcc.gnu.org/wiki/GFortranBinaries
and http://coudert.name/software.html. To use one of these with a binary distribution of
Ryou will probably need to specify the name or path in a personal or site Makevars file (see
Section 6.3.3 [Customizing package compilation], page 25).
More recent and complete distributions of clang are usually available from http://llvm.
org/releases/. In particular, these include support for the ‘Address Sanitizer’ (not included
by Apple until Xcode 7) and for OpenMP
7
in version 3.7.0 and later.
Pre-compiled versions of many of the Section A.2 [Useful libraries and programs], page 39,
are available from https://r.research.att.com/libs/. You will most likely want at least
jpeg and tiff. pkg-config is not provided by Apple and used for many packages: it will also
be used if present when configuring the X11() and bitmap devices.
Support for cairo (without Pango) can be enabled in two ways: both need pkg-config
available. XQuartz ships cairo and its version will be selected if its pkg-config files are first
on the configuration path: for example by setting
export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
or appending that variable to the configure command. Otherwise the binary libraries at
https://r.research.att.com/libs/ can be used: cairo, fontconfig, freetype, pixman
and pkgconfig-system-stubs-darwin13.tar.gz are needed, plus libpng for PNG support.
The Accelerate library can be used via the configuration options
--with-blas="-framework Accelerate" --with-lapack
to provide potentially higher-performance versions of the
BLAS
and LAPACK routines.
8
Looking at the top of /Library/Frameworks/R.framework/Resources/etc/Makeconf will
show the compilers and configuration options used for the
CRAN
binary package for R: at the
time of writing the non-default options
--enable-memory-profiling --enable-R-framework
were used.
Configure option --with-internal-tzcode is the default on OS X, as the system implemen-
tation of time zones does not work correctly for times before 1902 or after 2037 (despite using
a64-bit time_t).
The T
E
X implementation used by the developers is MacTeX (https://www.tug.org/
mactex/): the full installation is about 4GB, but a smaller version is available at https://
www.tug.org/mactex/morepackages.html: you will need to add some packages, e.g. for the
2015 version we needed to add cm-super, helvetic, inconsolata and texinfo which brought this to
about 410MB. ‘TeX Live Utility’ (available via the MacTeX front page) provides a graphical
means to manage T
E
Xpackages.
One OS X quirk is that the default path has /usr/local/bin after /usr/bin, contrary to
common practice on Unix-alikes. This means that if you install tools from the sources they will
by default be installed under /usr/local and not supersede the system versions.
If you upgrade your OS you should re-install the ‘Command Line Tools’ and may need to
re-install XQuartz and Java (this has been needed for some upgrades but not others).
6
This is a tarball which needs to be unpacked in the Terminal by e.g. sudo tar -zxf gfortran-4.8.2-
darwin13.tar.bz2 -C /. It does not run on Core 2 Duo Macs.
7
This also needs the OpenMP runtime, which is distributed separately at that site.
8
It is reported that for some non-Apple toolchains CPPFLAGS needed to contain -D__ACCELERATE__.
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
›› VB.NET PDF: Delete PDF Page. VB.NET PDF - How to Delete PDF Document Page in VB.NET. Visual Basic Sample Codes to Delete PDF Document Page in VB.NET Class.
delete text pdf files; how to delete text from pdf reader
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Page: Delete Existing PDF Pages. |. Home ›› XDoc.PDF ›› C# PDF: Delete PDF Page. C#.NET PDF Library - Delete PDF Document Page in C#.NET.
how to erase text in pdf file; erase text in pdf document
Appendix C: Platform notes
58
C.3.1 El Capitan
There are problems resulting from the new-to-El-Capitan restriction that only Apple is allowed
to install software under /usr: this affects inter alia MacTeX and XQuartz. For MacTeX it is
necessary to include /Library/TeX/texbin in your path rather than /usr/texbin. Upgrading
will move disallowed files to under /Library/SystemMigration/usr: this includes /usr/X11R6,
/usr/texbin, /usr/bin/R, /usr/bin/Rscript but not the link /usr/X11.
configure can be told to look for X11 in XQuartz’s main location of /opt/X11, e.g. by
--x-includes=/opt/X11/include --x-libraries=/opt/X11/lib
although the linked versions under /usr/X11 will be found (if the link is present).
C.3.2 Tcl/Tk headers and libraries
If you plan to use the tcltk package for R, you need to install a distribution of Tcl/Tk. There
are two alternatives. If you use R.app you will want to use X11-based Tcl/Tk (as used on other
Unix-alikes), which is installed as part of the CRAN binary for R. This may need
-with-tcltk=/usr/local/lib
or
--with-tcl-config=/usr/local/lib/tclConfig.sh
--with-tk-config=/usr/local/lib/tkConfig.sh
Note that this requires a matching XQuartz installation.
There is also a native (‘Aqua’) version of Tcl/Tk which produces widgets in the native OS
Xstyle: this will not work with R.app because of conflicts over the OS X menu, but for those
only using command-line R this provides a much more intuitive interface to Tk for experienced
Mac users. Most versions of OS X come with Aqua Tcl/Tk libraries, but these are not at all
recent versions of Tcl/Tk (8.5.9 in El Capitan, which is not even the latest patched version in
that series). It is better to install Tcl/Tk 8.6.x from the sources or a binary distribution from
https://www.activestate.com/activetcl/downloads. Configure R with
--with-tcl-config=/Library/Frameworks/Tcl.framework/tclConfig.sh
--with-tk-config=/Library/Frameworks/Tk.framework/tkConfig.sh
(for the versions bundled with OS X, use paths starting with /System/Library).
If you need to find out which distribution of Tk is in use at run time, use
library(tcltk)
tclvalue(.Tcl("tk windowingsystem")) # "x11" or "aqua"
C.3.3 Java
The situation with Java support on OS X is messy.
9
OS X no longer comes with an installed Java runtime (JRE), and an OS X upgrade removes
one if already installed: it is intended to be installed at first use. Check if a JRE is installed by
running java -version in a Terminal window: if Java is not installed this should prompt you
to install it. You can also install directly the latest Java from Oracle (currently from http://
www.oracle.com/technetwork/java/javase/downloads/index.html).
You may need to install what Apple calls ‘legacy Java’
10
to suppress pop-up messages even
if you have a current version installed.
To see what compatible versions of Java are currently installed, run /usr/libexec/java_
home -V -a x86_64. If needed, set the environment variable JAVA_HOME to choose between these,
both when R is built from the sources and when R CMD javareconf is run.
9
For more details see http://www.macstrategy.com/article.php?3.
10
e.g. Java For OS X 2015-001 from https://support.apple.com/kb/DL1572.
VB.NET PDF Text Extract Library: extract text content from PDF
PDF ›› VB.NET PDF: Extract PDF Text. VB.NET PDF - Extract Text from PDF Using VB. How to Extract Text from PDF with VB.NET Sample Codes in .NET Application.
remove text from pdf online; remove text watermark from pdf online
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File.
pull text out of pdf; how to delete text in pdf converter professional
Appendix C: Platform notes
59
Configuring and building R both looks for a JRE and for support for compiling JNI pro-
grams (used by packages rJava (https://CRAN.R-project.org/package=rJava) and JavaGD
(https://CRAN.R-project.org/package=JavaGD)); the latter requires a JDK (Java SDK) and
not just a JRE.
The build process tries to fathom out what JRE/JDK to use, but it may need some help,
e.g. by setting JAVA_HOME. An Apple JRE can be specified explicitly by something like
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
JAVA_CPPFLAGS="-I/System/Library/Frameworks/JavaVM.framework/Headers"
JAVA_LD_LIBRARY_PATH=
JAVA_LIBS="-framework JavaVM"
The Oracle JDK can be specified explicitly by something like
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home
JAVA_CPPFLAGS="-I/${JAVA_HOME}/include -I/${JAVA_HOME}/include/darwin"
JAVA_LD_LIBRARY_PATH="${JAVA_HOME}/jre/lib/server"
JAVA_LIBS="-L/${JAVA_HOME}/jre/lib/server -ljvm"
in config.site.
Note that it is necessary to set the environment variable NOAWT to 1 to install many of the
Java-using packages.
C.3.4 Frameworks
The
CRAN
build of R is installed as a framework, which is selected by the option
./configure --enable-R-framework
(This is intended to be used with an Apple toolchain: other compilers may not support
frameworks correctly. It was the default prior to R 3.3.0.)
It is only needed if you want to build R for use with the R.app console, and implies
--enable-R-shlib to build R as a dynamic library. This option configures R to be built and
installed as a framework called R.framework. The default installation path for R.framework
is /Library/Frameworks but this can be changed at configure time by specifying the flag
--enable-R-framework[=DIR] (or --prefix) or at install time via
make prefix=/where/you/want/R.framework/to/go install
Note that installation as a framework is non-standard (especially to a non-standard location)
and Unix utilities may not support it (e.g. the pkg-config file libR.pc will be put somewhere
unknown to pkg-config).
C.3.5 Building R.app
Note that building the R.app GUI console is a separate project, using Xcode. Before compiling
R.app make sure the current version of R is installed in /Library/Frameworks/R.framework
and working at the command-line (this can be a binary install).
The current sources can be checked out by
svn co https://svn.r-project.org/R-packages/trunk/Mac-GUI
and built by loading the R.xcodeproj project (select the R target and a suitable configuration),
or from the command-line by e.g.
xcodebuild -target R -configuration Release
See also the INSTALL file in the checkout or directly at https://svn.r-project.org/
R-packages/trunk/Mac-GUI/INSTALL.
R.app does not need to be installed in any specific way. Building R.app results in the R.app
bundle which appears as one R icon. This application bundle can be run anywhere and it is
customary to place it in the /Applications folder.
C# PDF insert text Library: insert text into PDF content in C#.net
Text to PDF. C#.NET PDF SDK - Insert Text to PDF Document in C#.NET. Providing C# Demo Code for Adding and Inserting Text to PDF File Page with .NET PDF Library.
erase pdf text online; remove text from pdf reader
C# PDF Text Search Library: search text inside PDF file in C#.net
Text: Search Text in PDF. C# Guide about How to Search Text in PDF Document and Obtain Text Content and Location Information with .NET PDF Control.
delete text pdf document; delete text pdf
Appendix C: Platform notes
60
C.4 Solaris
Rhas been built successfully on Solaris 10 (both Sparc and ‘x86’) using the (zero cost) Oracle
Solaris Studio compilers: there has been some success with gcc 4/gfortran. (Recent Sun ma-
chines are AMD Opterons or Intel Xeons (‘amd64’) rather than ‘x86’, but 32-bit ‘x86’executables
are the default.)
There have been few reports on Solaris 11, with no known extra issues. Solaris 9 and earlier
are now so old that it is unlikely that R is still used with them, and they will not be considered
here.
The Solaris versions of several of the tools needed to build R (e.g. make, ar and ld) are in
/usr/ccs/bin, so if using those tools ensure this is in your path. A version of the preferred
GNU
tar is (if installed) in /usr/sfw/bin. It may be necessary to avoid the tools in /usr/ucb:
POSIX-compliant versions of some tools can be found in /usr/xpg4/bin and /usr/xpg6/bin.
Alarge selection of Open Source software can be installed from https://www.opencsw.org,
by default installed under /opt/csw. Solaris 10 ships with bzlib version 1.0.6 (sufficient) but
zlib version 1.2.3 (too old): OpenCSW has 1.2.8.
You will need
GNU
libiconv and readline: the Solaris version of iconv is not sufficiently
powerful.
The native make suffices to build R but a small number of packages require
GNU
make (some
without good reason and without declaring it as ‘SystemRequirements’ in the DESCRIPTION
file).
Some people have reported that the Solaris libintl needs to be avoided, for example by
using --disable-nls or --with-included-gettext or using libintl from OpenCSW. (On
the other hand, there have been many successful installs which automatically detected libintl
from OpenCSW or selected the included gettext.)
The support for theC99 long double type on Sparc hardware uses quad-precision arithmetic,
and this is usually slow because it is done by softwareemulation. On suchsystems the configure
option --disable-long-double can be used for faster but less accurate computations.
The Solaris time-zone conversion services seem to be unreliable pre-1916 in Europe (when
daylight-savings time was first introduced): most often reporting in the non-existent DST vari-
ant. Using configure option --with-internal-tzcode is recommended, and required if you
find time-zone abbreviations being given odd values (as has been seen on 64-bit builds without
it).
When using the Oracle compilers
11
do not specify -fast, as this disables
IEEE
arithmetic
and make check will fail.
It has been reported that some Solaris installations need
INTERNET_LIBS="-lsocket -lnsl"
on the configure command line or in file config.site; however, there have been many suc-
cessful installs without this.
Alittle juggling of paths was needed to ensure
GNU
libiconv (in /usr/local) was used
rather than the Solaris iconv:
CC="cc -xc99"
CFLAGS="-O -xlibmieee"
F77=f95
FFLAGS=-O
CXX="CC -library=stlport4"
CXXFLAGS=-O
11
including gcc for Sparc from Oracle.
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
C#.NET PDF SDK - Convert PDF to Text in C#.NET. Integrate following RasterEdge C#.NET text to PDF converter SDK dlls into your C#.NET project assemblies;
delete text from pdf online; pdf text watermark remover
C# PDF metadata Library: add, remove, update PDF metadata in C#.
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata in .NET Project. Remove and delete metadata from PDF file.
how to delete text in pdf using acrobat professional; how to delete text in pdf file online
Appendix C: Platform notes
61
FC=f95
FCFLAGS=$FFLAGS
FCLIBS="-lfai -lfsu"
R_LD_LIBRARY_PATH="/usr/local/lib:/opt/csw/gcc4/lib:/opt/csw/lib"
For a 64-bit target add -m64 to the compiler macros and use something like
LDFLAGS=-L/usr/local/lib/sparcv9 or LDFLAGS=-L/usr/local/lib/amd64 as appropriate.
It will also be necessary to point pkg-config at the 64-bit directories, e.g. one of
PKG_CONFIG_PATH=/opt/csw/lib/amd64/pkgconfig:/usr/lib/amd64/pkgconfig
PKG_CONFIG_PATH=/opt/csw/lib/sparcv9/pkgconfig:/usr/lib/sparcv9/pkgconfig
and to specify a 64-bit Java VM by e.g.
JAVA_CPPFLAGS="-I${JAVA_HOME}/../include -I${JAVA_HOME}/../include/solaris"
JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/lib/amd64/server
JAVA_LIBS="-L${JAVA_HOME}/lib/amd64/server \
-R${JAVA_HOME}/lib/amd64/server -ljvm"
With Solaris Studio 12.[23] on Sparc, FCLIBS needs to be
FCLIBS="-lfai -lfai2 -lfsu"
(and possibly other Fortran libraries, but this suffices for the packages currently on CRAN).
Currently ‘amd64’ and ‘sparcv9’ builds work out-of-the-box with Sun Studio 12u1 but not
Solaris Studio 12.2 and 12.3: libRblas.so and lapack.so are generated with code that causes
relocation errors (which is being linked in from the Fortran libraries). This means that building
64-bit R as a shared library may be impossible with Solaris Studio >= 12.2. For a standard build
the trick seems to be to manually set FLIBS to avoid the troublesome libraries. For example, on
‘amd64’ set in config.site something like
FLIBS_IN_SO="-R/opt/solarisstudio12.3/lib/amd64
/opt/solarisstudio12.3/lib/amd64/libfui.so
/opt/solarisstudio12.3/lib/amd64/libfsu.so"
For 64-bit Sparc, set in config.site something like
FLIBS="-R/opt/solarisstudio12.3/prod/lib/sparc/64
-lifai -lsunimath -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai
-lfminvai -lfmaxvai -lfui -lsunmath -lmtsk
/opt/solarisstudio12.3/prod/lib/sparc/64/libfsu.so.1"
By default the Solaris Studio compilers do not by default conform to the C99 standard
(appendix F 8.9) on the return values of functions such as log: use -xlibmieee to ensure this.
You can target specific Sparc architectures for (slightly) higher performance:
-xtarget=native (in CFLAGS etc) tunes the compilation to the current machine.
Using -xlibmil in CFLAGS and -xlibmil in FFLAGS allows more system mathematical func-
tions to be inlined.
On ‘x86’ you will get marginally higher performance via
CFLAGS="-xO5 -xc99 -xlibmieee -xlibmil -nofstore -xtarget=native"
FFLAGS="-O5 -libmil -nofstore -xtarget=native"
CXXFLAGS="-xO5 -xlibmil -nofstore -xtarget=native"
SAFE_FFLAGS="-libmil -fstore -xtarget=native"
but the use of -nofstore can be less numerically stable, and some packages (notably mgcv
(https://CRAN.R-project.org/package=mgcv) on ‘x86’) failed to compile at higher optimiza-
tion levels with version 12.3.
The Solaris Studio compilers provide several implementations of the C++98 standard which
select both the set of headers and a C++ runtime library. These are selected by the -library
flag, which as it is needed for both compiling and linking is best specified as part of the compiler.
Appendix C: Platform notes
62
The examples above use ‘stlport4’, currently the most modern of the options: the default (but
still needed to be specified as it is needed for linking) is ‘Cstd’: see http://www.oracle.com/
technetwork/server-storage/solaris/cmp-stlport-libcstd-142559.html. Note though
that most external Solaris C++ libraries will have been built with ‘Cstd’ and so an R package
using such libraries also needs to be. Occasionally the option -library=stlport4,Crun has
been needed.
Several
CRAN
packages using C++ need the more liberal interpretation given by adding
CXXFLAGS="-features=tmplrefstatic"
The performance library sunperf is available for use with the Solaris Studio compilers. If
selected as a
BLAS
,it must also be selected as LAPACK via (for Solaris Studio 12.2 and later)
./configure --with-blas=’-library=sunperf’ --with-lapack
This has often given test failures in the past, in several different places. At the time of writing it
fails intests/reg-BLAS.R, andon somebuilds, including for ‘amd64’,it fails in example(eigen).
Parsing very complex R expressions needs a lot of stack space when the Oracle compilers are
used: several packages require the stack increased to at least 20MB.
C.4.1 Using gcc
If using gcc, ensure that the compiler was compiled for the version of Solaris in use. (This
can be ascertained from gcc -v.) gcc makes modified versions of some header files, and several
reports of problems were due to using gcc compiled on one version of Solaris on a later version.
The notes here are for gcc set up to use the Solaris linker: it can also be set up to use GNU
ld, but that has not been tested.
Compilation for a 32-bit Sparc target with gcc 4.9.2 needed
CPPFLAGS=-I/opt/csw/include
LDFLAGS="-L/opt/csw/gcc4/lib -L/opt/csw/lib"
and for a 64-bit Sparc target
CC="gcc -m64"
F77="gfortran -m64"
CXX="g++ -m64"
FC=$F77
CPPFLAGS=-I/opt/csw/include
LDFLAGS="-L/opt/csw/gcc4/lib/sparcv9 -L/opt/csw/lib/sparcv9"
Note that paths such as /opt/csw/gcc4/lib/sparcv9 may need to be in the LD_LIBRARY_PATH
during configuration.
The compilation can be tuned to a particular cpu: the
CRAN
check system uses
-mtune=niagara2.
Compilation for an ‘x86’ target with gcc 4.9.2 needed
CC="/opt/csw/gcc4/bin/gcc -m32"
CPPFLAGS="-I/opt/csw/include -I/usr/local/include"
F77="/opt/csw/gcc4/bin/gfortran -m32"
CXX="/opt/csw/gcc4/bin/g++ -m32"
FC="/opt/csw/gcc4/bin/gfortran -m32"
LDFLAGS="-L/opt/csw/gcc4/lib -L/opt/csw/lib -L/usr/local/lib"
(-L/opt/csw/lib is needed since TeX Live was built using 32-bit gcc, and we need
/opt/csw/lib in R_LD_LIBRARY_PATH.)
For an ‘amd64’ target with gcc 4.9.2 we used
CC="/opt/csw/gcc4/bin/gcc -m64"
CPPFLAGS="-I/opt/csw/include -I/usr/local/include"
Appendix C: Platform notes
63
F77="/opt/csw/gcc4/bin/gfortran -m64"
FPICFLAGS=-fPIC
CXX="/opt/csw/gcc4/bin/g++ -m64"
FC=$F77
FCPICFLAGS=$FPICFLAGS
LDFLAGS="-L/opt/csw/gcc4/lib/amd64 -L/opt/csw/lib/amd64"
C.5 AIX
We no longer support AIX prior to 4.2, and configure will throw an error on such systems.
Ei-ji Nakama was able to build under AIX 5.2 on ‘powerpc’ with GCC 4.0.3 in several
configurations. 32-bit versions could be configured with --without-iconv as well as --enable-
R-shlib. For 64-bit versions he used
OBJECT_MODE=64
CC="gcc -maix64"
CXX="g++ -maix64"
F77="gfortran -maix64"
FC="gfortran -maix64"
and was also able to build with the IBM xlc and Hitachi f90 compilers by
OBJECT_MODE=64
CC="xlc -q64"
CXX="g++ -maix64"
F77="f90 -cpu=pwr4 -hf77 -parallel=0 -i,L -O3 -64"
FC="f90 -cpu=pwr4 -hf77 -parallel=0 -i,L -O3 -64"
FLIBS="-L/opt/ofort90/lib -lhf90vecmath -lhf90math -lf90"
Some systems have f95 as an IBM compiler that does not by default accept FORTRAN 77.
It needs the flag -qfixed=72, or to be invoked as xlf_r.
The AIX native iconv does not support encodings ‘latin1’ nor ‘""’ and so cannot be used.
(As far as we know
GNU
libiconv could be installed.)
Fan Long reported success on AIX 5.3 using
OBJECT_MODE=64
LIBICONV=/where/libiconv/installed
CC="xlc_r -q64"
CFLAGS="-O -qstrict"
CXX="xlC_r -q64"
CXXFLAGS="-O -qstrict"
F77="xlf_r -q64"
AR="ar -X64"
CPPFLAGS="-I$LIBICONV/include -I/usr/lpp/X11/include/X11"
LDFLAGS="-L$LIBICONV/lib -L/usr/lib -L/usr/X11R6/lib"
On one AIX 6.x system it was necessary to use R_SHELL to set the default shell to be Bash
rather than Zsh.
Kurt Hornik and Stefan Theussl at WU (Wirtschaftsuniversit¨at Wien) successfully built R
on a ‘powerpc’ (8-
CPU
Power6 system) running AIX 6.1, configuring with or without --enable-
R-shlib (Ei-ji Nakama’s support is gratefully acknowledged).
It helps to describe the WU build environment first. A small part of the software needed
to build R and/or install packages is available directly from the AIX Installation DVDs, e.g.,
Java 6 and X11. Additional open source software (OSS) is packaged for AIX in .rpm files and
available from both IBM’s “AIX Toolbox for Linux Applications” (http://www-03.ibm.com/
systems/power/software/aix/linux/) and http://www.oss4aix.org/download/. The
Appendix C: Platform notes
64
latter website typically offers more recent versions of the available OSS. All tools needed and
libraries downloaded from these repositories (e.g., GCC, Make, libreadline, etc.) are typically
installed to /opt/freeware, hence corresponding executables are found in /opt/freeware/bin
which thus needs to be in PATH for using these tools. As on other Unix systems one needs
GNU
libiconv as the AIX version of iconv is not sufficiently powerful. Additionally, for proper Uni-
code compatibility one should install the corresponding package from the ICU project (http://
www.icu-project.org/download/), which offers pre-compiled binaries for various platforms
which in case of AIX can be installed via unpacking the tarball to the root file system. For full
L
A
T
E
Xsupport one can installthe T
E
XLive DVDdistribution (https://www.tug.org/texlive/
): it is recommended to update the distribution using the tlmgr update manager. For 64-bit
Rbuilds supporting Tcl/Tk this needs to installed from the sources as available pre-compiled
binaries supply only 32-bit shared objects.
The recent WU testing was done using compilers from both the
GNU
Compiler Collec-
tion (version 4.2.4) which is available from one of the above OSS repositories, and the IBM
C/C++ (XL C/C++ 10.01) as well as FORTRAN (XL Fortran 12.01) compilers (http://www14.
software.ibm.com/webapp/download/byproduct.jsp#X).
To compile for a 64-bit ‘powerpc’ (Power6
CPU
)target one can use
CC ="gcc -maix64 -pthread"
CXX="g++ -maix64 -pthread"
FC="gfortran -maix64 -pthread"
F77="gfortran -maix64 -pthread"
CFLAGS="-O2 -g -mcpu=power6"
FFLAGS="-O2 -g -mcpu=power6"
FCFLAGS="-O2 -g -mcpu=power6"
for the GCC and
CC=xlc
CXX=xlc++
FC=xlf
F77=xlf
CFLAGS="-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict -ma"
FFLAGS="-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict"
FCFLAGS="-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict"
CXXFLAGS="-qarch=auto -qcache=auto -qtune=auto -O3 -qstrict"
for the IBM XL compilers. For the latter, it is important to note that the decision for generating
32-bit or 64-bit code is done by setting the OBJECT_MODE environment variable appropriately
(recommended) or using an additional compiler flag (-q32 or -q64). By default the IBM XL
compilers produce 32 bit code. Thus, to build R with 64-bit support one needs to either export
OBJECT_MODE=64 in the environment or, alternatively, use the -q64 compiler options.
It is strongly recommended to install Bash and use it as the configure shell, e.g., via
setting CONFIG_SHELL=/usr/bin/bash in the environment, and to use
GNU
Make (e.g., via
(MAKE=/opt/freeware/bin/make).
Further installation instructions to set up a proper R development environment can be found
in the “R on AIX” project on R-Forge (https://R-Forge.R-project.org/projects/aix/).
C.6 FreeBSD
There have been few recent reports on FreeBSD.
There is a ‘port’ at https://www.freebsd.org/ports/math.html, for R 3.0.2 at the time
of writing. Davor Cubranic reported some success on x86
64 FreeBSD 10.2 for R 3.2.2.
Appendix C: Platform notes
65
Use of ICU for collation and the configure option --with-internal-tzcode are desirable
workarounds.
C.7 OpenBSD
Ingo Feinerer installed R version 3.2.2 on OpenBSD 5.8 arch ‘amd64’ (their name for ‘x86_64’).
Details of the build (and patches applied) are at http://cvsweb.openbsd.org/cgi-bin/
cvsweb/ports/math/R/.
C.8 Cygwin
The 32-bit version has never worked well enough to pass R’s make check, and residual support
from earlier experiments was removed in R 3.3.0.
The 64-bit version is completely unsupported.
C.9 New platforms
There are a number of sources of problems when installing R on a new hardware/OS platform.
These include
Floating Point Arithmetic: R requires arithmetic compliant with
IEC
60559, also known as
IEEE
754. This mandates the use of plus and minus infinity and NaN (not a number) as well as
specific details of rounding. Although almost all current FPUs can support this, selecting such
support can be a pain. The problem is that there is no agreement on how to set the signalling
behaviour; Sun/Sparc, SGI/IRIX and ‘ix86’Linux require no special action, FreeBSD requires a
call to (the macro) fpsetmask(0) and OSF1 required that computation be done with a -ieee_
with_inexact flag etc. On a new platform you must find out the magic recipe and add some
code to make it work. This can often be done via the file config.site which resides in the top
level directory.
Beware of using highlevels of optimization, at least initially. On many compilers these reduce
the degree of compliance to the
IEEE
model. For example, using -fast on the Solaris Studio
compilers has caused R’s NaN to be set incorrectly, and gcc’s -ffast-math and clang’s -Ofast
have given incorrect results.
Shared Objects: There seems to be very little agreement across platforms on what needs to
be done to build shared objects. there are many different combinations of flags for the compilers
and loaders.
GNU
libtool cannot be used (yet), as it currently does not fully support FORTRAN:
one would need a shell wrapper for this). The technique we use is to first interrogate the X
window system about what it does (using xmkmf), and then override this in situations where we
know better (for tools from the
GNU
Compiler Collection and/or platforms we know about).
This typically works, but you may have to manually override the results. Scanning the manual
entries for cc and ld usually reveals the correct incantation. Once you know the recipe you can
modify the file config.site (following the instructions therein) so that the build will use these
options.
It seems that gcc 3.4.x and later on ‘ix86’ Linux defeat attempts by the LA-
PACK code to avoid computations entirely in extended-precision registers, so file
src/modules/lapack/dlamc.f may need to be compiled without optimization. Set the
configure variable SAFE_FFLAGS to the flags to be used for this file. If configure detects
GNU
FORTRAN it adds flag -ffloat-store to FFLAGS. (Other settings are needed when using icc
on ‘ix86’ Linux, for example. Using -mpc64 is preferable on more recent GCC compilers.)
If you do manage to get R running on a new platform please let us know about it so we can
modify the configuration procedures to include that platform.
Documents you may be interested
Documents you may be interested