Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!jarthur!uunet!panews.awdpa.ibm.com!rchland.ibm.com!orgass+ From: orgass+@rchland.ibm.com (Dick Orgass) Newsgroups: comp.lang.modula3 Subject: Re: install trouble: 1.6 on IBMR2 Message-ID: Date: 9 Apr 91 14:40:58 GMT References: Organization: IBM Rochester, Mn Lines: 38 In-Reply-To: In the referenced message, John McCalpin describes a problem with make/imake on RISC 6000 systems (called IBMR2 in the Modula-3 distribution). John's problem is related to the interaction between cpp and imake. The following is an explanation and a solution to the problem that John appears to be describing. The design and implementation of imake assumes a BSD style C preprocessor and the distributed source (.ROOT/util/imake.c) has code for getting along with System V style C preprocessors. The difference between the two styles that is of interest here is the treatment of tabs. BSD style preprocessors leave tabs in place while System V style preprocessors compress them to spaces. The C preprocessor, /lib/cpp, provided with the AIX 3.1 C compiler is a strict ANSI C preprocessor which cannot be used with imake because of output format incompatibilities. The MIT X distribution includes a version of cpp that is System V like and which can be used with imake. For AIX 3.1, this is in directory /usr/lpp/X11/Xamples/util/cpp. This version of cpp can be used with imake (both the MIT version and the source distributed with SRC Modula-3 -- .ROOT/util/imake.c) provided that one change is made to the source file .ROOT/util/imake.c: Modify line 129 so that it reads as follows: #if defined(sun) || defined(SYSV) || defined(hpux) || (defined(_IBMR2) && defined(_AIX)) [The above is a single line but it may be wrapped in transit through various mailers.] If imake is built from the resulting source file and if the version of cpp from the MIT X distribution is used, imake will work correctly for IBMR2. Dick