[comp.sys.sun] make question

will@genbank.bio.net (Will Nelson) (10/08/90)

I have a Makefile for a library of source that I must maintain for two
different architectures, sun3 and sun4.  The Makefile does pretty much
what I want it to do, but it insists on re-running "ar" on subsequent
invocations, ie, I have made no source changes between builds. Anybody
have any idea what changes I need to make to keep make from re-running
"ar" unnecessarily?

ARCH          = `arch`
VARIANT       =

ROOT          = ../..
BIN           = ${ROOT}/${ARCH}bin
LIB           = ${ROOT}/${ARCH}lib
INSTALLBIN    = /usr/local/bin

SYBINC        = /usr/local/sybase/include
SYBLIB        = /usr/local/sybase/lib

IFLAGS        = -I../../include -I${SYBINC}
DFLAGS        =
CFLAGS        = -Bstatic -g ${IFLAGS} ${DFLAGS}
LDFLAGS       = -Bstatic -g
ARFLAGS       = cr

CC            = cc
CPP           = /lib/cpp
MAKE          = make
INCLUDES      = ${BIN}/includes
LD            = cc
AR            = ar

MAKEFILE      = Makefile

HDRDIR = ${INCDIR}/local

PRIVATES = libgb.a

TAGFILE = ${LIBDIR}/tags

PUBS =  ${LIB}/libgb.a \
        ${TAGFILE}

#
# sources and objects -- add a line to each section when adding a module
#

SRCS =    argnxt.c \
          authrf.c \
          basrf.c \
          blnk.c \
          cbufa.c \
          cktail.c \
          csho.c \
          ctolow.c \
          ctoup.c \
          divck.c \
          drive.c \
          errj.c \
          feacpy.c \
          feaform.c \
          feapars.c \
          fearf.c \
          filext.c \
          flstxt.c \
          fndaa_at.c \
          fset.c \
          gbky.c \
          getline.c \
          getlock.c \
          getnumb.c \
          gettlin.c \
          indxl.c \
          indxlci.c \
          indxr.c \
          issyma.c \
          issymn.c \
          joinsym.c \
          jourrf.c \
          keyrf.c \
          last.c \
          locex.c \
          locrf.c \
          lstlk.c \
          mpmfnam.c \
          mtchu.c \
          nxtsym.c \
          orgfind.c \
          pack0.c \
          pack1.c \
          packt.c \
          pad.c \
          parsym.c \
          seq.c \
          seqrf.c \
          seqw.c \
          sign.c \
          skyck.c \
          sqcpy.c \
          sqmtch.c \
          strcap.c \
          strcic.c \
          strfil.c \
          strncic.c \
          strsho.c \
          strsub.c \
          translate.c \
          updrf.c

OBJS =    argnxt.o \
          authrf.o \
          basrf.o \
          blnk.o \
          cbufa.o \
          cktail.o \
          csho.o \
          ctolow.o \
          ctoup.o \
          divck.o \
          drive.o \
          errj.o \
          feacpy.o \
          feaform.o \
          feapars.o \
          fearf.o \
          filext.o \
          flstxt.o \
          fndaa_at.o \
          fset.o \
          gbky.o \
          getline.o \
          getlock.o \
          getnumb.o \
          gettlin.o \
          indxl.o \
          indxlci.o \
          indxr.o \
          issyma.o \
          issymn.o \
          joinsym.o \
          jourrf.o \
          keyrf.o \
          last.o \
          locex.o \
          locrf.o \
          lstlk.o \
          mpmfnam.o \
          mtchu.o \
          nxtsym.o \
          orgfind.o \
          pack0.o \
          pack1.o \
          packt.o \
          pad.o \
          parsym.o \
          seq.o \
          seqrf.o \
          seqw.o \
          sign.o \
          skyck.o \
          sqcpy.o \
          sqmtch.o \
          strcap.o \
          strcic.o \
          strfil.o \
          strncic.o \
          strsho.o \
          strsub.o \
          translate.o \
          updrf.o

#
#  added suffix rules for RCS
#  (DO NOT CHANGE THIS SECTION)
#

.SUFFIXES: .c,v

.c,v.c:
	co $*.c

#
#  the library itself
#  (DO NOT CHANGE THIS SECTION)
#

all:	${ARCH} ${LIB}/libgb.a

${ARCH}:	FORCE
	@test -d ${BIN} || mkdir ${BIN}
	@test -d ${LIB} || mkdir ${LIB}
	@test -d $@ || mkdir $@

${LIB}/libgb.a: ${OBJS}
	cd ${ARCH}; ${AR} ${ARFLAGS} libgb.a ${OBJS}
	cd ${ARCH}; if test -f /usr/bin/ranlib ; then ranlib libgb.a ; fi
	mv ${ARCH}/libgb.a ${LIB}

$${VARIANT}%.o:	%.c
	${COMPILE.c} $< -o $@
	cp $*.o ${ARCH}

${TAGFILE}: Makefile
	cd ${LIBDIR}; ${MAKE} tags

FORCE:

-- 
Will Nelson			Internet: will@presto.ig.com
Intelligenetics, Inc.		Uucp:     ames!ig.com!presto!will
700 East El Camino Real		(415) 962-7363
Mountain View, CA  94040