[comp.sys.sgi] The SGI Ultimate MAKEFILE

corkum@csri.toronto.edu (Brent Thomas Corkum) (06/07/90)

Regarding the ultimate makefile that was posted a while back by the
SGI people, be very careful not to break,abort the making process while
the dependency checks are taking place (by mkdepend). If you send a break
while mkdepend is running you lose your makefile. I'm not to sure why
as I have not investigated it further, maybe the SGI people can shed some
light on this as it's there makefile. So make sure you have a backup if
you use there construct.

I include a copy of my makefile below.



# The SGI Ultimate makefile



include $(ROOT)/usr/include/make/commondefs

TARGETS = examine3D

EXAMINE3DFILES  = examine3D.c model.c displpop.c filepop.c analypop.c \
                  pickpop.c xformpop.c objecpop.c setuppop.c plinepop.c \
                  builpop.c writeex3.c strespop.c moparwin.c makemopa.c \
                  examinit.c togglest.c gridbox.c shadepop.c

FEINT3DFILES  = buildmen.c userinte.c activate.c checkmen.c \
                setmenu.c lightbut.c buildpop.c size.c prompt.c \
                altervie.c buildsce.c pan.c checkseg.c \
                insertpo.c dist.c getwindo.c barbutto.c readgeo.c \
                getstrin.c pick.c feintini.c delete.c \
                pivot.c getfloat.c move.c tumble.c autoscal.c \
                zoom.c getbutto.c transfpo.c animate.c shade.c rotate.c undo.c \
                scale.c pickvert.c toggles.c getpoint.c getlocat.c \
                shadewin.c nice.c gridspac.c visible.c setpivot.c \
                makeshad.c sphere.c copy.c getworld.c pline.c  \
                snaploca.c elevatio.c extrude.c getint.c openobje.c \
                genextru.c areyousu.c getpoin2.c getbox.c getcurrw.c

CFILES  = $(EXAMINE3DFILES) $(FEINT3DFILES)

LCOPTS = -DDEBUG                # "local C options"
LLDLIBS = -lhoops -lgl_s -lm    # local libraries (do you want -lgl_s instead?)
OPTIMIZER = -g                  # -g2 is default for -g, I believe

default: incdepend $(TARGETS)
        $(CTAGS) -a $(CFILES)

include $(COMMONRULES)          # clean and other rules supplied by COMMONRULES

$(TARGETS): $(OBJECTS)
        $(CCF) $(OBJECTS) $(LDFLAGS) -o $@

andru@sgi.com (Andrew Myers) (06/07/90)

In article <1990Jun6.130601.17186@jarvis.csri.toronto.edu> corkum@csri.toronto.edu (Brent Thomas Corkum) writes:
>Regarding the ultimate makefile that was posted a while back by the
>SGI people, be very careful not to break,abort the making process while
>the dependency checks are taking place (by mkdepend). If you send a break
>while mkdepend is running you lose your makefile. I'm not to sure why

    As it turns out, you need the 3.3 versions of mkdepend, commondefs,
and commonrules for the Makefile I posted to work perfectly. Sorry about
the confusion -- by the time customers get a release, we're often already
using the development tools of the next release.

    Once you get 3.3, automatic dependencies should work correctly and
safely in the Makefile I posted. Until then, I believe that the following
fix should work for 3.2: (I've simplified the posted makefile for clarity)

---------------------------------------------------------------------------
include $(ROOT)/usr/include/make/commondefs

MKDEPFILE = Makedepend	     	### Change from 3.3 version ###

TARGETS = examine3D

CFILES  = examine3D.c model.c displpop.c filepop.c analypop.c \
          pickpop.c xformpop.c objecpop.c setuppop.c plinepop.c \
          builpop.c writeex3.c strespop.c moparwin.c makemopa.c \
          examinit.c togglest.c gridbox.c shadepop.c

LCOPTS = -DDEBUG                # "local C options"
LLDLIBS = -lgl_s -lm   		# local libraries
OPTIMIZER = -g                  # -g2 is default for -g, I believe

default: incdepend $(TARGETS)

include $(COMMONRULES)          # clean and other rules supplied by COMMONRULES
include $(MKDEPFILE)		### Change from 3.3 version ###

$(TARGETS): $(OBJECTS)
        $(CCF) $(OBJECTS) $(LDFLAGS) -o $@
---------------------------------------------------------------------------

To get the makefile working, you'll need to do a "touch Makedepend". This
isn't necessary in the 3.3 version.

Andrew