[comp.soft-sys.andrew] How does "sunV3" get set when "imake"ing Makefiles?

guy@auspex.auspex.com (Guy Harris) (11/15/90)

In the "config/imake.tmpl" file, it figures out whether to use the SunOS
3.5 "system.mcr" or the SunOS 4.0 "system.mcr" by doing:

	#if defined(mc68020) || defined(sun3) /* sun3 */
	#ifndef sunV3
	#define sunV3 0
	#endif /* sunV3 */
	#if sunV3
	#include <sun3_35/system.mcr>
	#define MacroIncludeFile sun3_35/system.mcr
	#else /* sunV3 */
	#include <sun3_4/system.mcr>
	#define MacroIncludeFile sun3_4/system.mcr
	#endif /* sunV3 */
	#endif /* sun3 */

I didn't see anything in the README file that specifies any mechanism
for setting "sunV3", nor did I see any definitions of it, other than the
one listed above, in any of the files in the "config" directory.  Is it
set automatically somehow (although I couldn't see anything in the X11R4
"imake" that did it, nor in any of the MIT configuration files), or is
there something you're supposed to do to build Andrew under SunOS 3.5?

(I'm not asking because I want to build it under 3.5; we don't have any
machines running anything before 4.0.  I'm adding new stuff for building
it under SunOS 4.1, so that it can use the SunOS 4.1 dynamic loader to
load up ".do" files and also perhaps so that it can do the right thing
to deal with 4.1's POSIX-compliant tty driver, and may have to resort to
doing the same thing for 4.1 that's done for 3.5.)

ghoti+@ANDREW.CMU.EDU (Adam Stoller) (11/15/90)

Unfortunately this is indeed a weak-spot - sunV3  is a defined symbol if
you are using the compiler and preprocessor that comes with a sun3/50 --
however if you go to use another compiler, like gcc, this symbol will
not be defined.

I have no idea what later versions of Sun's compiler (and/or
preprocessors) do or don't define.

--fish

guy@auspex.auspex.com (Guy Harris) (11/18/90)

>sunV3  is a defined symbol if you are using the compiler and
>preprocessor that comes with a sun3/50 --

When I was doing stuff with "cpp", I didn't see any such predefined
symbol, and just to make sure, I checked with somebody still at Sun - he
didn't find it either.

Are you sure your 3/50s are running the preprocessor that comes with
SunOS 3.x?

>I have no idea what later versions of Sun's compiler (and/or
>preprocessors) do or don't define.

They don't define anything release-specific.