[gnu.utils.bug] A bug in GNU make 3.55

jkp@SAUNA.HUT.FI (Jyrki Kuoppala) (09/09/89)

Environment: Sony NWS-1830, BSD 4.3, Gcc 1.35.98, make 3.55

With the attached Makefile, GNU make 3.55 fails to recompile ntpd.c
when it's touched.  It also fails to recognize that ntp.h doesn't
exist.  /bin/make remakes things right and so does GNU make 3.54.

make -n ntpd

jkp@joker.hut.fi 'makebug' 313: L
total 4
drwxr-xr-x  2 jkp      staff         512 Sep  8 20:59 ./
drwxr-xr-x  4 jkp      staff         512 Sep  8 20:58 ../
-rw-r--r--  1 jkp      staff        2734 Sep  8 20:44 Makefile
-rw-r--r--  1 jkp      staff           0 Sep  8 21:02 ntpd.c
-rw-r--r--  1 jkp      staff           0 Sep  8 21:00 ntpd.o
jkp@joker.hut.fi 'makebug' 314: make -n ntpd
gcc -g -pipe -W  -o ntpd ntpd.o ntpsubs.o ntp_adjust.o ntp_proto.o \
        ntp_sock.o
jkp@joker.hut.fi 'makebug' 315: 

//Jyrki

DESTDIR=/p/etc
INCPATH=
LDFLAGS=
LIBS=
#CC=gcc -g -W -Wall
CC=gcc -g -pipe -W

#
# FEATURES include:
#	DEBUG	  - include DEBUG code
#	BROADCAST - experimental support for broadcast NTP
#	XADJTIME2 - experimental support for second-order clock adjustment
#		    system call.
#	SETTICKADJ - attempt to modify kernel's `tickadj' variable at run time.
#	REFCLOCK  - define if you have a reference clock attached to your
#		    machine.  (untest by UMD)
#
# FEATURES=
FEATURES= -DBROADCAST_NTP -DSETTICKADJ -DDEBUG

# for 4.3 BSD
DEFINES=

# for Sun
#DEFINES= -Dsun

# for Ultrix 2.0/2.2/3.0
# don't forget to fix the broken definition of inet_addr in netdb.h
# it should be declared as a u_long not a in_addr  (the doc is wrong also)
# (Note 3.0 has it fixed).  VAX_COMPILER_FLT_BUG is defined for pcc which
# doesn't know how to convert an unsigned long into a float/double
#DEFINES= -DVAX_COMPILER_FLT_BUG

CFLAGS= -O ${DEFINES} ${FEATURES}

# Header files
#
HDRS=	ntp.h

# Source files
#
SRCS=	ntp.c ntpd.c ntpdc.c ntpsubs.c ntp_proto.c ntp_sock.c ntp_adjust.c
NTPDSRC= ntpd.c ntpsubs.c ntp_proto.c ntp_sock.c ntp_adjust.c readclock.c

# Object files
#
OBJS=	ntp.o ntpd.o ntpdc.o ntpsubs.o ntp_proto.o ntp_sock.o ntp_adjust.o
NTPDOBJ= ntpd.o
#
# if using REFCLOCK
#
#NTPDOBJ= ntpd.o ntpsubs.o ntp_proto.o ntp_sock.o ntp_adjust.o readclock.o

DIST= README Makefile man ${SRCS} ${HDRS} ntp.conf test.c extract.pl
PROGS=	ntp ntpd ntpdc

all:	${PROGS}

ntp:	ntp.o ntpsubs.o
	${CC} ${LDFLAGS} -o ntp ntp.o ntpsubs.o

ntpd:	${NTPDOBJ}
	${CC} ${LDFLAGS} -o ntpd ntpd.o ntpsubs.o ntp_adjust.o ntp_proto.o \
		ntp_sock.o

ntpdc: ntpdc.o
	${CC} ${LDFLAGS} -o ntpdc ntpdc.o

ntest: test.c ntpsubs.o
	${CC} ${LDFLAGS} -o ntest test.c ntpsubs.o

sock_test: ntp_sock.c
	${CC} ${LDFLAGS} -DTEST -o sock_test ntp_sock.c

${OBJS}: ntp.h
	${CC} ${CFLAGS} ${INCPATH} -c $*.c

ci:
	ci -u Makefile README ${SRCS} ${HDRS} ntp.conf test.c extract.pl

install: ntpd ntp ntpdc
	install  ntpd ${DESTDIR}
	install  ntp ${DESTDIR}
	install  ntpdc ${DESTDIR}
	cd man; make ${MFLAGS} DESTDIR=${DESTDIR} install

print:
	pr -f -l60 Makefile ${HDRS} ${SRCS} | qpr -q prl

clean:
	@rm -f *.o *~ core ${PROGS} ntp.tar ntest sock_test
	cd man; make ${MFLAGS} DESTDIR=${DESTDIR} clean

lint:
	lint -bac ${DEFINES} ${NTPDSRC}

dist:
	tar cf ntp.tar ${DIST}
	compress ntp.tar
	mv ntp.tar.Z /usr/ftp/pub

beta-dist:
	tar cf ntp.tar ${DIST}
	compress ntp.tar
	mv ntp.tar.Z /usr/ftp/pub/ntp.tar.Z.beta

test-dist:
	tar cf ntp.tar ${DIST}
	compress ntp.tar
	mv ntp.tar.Z /usr/ftp/pub/ntp-test.tar.Z

depend:
	mkdep $(CFLAGS) $(SRCS)

# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY