SunOS make question

Mike McNally m5 at lynx.UUCP
Tue Nov 15 03:40:27 AEST 1988


In some makefiles we have here we use a slightly demented but
reasonably effective method for keeping multiple executable versions of
the same program in one directory.  Each version is compiled for a
different target platform.  Object files for the UNIX host version are
called blah.u.o, those for another version are called blah.s.o, and
those for a third type are called blah.t.o.  Therefore I have .SUFFIXES
lines that look like this:

.SUFFIXES: .u.o .t.o .s.o

and implied translation things that look like this:

.c.u.o:
    $(uCC) -c $*.c
    mv $*.o $*.u.o

.c.t.o:
    $(tCC) -c $*.c
    mv $*.o $*.t.o

.c.s.o:
    $(sCC) -c $*.c
    mv $*.o $*.s.o

This setup works fine on my Integrated Solutions 4.2BSD machine, and on
our own OS using our own "make".  Over the weekend, I tried to move
some code to a Sun 3/110 we have here and I noticed that the Sun "make"
just didn't work.  In ultra debug mode, it just indicated that it
couldn't find anything like "l,.u.o" in its rules, so it quit.

I presume that the version of the OS on the Sun is relatively recent;
the "make" executable seems to be dated 88/02/07 if some strings sucked
out of it are correct.

Note that comments regarding my admittedly brain-damaged "make"
technique will be appreciated, but are not responsive; I'm curious
about any rules I might be breaking.  If someone could try this on a
System V machine I'd be interested.

-- 
Mike McNally                                    Lynx Real-Time Systems
uucp: {voder,athsys}!lynx!m5                    phone: 408 370 2233

            Where equal mind and contest equal, go.



More information about the Comp.unix.wizards mailing list