[comp.text.tex] help! getting TeX 3.0 built on SunOS 4.1 with "cc"

mitran@mcnc.org (Andrei A. Mitran) (04/17/91)

Hello,

Recently we grabbed the TeX 3.0 tar distribution from labrea.stanford.edu.
However, neither SunOS 4.1 nor "cc" seem to be supported for this release;
the closest is SunOS 4.0.3, "gcc" on Sparc.  Our environment is
4.1, cc, Sparc.  I can't even get the "triptest" to build, and don't really
have any knowledge of TeX's innards.  Any pointers appreciated; post here,
I'm sure others will also be interested.

thanks!
(not with mcnc.org - guest account)

soulard@iznogoud.inria.fr (Herve Soulard) (04/18/91)

I have compiled the 3.1 version of TeX, but has it is only a simple patch of .web files I don't think it chnges anything to the compilation.

So I have compiled it for three architectures :
	- sun4 with sunos4.1
	- sun3 with sunos4.1
	- sony news risc with newos4.0


No major problem was encountered, so I post the site.h file I've used, if it can help.

--------------------------- site.h --------------------------------------------

/* Master configuration file for WEB to C.  Almost all the definitions
   are wrapped with #ifndef's, so that you can override them from the
   command line, if you want to.  */

#ifndef __WEB2C_SITE_H
#define __WEB2C_SITE_H

/* Define if you're running on 4.2 or 4.3 BSD-based system.  */
#ifndef BSD
#define	BSD
#endif

/* Define if you're running on System V-based system.  */
#ifndef SYSV
#undef	SYSV
#endif

/* Define if you're running on an HP-based system (also define SYSV).  */
#ifndef HP
#undef HP
#endif

/* Define if you're running on an AIX-based system.  */
#ifndef AIX
#undef AIX
#endif

/* Define if you're running on a POSIX-based system.  */
#ifndef _POSIX_SOURCE
#undef _POSIX_SOURCE
#endif

/* Define this if the system will be compiled with an ANSI C compiler,
   and never with a non-ANSI compiler.  It changes web2c so that it
   produces ANSI C as its output.  This is a perhaps good idea, but you
   don't necessarily gain anything in the production programs by doing
   it.  If you do define this, you must also have a declaration for
   sprintf(3) in <stdio.h>.  */ 
#ifndef ANSI
#undef	ANSI
#endif

/* Define these according to your local setup.  It doesn't hurt anything
   to have `.' in all the paths, but since most users do not have their
   own fonts, formats, or string pools, it only slows things down.
   Do not put a leading or trailing colon in these paths, or double a
   colon in the middle.  That might lead to infinite recursion.
   Also see TEXFONTS_SUBDIR et al., below.  */
#define	TEXFONTS   ""
#define	TEXFORMATS "/usr/local/lib/tex/formats"
#define	TEXINPUTS  "."
#define	TEXPOOL    "/usr/local/lib/tex"
#define	MFBASES    "/usr/local/lib/mf/bases"
#define	MFINPUTS   "."
#define	MFPOOL     "/usr/local/lib/mf"
#define VFFONTS    "/usr/local/lib/tex/fonts/vf"

/* Define this if you want subdirectories of directories in the search
   paths to be searched.  (See discussion in ./README.WEB2C of directory
   hierarchies.)  */
#ifndef SEARCH_SUBDIRECTORIES
#define SEARCH_SUBDIRECTORIES
#endif

/* If SEARCH_SUBDIRECTORIES is defined, these symbols define paths in
   which to look for subdirectories.  The directories in TEXFONTS and
   the like, above, are not searched for subdirectories.  The
   directories named here are not themselves searched for files.  Not
   all of the symbols here need be defined.  If you don't want to define
   a default directory, but want users to be able to define the
   environment variables, define the symbol to be the empty string.  */
#ifdef SEARCH_SUBDIRECTORIES
#define TEXFONTS_SUBDIR "/usr/local/lib/tex/fonts/tfm:/usr/local/lib/tex/fonts/pk"
#define TEXINPUTS_SUBDIR "/usr/local/lib/tex/inputs"
#define MFINPUTS_SUBDIR "/usr/local/lib/mf/inputs"
#endif

/* BibTeX search path for .bib files.  BibTeX uses TEXINPUTS to search
   for .bst files.  */ 
#define	BIBINPUTS	".:/usr/local/lib/tex/bib"

/* Metafont window support: More than one may be defined, as long as you
   don't try to have both X10 and X11 support (because there are
   conflicting routine names in the libraries).  After you've defined
   these, make sure to update the top-level Makefile accordingly.  Also,
   if you want X11 support, see the `Online output from Metafont'
   section in ./README before compiling.  */
#undef	HP2627WIN		/* HP 2627. */
#undef	SUNWIN			/* SunWindows. */
#undef	TEKTRONIXWIN		/* Tektronix 4014. */
#undef	UNITERMWIN		/* Uniterm Tektronix.  */
#undef	X10WIN			/* X Version 10. */
#define	X11WIN			/* X Version 11. */

#if defined(X10WIN) && defined(X11WIN)
sorry
#endif

/* Default editor command string: `%d' expands to the line number where
   TeX or Metafont found an error and `%s' expands to the name of the
   file.  The environment variables TEXEDIT and MFEDIT override this.  */
#define	EDITOR	"/usr/local/gnu/bin/emacs +%d %s"

/* Define this if you have getwd in your C library.  If you have getcwd,
   but not getwd, don't define it.  This symbol is only relevant if
   SEARCH_SUBDIRECTORIES is defined.  */
#ifndef HAVE_GETWD
#define HAVE_GETWD
#endif

/* Define this to be the return type of your signal handlers.  POSIX
   says it should be `void', but some older systems want `int'.  Check
   your <signal.h> include file if you're not sure.  */
#ifndef SIGNAL_HANDLER_RETURN_TYPE
#define SIGNAL_HANDLER_RETURN_TYPE void
#endif

/* Define this to be what your sprintf(3) routine returns---most likely
   `int' or `char *'.  Since the calls to sprintf are always cast to
   void, anyway, this is only necessary to avoid conflicts between
   declarations.  If you have ANSI or _POSIX_SOURCE defined, this symbol
   is irrelevant.  */
#ifndef SPRINTF_RETURN_TYPE
#define SPRINTF_RETURN_TYPE char *
#endif

/* The type `glueratio' should be a floating point type which won't
   unnecessarily increase the size of the memoryword structure.  This is
   the basic requirement.  On most machines, if you're building a
   normal-sized TeX, then glueratio must probably meet the following
   restriction: sizeof(glueratio) <= sizeof(integer).  Usually, then,
   glueratio must be `float'.  But if you build a big TeX, you can (on
   most machines) and should make it `double' to avoid loss of precision
   and conversions to and from double during calculations.  (All this
   also goes for Metafont.)  Furthermore, if you have enough memory, it
   won't hurt to have this defined to be `double' for running the
   trip/trap tests.  */
typedef double glueratio;

/* Define this if you want TeX to be compiled with local variables
   declared as `register'.  On SunOS 3.2 and 3.4 (at least), compiling
   with cc, this will cause problems.  If you're using gcc or the SunOS
   4.x compiler, and compiling with -O, register declarations are
   ignored, so there is no point in defining this.  */
#ifndef REGFIX
#undef	REGFIX
#endif

/* If the type `int' is at least 32 bits (including a sign bit), this
   symbol should be #undef'd; otherwise, it should be #define'd.  If
   your compiler uses 16-bit int's, arrays larger than 32K may give you
   problems, especially if indices are automatically cast to int's.  */
#ifndef SIXTEENBIT
#undef	SIXTEENBIT
#endif

/* Our character set is 8-bit ASCII unless NONASCII is defined.  For
   other character sets, make sure that first_text_char and
   last_text_char are defined correctly (they're 0 and 255,
   respectively, by default).  In the *.defines files, change the
   indicated range of type `char' to be the same as
   first_text_char..last_text_char, `#define NONASCII', and retangle and
   recompile everything.  */
#ifndef NONASCII
#undef	NONASCII
#endif

/* The type `schar' should be defined here to be the smallest signed
   type available.  ANSI C compilers may need to use `signed char'.  If
   your char type is unsigned, then define schar to be the type
   `short'.  */
#ifdef AIX
typedef int schar;
#else
typedef	char schar;
#endif

/* The type `integer' must be a signed integer capable of holding at
   least the range of numbers (-2^31)..(2^32-1).  The ANSI C standard
   says that `long' meets this requirement, but if you don't have an
   ANSI C compiler, you might have to change this definition.  */
typedef long integer;

/* You need not worry about the definitions in `defaults.h' unless
   something goes wrong.  */
#include "defaults.h"

#endif /* not __WEB2C_SITE_H */

----------------------------------------------------------------------------


		Herve Soulard.