Difference between revisions of "ConTeXt Standalone/Implementation"

From ConTeXt wiki
m (how to cross-compile TeX Live on Mac OS X)
Line 31: Line 31:
 
<code>trunk</code>
 
<code>trunk</code>
  
=== TeX Live 2009 ===
+
=== TeX Live 2012 ===
  
 
* http://www.tug.org/texlive/svn/
 
* http://www.tug.org/texlive/svn/
Line 55: Line 55:
  
  
== Cross-compiling for PPC on Intel Mac ==
+
== Cross-compiling on Mac OS X ==
  
 
In order to cross-compile for PPC on a Intel Mac, you need to give the compiler and the linker the following additional  switches:
 
In order to cross-compile for PPC on a Intel Mac, you need to give the compiler and the linker the following additional  switches:
  
 
  -arch ppc
 
  -arch ppc
 
Pretty damn simple, isn't?
 
  
 
So all you have to do is set <code>CFLAGS</code> and <code>LDFLAGS</code> before you run <code>configure</code> (as well as <code>CXXFLAGS</code>, if applicable). Of course it may be that some Makefiles don't honor these variables and override them with something of their own, and this is the major inconvience you will have to deal with (this is actually what the Makefile for lua does; here you would have to set something like <code>MYCFLAGS</code> or <code>XCFLAGS</code> in addition).
 
So all you have to do is set <code>CFLAGS</code> and <code>LDFLAGS</code> before you run <code>configure</code> (as well as <code>CXXFLAGS</code>, if applicable). Of course it may be that some Makefiles don't honor these variables and override them with something of their own, and this is the major inconvience you will have to deal with (this is actually what the Makefile for lua does; here you would have to set something like <code>MYCFLAGS</code> or <code>XCFLAGS</code> in addition).
Line 81: Line 79:
 
== Compiling TeX Live binaries ==
 
== Compiling TeX Live binaries ==
  
(Written by Richard Koch)
+
To compile 64-bit binaries on 10.6 or later:
To compile in 64 bits, three flags should be set
+
  ./Build --disable-xdvipdfmx --disable-xetex --disable-xdv2pdf
 
+
To select the latest compiler on Lion:
CFLAGS="-arch x86_64 -mmacosx-version-min=10.5"; export CFLAGS
+
  CC=clang OBJC=clang CXX=clang++ ./Build <options>
  CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.5"; export CXXFLAGS
+
If we want to compile for 10.6 on 10.7 we additionally need:
  OBJCFLAGS="-arch x86_64 -mmacosx-version-min=10.5"; export OBJCFLAGS
+
export MACOSX_DEPLOYMENT_TARGET=10.6
 
+
  # or add -mmacosx-version-min=10.6 to CFLAGS
(though probably none of them is really needed when compiling on 64-bit software and export MACOSX_DEPLOYMENT_TARGET can be set instead)
+
# most of the time optional; usually not needed, but one never knows
 
+
export MYCFLAGS='-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk'
To use llvm, also set
+
  export CC=llvm-gcc-4.2; export CFLAGS=$MYCFLAGS
 +
export OBJC=llvm-gcc-4.2; export OBJCFLAGS=$MYCFLAGS
 +
export CXX=llvm-g++-4.2; export CXXFLAGS=$MYCFLAGS
 +
./Build <options>
  
  CC=/Developer/usr/bin/llvm-gcc-4.2; export CC
+
To compile ppc and i386 binaries for Tiger on 10.6:
 +
export ARCH=i386
 +
  export MACOSX_DEPLOYMENT_TARGET=10.4
 +
export MYCFLAGS='-arch $ARCH -isysroot /Developer/SDKs/MacOSX10.4u.sdk'
 +
export LDFLAGS='-arch $ARCH'
 +
export CC=gcc-4.0; export CFLAGS=$MYCFLAGS
 +
export OBJC=gcc-4.0; export OBJCFLAGS=$MYCFLAGS
 +
export CXX=g++-4.0; export CXXFLAGS=$MYCFLAGS
  
But then to build, I disable three things:
+
Or alternatively:
 +
export MACOSX_DEPLOYMENT_TARGET=10.4
 +
export MYCFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk'
 +
export CC=i686-apple-darwin10-gcc-4.0.1; export CFLAGS=$MYCFLAGS
 +
export OBJC=i686-apple-darwin10-gcc-4.0.1; export OBJCFLAGS=$MYCFLAGS
 +
export CXX=i686-apple-darwin10-g++-4.0.1; export CXXFLAGS=$MYCFLAGS
  
  ./Build --disable-pdfopen --disable-xetex --disable-xdv2pdf
+
  export MACOSX_DEPLOYMENT_TARGET=10.4
 +
export MYCFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk'
 +
export CC=powerpc-apple-darwin10-gcc-4.0.1; export CFLAGS=$MYCFLAGS
 +
export OBJC=powerpc-apple-darwin10-gcc-4.0.1; export OBJCFLAGS=$MYCFLAGS
 +
export CXX=powerpc-apple-darwin10-g++-4.0.1; export CXXFLAGS=$MYCFLAGS
  
 
= Non-Polish Fonts =
 
= Non-Polish Fonts =

Revision as of 16:58, 23 May 2012

< ConTeXt Standalone | ConTeXt Standalone/Structure >


Binaries can now be built from

 svn co http://svn.contextgarden.net/minimals-src/build-binaries

It might take some time to propagate the changes and auto-update this page :)

Binary sources

We take binaries from the following sources:

MetaPost

tags/XXX

pdfTeX

branches/stable/source

luaTeX

tags/beta-XXX

XeTeX

trunk

TeX Live 2012

rsync

Rsync on Windows behaves a bit weird. We fetched binaries from

One needs to set

set CYGWIN=noNTsec

before syncing binaries or

chmod 777 tex/texmf-win/bin/*

after that, else binaries won't work.

From rsync bundle one needs to have at least

chmod.exe
cygiconv-2.dll # for chmod
cygintl-3.dll  # for chmod
cygwin1.dll
rsync.exe

to be able to use rsync from the garden properly. I have no idea what happens if cygwin is in PATH, but it is asking for problems.


Cross-compiling on Mac OS X

In order to cross-compile for PPC on a Intel Mac, you need to give the compiler and the linker the following additional switches:

-arch ppc

So all you have to do is set CFLAGS and LDFLAGS before you run configure (as well as CXXFLAGS, if applicable). Of course it may be that some Makefiles don't honor these variables and override them with something of their own, and this is the major inconvience you will have to deal with (this is actually what the Makefile for lua does; here you would have to set something like MYCFLAGS or XCFLAGS in addition).

Obviously, you can also use a similar instruction to cross-compile the other way round (build for Intel on a PPC host); it's called -arch i386; and if you give both at the same time, it results with a so-called universal binary (the size of which being approximately the sum of the size of both individual binaries). Arthur 17:20, 30 September 2007 (CEST)

For pdfTeX it's enough to say

CFLAGS="-arch ppc" LDFLAGS="-arch ppc" CXXFLAGS="-arch ppc" ./build.sh

XeTeX supports the syntax

./build-xetex "-arch ppc"

for cross-compiling.

It is also adviced to use

gcc_select

and select gcc 3.3 to be more backward compatible, as well as setting

export MACOSX_DEPLOYMENT_TARGET=10.3

Compiling TeX Live binaries

To compile 64-bit binaries on 10.6 or later:

 ./Build --disable-xdvipdfmx --disable-xetex --disable-xdv2pdf

To select the latest compiler on Lion:

 CC=clang OBJC=clang CXX=clang++ ./Build <options>

If we want to compile for 10.6 on 10.7 we additionally need:

export MACOSX_DEPLOYMENT_TARGET=10.6
# or add -mmacosx-version-min=10.6 to CFLAGS
# most of the time optional; usually not needed, but one never knows
export MYCFLAGS='-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk'
export CC=llvm-gcc-4.2; export CFLAGS=$MYCFLAGS
export OBJC=llvm-gcc-4.2; export OBJCFLAGS=$MYCFLAGS
export CXX=llvm-g++-4.2; export CXXFLAGS=$MYCFLAGS
./Build <options>

To compile ppc and i386 binaries for Tiger on 10.6:

export ARCH=i386
export MACOSX_DEPLOYMENT_TARGET=10.4
export MYCFLAGS='-arch $ARCH -isysroot /Developer/SDKs/MacOSX10.4u.sdk'
export LDFLAGS='-arch $ARCH'
export CC=gcc-4.0; export CFLAGS=$MYCFLAGS
export OBJC=gcc-4.0; export OBJCFLAGS=$MYCFLAGS
export CXX=g++-4.0; export CXXFLAGS=$MYCFLAGS

Or alternatively:

export MACOSX_DEPLOYMENT_TARGET=10.4
export MYCFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk'
export CC=i686-apple-darwin10-gcc-4.0.1; export CFLAGS=$MYCFLAGS
export OBJC=i686-apple-darwin10-gcc-4.0.1; export OBJCFLAGS=$MYCFLAGS
export CXX=i686-apple-darwin10-g++-4.0.1; export CXXFLAGS=$MYCFLAGS
export MACOSX_DEPLOYMENT_TARGET=10.4
export MYCFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk'
export CC=powerpc-apple-darwin10-gcc-4.0.1; export CFLAGS=$MYCFLAGS
export OBJC=powerpc-apple-darwin10-gcc-4.0.1; export OBJCFLAGS=$MYCFLAGS
export CXX=powerpc-apple-darwin10-g++-4.0.1; export CXXFLAGS=$MYCFLAGS

Non-Polish Fonts

List of fonts in the old minimals

already there

  • bluesky
    • ams
  • hoekwater
    • context/contnav (is it needed? it's in ConTeXt already)
    • mflogo
    • misc/manfnt
  • public
    • marvosym

temporary there

These fonts will be removed once there will be TeX Gyre math available.

  • urw
    • helvetic
    • palatino
    • times
  • public
    • pxfonts
    • txfonts

superseeded by TeX Gyre

  • urw
    • avantgar (Adobe AvantGarde) -> Adventor
    • bookman -> Bonum
    • courier -> Cursor
    • helvetic -> Heros
    • ncntrsbk (Adobe New Century Schoolbook) -> Schola
    • palatino -> Pagella
    • times -> Termes
    • zapfchan -> Chorus
  • public
    • qfonts

may be removed

  • bluesky
    • cm
  • public
    • cs
    • pl

sort them first

  • adobe/utopia
  • bitstream/charter
  • bluesky
    • ams - check
    • latex-fonts -?
  • public
    • antp -?
    • cb
    • cm-super
    • eulervm
    • fourier
  • urw
    • symbol
    • utopia
    • zapfding

Math support needed

http://www.ctan.org/tex-archive/info/Free_Math_Font_Survey/en/survey.html

  • Helvetica
  • Times: tx (see type-enc) or belleek or symbol math or omega math
  • Palatino: px (or Pazo) or euler
  • Bookman: kerkis (check)
  • Schoolbook: millenial/fourerenc
  • cmbright
  • Concrete and Euler or Concrete Math

forget-me-not (how to generate map files for XeTeX):

ctxtools --dpx --force --maproot=/usr/local/gwTeX/texmf.pkgs/fonts/map/dvips/tex-gyre


Different (check)

  • wcm for syrillic
  • la/lb/lc rb1000 etc.
  • lhr
  • cbgreek
  • computer concrete (AMS) - see type-enc
  • euler (AMS)
  • AMS symbols
  • fourier
  • \definefontsynonym [RalfSmithFormalScript] [rsfs10]
  • \definefontsynonym [MartinVogel] [fmvr8x]

Building plain formats (to be done)

This text will disapear from page, but until we put some additional files to the distribution, here are some notes for me.

There are no CMR fonts in the distribution (more or less on purpose), but you can use LM replacement instead.

% pdftex.ini
\pdfoutput=1
\pdfcompresslevel=9
\pdfdecimaldigits=3
\pdfpagewidth=210 true mm
\pdfpageheight=297 true mm
\pdfhorigin=1 true in
\pdfvorigin=1 true in
\pdfpkresolution=600

\input plain
\dump
\endinput
pdftex -ini pdftex.ini

One needs to use:

\pdfmapfile{+lm-rep-cmtext.map}

Bold text