ROOT on MacOSX Mavericks (10.9)
ROOT with CLANG (MacOSX default)
While ago, it was quite a tough work to install ROOT on MacOS. Now, by the developers’ efforts, we can install ROOT on MacOSX with a few commands like
./configure --all --prefix=/usr/local --enable-builtin-freetype
make
sudo make install
ROOT with GCC (installed with Homebrew)
However, if you want to combine ROOT with C++ and FORTRAN, you will want to compile ROOT with GCC.
Procedure to install GCC on OSX is now established; you should use Homebrew.
You can install GCC together with GFORTRAN by just typing brew install --enable-fortran gcc49
(for GCC version 4.9).
Yes, Homebrew is really cool. Most of my IT-engineer friends use it, not MacPorts. I recommend you to follow the processionals’ way.
Now the time to install ROOT. For my case with Mavericks + “brewed” GCC4.9+GFORTRAN, I made it done by
./configure macosx64 --all --enable-builtin-freetype \
--with-cc=gcc --with-cxx=g++ --with-f77=gfortran --with-ld=g++ \
--disable-cocoa --disable-vc
make
sudo make install
Note that I chose macosx64
since my MacBookPro is with 64bit CPU.
Unfortunately vc and cocoa cannot be enabled perhaps because they severely depend on architecture. Anyway I made it done.
Also, in ROOT 6 you might encounter an error in compiling net/bonjour/src/TBonjourRegistrar.o
or TBonjourResolver.o
, in which case you should add --disable-bonjour
to the configure options. Good luck.
libpng problem (ROOT v5.34.21 with homebrew-libpng)
See https://root.cern.ch/phpBB3/viewtopic.php?f=3&t=17490#p77114 if you have a trouble with
Warning in <TASImage::GetMask>: No image
libpng warning: Application built with libpng-1.5.18 but running with 1.6.13
In my case with ROOT v5.34.21,
./configure macosx64 --all --enable-builtin-freetype \
--with-cc=gcc --with-cxx=g++ --with-f77=gfortran --with-ld=g++ \
--disable-cocoa --disable-vc
make
cd graf2d/asimage/src/libAfterImage
./configure --with-ttf \
--with-ttf-includes="-I../../../../graf2d/freetype/src/freetype-2.3.12/include -I../../../../graf2d/freetype/src/freetype-2.3.12/include/freetype" \
--with-afterbase=no --without-svg --disable-glx --with-builtin-ungif --with-jpeg \
--with-jpeg-includes=/usr/local/include \
--with-png --with-png-includes=/usr/local/include \
--with-tiff-includes=/usr/local/include --with-builtin-png=yes
make
cd -
make
sudo make install
(Or I maybe should have added --with-builtin-png=yes
in the first configure.)
(LaTeX + dvipdfmx) || PDFLaTeX
Sometimes we want a TeX file to be compiled both with latex
+ dvipdfmx
procedure and pdflatex
procedure.
For such cases, you can do as follows:
\ifpdf % For pdfLaTeX
\usepackage{hyperref,graphicx} % usepackage without driver option
\DeclareGraphicsRule{*}{mps}{*}{} % [For feynMP] Accept metapost graphics
\else % For (p)LaTeX + dvipdfmx
\usepackage[dvipdfmx]{hyperref,graphicx} % usepackage with driver option
\usepackage{mediabb} % [For PDF graphics] Automatic PDF-bounding box
\fi
feynMP
With feynMP (or old feynMF), we can draw Feynman diagrams automatically in a TeX file. An example of TeX-preamble is as follows, which is different for LaTeX + dvipdfmx or PDFLaTeX.
%%% For latex+dvipdfmx
\usepackage[dvipdfmx]{graphicx}
\usepackage{feynmp}
%%% For pdflatex
\usepackage{graphicx} % auto-detectable
\usepackage{feynmp}
\DeclareGraphicsRule{*}{mps}{*}{}
For arXiv submission
If you want to submit a paper with feynMP to arXiv, you should use pdfLaTeX.
Then, what we have to do is only to execute mpost
commands beforehand.
The command will be:
latex hoge.tex
mpost hoge_diagram.mp
rm hoge.dvi
rm hoge.log
rm hoge_diagram.mp
tar czvf hoge_for_arxiv.tar.gz *
For JHEP/JCAP submission
JHEP/JCAP processing system acts like the arXiv server. So what we have to do is the same as the arXiv case.