From 777b478d51f39ab6ad29ce5605efea19d094a089 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 28 Mar 2013 22:40:11 +0000 Subject: clisp build process, other build docs git-svn-id: svn://tug.org/texlive/trunk@29540 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/ChangeLog | 5 ++ Build/source/README | 123 +++++++++++++++++++++++---------------------- Build/source/README.config | 5 +- Build/source/utils/README | 61 ++++++++++++---------- 4 files changed, 105 insertions(+), 89 deletions(-) (limited to 'Build/source') diff --git a/Build/source/ChangeLog b/Build/source/ChangeLog index 5663a4fd28b..2bd6b7b0622 100644 --- a/Build/source/ChangeLog +++ b/Build/source/ChangeLog @@ -1,3 +1,8 @@ +2013-03-26 Karl Berry + + * Build: use $MAKE rather than $TL_MAKE for the make clean + in the unlikely event of a local Makefile. + 2013-03-21 Mojca Miklavec * Build: Remove GNUMAKE variable (after freetype2 as the only library diff --git a/Build/source/README b/Build/source/README index 9caeb754d36..825cffc34ea 100644 --- a/Build/source/README +++ b/Build/source/README @@ -12,13 +12,14 @@ To make without configuring, run TL_CONFIGURE=true ./Build. environment variables; just take a look to see all the names.) Prerequisites: +- C and C++ compilers. + - GNU make. If your GNU make is invoked by some name other than `make', - try setting the envvar TL_MAKE to what is needed. + try: env TL_MAKE=/your/gnu/make ./Build - GNU clisp and GNU libffcall, for xindy. See more details in utils/README. (Alternative: Build --disable-xindy.) - - Perl, latex, and pdflatex to build the rules and/or documentation. + Also perl, latex, and pdflatex to build the rules and/or documentation. - Perl to autodetect the TeX Live platform name for biber. @@ -27,8 +28,8 @@ Prerequisites: (Alternative: Build --without-x.) - libfontconfig (again both headers and library), for XeTeX and xdvipdfmx, - except on MacOSX. (Alternative: - Build --disable-xetex --disable-xdvipdfmx.) + except on MacOSX. (Alternative: Build --disable-xetex --disable-xdvipdfmx.) + While on MacOSX, an Objective C compiler is needed. - If you modify any .y or .l source files, then Bison and Flex (or maybe equivalents) are needed. The distributed .c and .h files are generated @@ -58,61 +59,61 @@ programs or libraries, recompiling after fixing problems, etc., are in the other README.* files here. -Build information: - In general, xe(la)tex and xdvipdfmx depend on fontconfig. - We cannot statically link it because it varies by os version. +Build information for some of the platforms. - i386-linux: Debian sarge, gcc 3.3.5, libc 2.3.2, Linux 2.6.9-67.0.4.ELsmp - chroot /home/texlive/sarge; Build --with-xindy --with-clisp=... - - x86_64-linux: gcc 4.5, libc 2.3.6, Linux 2.6.28.6 +i386-linux: gcc 4.6.3, Linux 2.6.18-* (CentOS 5) + ~karl/bin/mybuild + +x86_64-linux: gcc 4.5, libc 2.3.6, Linux 2.6.28.6 - universal-darwin, x86_64-darwin: a menagerie of versions. - See Master/source/mactexdoc.tar.xz. - - i386-solaris, x86_64-solaris: Solaris 11. - - powerpc-linux (Debian Squeeze) -Linux homer 2.6.32-5-powerpc64 #1 SMP Tue Mar 8 02:01:42 UTC 2011 -ppc64 Debian GNU/Linux 6.0 -(only the kernel is 64bit, the entire userland is 32bit.) - - sparc-solaris -OS: Sun Solaris 8 -compiler: Sun Studio 11 -bison (GNU Bison) 2.3 -flex version 2.5.4 -GNU m4 1.4.5 -GNU Make 3.81 - Because Solaris 8 does not include fontconfig, we used fontconfig - package (version 2.3.2) from http://www.blastwave.org/ - (together with its dependencies) - - powerpc-aix -OS: AIX 4.3 -compiler: IBM C for AIX Compiler, Version 5 (xlc) -bison (GNU Bison) 1.34 -flex version 2.5.4 -GNU m4 1.4 -GNU Make 3.79.1 - You can download fontconfig for AIX from - http://www-03.ibm.com/servers/aix/products/aixos/linux/download.html - ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/fontconfig/ - - alpha-linux -OS: Debian GNU/Linux 4.0 (Etch), kernel 2.6.18 -gcc (GCCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) -bison (GNU Bison) 2.3 -flex 2.5.33 -GNU M4 1.4.8 -GNU Make 3.81 - - you have to set the ulimit high enough before compiling clisp and texlive - ulimit -s 16384 - did suffice for me - - compiling of texk/web2c/pdftexdir/writezip.c is broken and triggers a - compiler error with the above gcc. This is a known optimization error - of gcc on alphas. The solution is to set - LDFLAGS=-Wl,--no-relax - before running Build. - - compilation of clisp needs --disable-mmap - - asy compilation with --disable-gsl && make +universal-darwin, x86_64-darwin: a menagerie of versions. + See Master/source/mactexdoc.tar.xz. + +i386-solaris, x86_64-solaris: Solaris 11. + +i386-cygwin: gcc-4.5.3. + +powerpc-linux (Debian Squeeze) + Linux homer 2.6.32-5-powerpc64 #1 SMP Tue Mar 8 02:01:42 UTC 2011 + ppc64 Debian GNU/Linux 6.0 + (only the kernel is 64bit, the entire userland is 32bit.) + +sparc-solaris + OS: Sun Solaris 8 + compiler: Sun Studio 11 + bison (GNU Bison) 2.3 + flex version 2.5.4 + GNU m4 1.4.5 + GNU Make 3.81 + Because Solaris 8 does not include fontconfig, we used fontconfig + package (version 2.3.2) from http://www.blastwave.org/ + (together with its dependencies) + +powerpc-aix + OS: AIX 4.3 + compiler: IBM C for AIX Compiler, Version 5 (xlc) + bison (GNU Bison) 1.34 + flex version 2.5.4 + GNU m4 1.4 + GNU Make 3.79.1 + You can download fontconfig for AIX from + http://www-03.ibm.com/servers/aix/products/aixos/linux/download.html + ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/fontconfig/ + +alpha-linux + OS: Debian GNU/Linux 4.0 (Etch), kernel 2.6.18 + gcc (GCCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) + bison (GNU Bison) 2.3 + flex 2.5.33 + GNU M4 1.4.8 + GNU Make 3.81 + - you have to set the ulimit high enough before compiling clisp and texlive + ulimit -s 16384 + did suffice for me + - compiling of texk/web2c/pdftexdir/writezip.c is broken and triggers a + compiler error with the above gcc. This is a known optimization error + of gcc on alphas. The solution is to set + LDFLAGS=-Wl,--no-relax + before running Build. + - compilation of clisp needs --disable-mmap + - asy compilation with --disable-gsl && make diff --git a/Build/source/README.config b/Build/source/README.config index 96e03ba4fa2..d3f69b89382 100644 --- a/Build/source/README.config +++ b/Build/source/README.config @@ -295,8 +295,9 @@ For system icu libraries. ----------------------------------- For most system libraries. -You need a pkg-config executable when compiling the TL's cairo. -A symlink to, e.g., /bin/false is sufficient. +You need a pkg-config executable when compiling the cairo included in +TL, but it doesn't need to do anything. A symlink to, e.g., /bin/false +is sufficient. 4.4. CLISP=/path/to/clisp ------------------------- diff --git a/Build/source/utils/README b/Build/source/utils/README index c77610d6ee8..79bf90d62fd 100644 --- a/Build/source/utils/README +++ b/Build/source/utils/README @@ -52,10 +52,6 @@ After building clisp as described below, run the TL Build --enable-xindy CLISP=$clisp_builddir/clisp to include xindy in the build. It is disabled by default. -Before clisp 2.48, do not use nohup when building clisp; this may cause -weird build problems. Regular redirections of stdout/stderr are ok. -Fixed in 2.48: http://sourceforge.net/tracker/?func=detail&aid=2805778&group_id=1355&atid=101355 - mkdir clisp; cd clisp clisp_basedir=`pwd` clisp_toolsdir=$clisp_basedir/clisp-tools @@ -64,43 +60,56 @@ mkdir $clisp_toolsdir wget=wget # or "curl -O" or whatever +libsigsegv_ver=libsigsegv-2.10 cd $clisp_basedir -$wget http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz -gzip -dc libsigsegv-2.10.tar.gz | tar xf - -cd libsigsegv-2.10 -./configure --prefix=$clisp_toolsdir && make && make check && make install - +$wget http://ftp.gnu.org/gnu/libsigsegv/$libsigsegv_ver.tar.gz +gzip -dc $libsigsegv_ver.tar.gz | tar xf - +cd $libsigsegv_ver +./configure --prefix=$clisp_toolsdir --disable-shared --enable-static \ +&& make && make check && make install +# # you may need this hack on 64-bit systems -# if clisp's configure will not find libsigsegv. +# if clisp's configure does not find libsigsegv. Harmless anyway. ln -s lib $clisp_toolsdir/lib64 -# on the mac, get libiconv and ensure link statically. -# not needed on other platforms? +libiconv_ver=libiconv-1.14 cd $clisp_basedir -$wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.13.1.tar.gz -gzip -dc libiconv-1.13.1.tar.gz | tar xf - -cd libiconv-1.13.1 -./configure --enable-static --prefix=$clisp_toolsdir \ +$wget http://ftp.gnu.org/gnu/libiconv/$libiconv_ver.tar.gz +gzip -dc $libiconv_ver.tar.gz | tar xf - +cd $libiconv_ver +./configure --prefix=$clisp_toolsdir --disable-shared --enable-static \ && make && make check && make install -# -cd $clisp_basedir/clisp-tools/lib -rm *.dylib -rm *.la +ffcall_ver=ffcall-1.10 cd $clisp_basedir -$wget http://ftp.gnu.org/gnu/clisp/release/2.49/clisp-2.49.tar.gz -gzip -dc clisp-2.49.tar.gz | tar xf - -cd clisp-2.49 +$wget http://www.haible.de/bruno/gnu/$ffcall_ver.tar.gz +gzip -dc $ffcall_ver.tar.gz | tar xf - +cd $ffcall_ver +./configure --prefix=$clisp_toolsdir --disable-shared --enable-static \ +&& make && make check && make install + +# would probably be ideal to also do a local libtermcap or ncurses, +# but doesn't seem to be a problem in practice? + +# foil wrong attempts at dynamic linking, etc. +(cd $clisp_basedir/clisp-tools/lib && rm -f *.dylib *.la) + +clisp_ver=clisp-2.49 +cd $clisp_basedir +$wget http://ftp.gnu.org/gnu/clisp/release/2.49/$clisp_ver.tar.gz +gzip -dc $clisp_ver.tar.gz | tar xf - +cd $clisp_ver # On Cygwin: # mv modules/syscalls/configure modules/syscalls/configure.orig # sed -e '{s%-luuid%-L/usr/lib/w32api -luuid%}' \ # modules/syscalls/configure.orig > modules/syscalls/configure -# # On FreeBSD/amd64: add --disable-mmap. # -./configure --with-libsigsegv-prefix=$clisp_toolsdir --without-readline \ - --disable-nls \ +./configure --without-readline --disable-nls \ + --with-libsigsegv-prefix=$clisp_toolsdir \ + --with-libiconv-prefix=$clisp_toolsdir \ + --with-libffcall-prefix=$clisp_toolsdir \ $clisp_builddir \ && cd $clisp_builddir \ && make -- cgit v1.2.3