Numerous Makefile fixes:

1) Do dependencies.
2) Install all appropriate links to manual pages.
3) Install header file in `beforeinstall' like all the rest.
4) Install header file only if changed.
5) Install object files only if changed.
This commit is contained in:
Garrett Wollman 1995-06-30 15:30:35 +00:00
parent bbba09f659
commit 4fa53f8ca6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=9378

View File

@ -1,34 +1,53 @@
# from: @(#)Makefile 5.6 (Berkeley) 5/22/91
# $Id: Makefile,v 1.14 1995/02/09 08:00:20 jkh Exp $
# $Id: Makefile,v 1.15 1995/03/30 06:40:31 phk Exp $
CFLAGS+= -DLIBC_SCCS -DDYNAMIC
OBJS= crt0.o gcrt0.o c++rt0.o
CLEANFILES+= a.out
MAN3+= dlopen.3
MLINKS+= dlopen.3 dlsym.3 \
dlopen.3 dlerror.3 \
dlopen.3 dlclose.3
all: ${OBJS}
crt0.o: crt0.c
${CC} ${CFLAGS} -c -DCRT0 ${.ALLSRC} -o ${.TARGET}
${CC} ${CFLAGS} -c -DCRT0 ${.CURDIR}/crt0.c -o ${.TARGET}
${LD} -x -r ${.TARGET}
mv a.out ${.TARGET}
c++rt0.o: c++rt0.c
${CC} ${CFLAGS} -fpic -c ${.ALLSRC}
${CC} ${CFLAGS} -fpic -c ${.CURDIR}/c++rt0.c
@${LD} -x -r ${.TARGET}
@mv a.out ${.TARGET}
gcrt0.o: crt0.c
${CC} ${CFLAGS} -c -DMCRT0 ${.ALLSRC} -o ${.TARGET}
#
# gcrt0.o doesn't really depend on crt0.o, but this is the easiest way
# to get the dependencies mostly correct.
#
gcrt0.o: crt0.o
${CC} ${CFLAGS} -c -DMCRT0 ${.CURDIR}/crt0.c -o ${.TARGET}
${LD} -x -r ${.TARGET}
mv a.out ${.TARGET}
install: maninstall
install ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 ${OBJS} \
${DESTDIR}/usr/lib
install ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/dlfcn.h \
${DESTDIR}/usr/include
beforeinstall:
cmp -s ${.CURDIR}/dlfcn.h ${DESTDIR}/usr/include/dlfcn.h || \
install ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 \
${.CURDIR}/dlfcn.h ${DESTDIR}/usr/include
depend lint tags:
realinstall:
.for i in ${OBJS}
cmp -s $i ${DESTDIR}/usr/lib/$i || \
install ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 $i ${DESTDIR}/usr/lib
.endfor
depend: .depend
.depend: crt0.c c++rt0.c
rm -f .depend
mkdep ${CFLAGS} -DCRT0 ${.CURDIR}/crt0.c
mkdep -a ${CFLAGS} ${.CURDIR}/c++rt0.c
lint tags:
.include <bsd.prog.mk>