diff options
Diffstat (limited to 'pmake.hack/bsd.prog.mk')
-rw-r--r-- | pmake.hack/bsd.prog.mk | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/pmake.hack/bsd.prog.mk b/pmake.hack/bsd.prog.mk new file mode 100644 index 0000000..d0c86ba --- /dev/null +++ b/pmake.hack/bsd.prog.mk @@ -0,0 +1,202 @@ +# $NetBSD: bsd.prog.mk,v 1.100 1999/02/12 01:10:08 lukem Exp $ +# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.include <bsd.obj.mk> +.MAIN: all +.endif + +.PHONY: cleanprog proginstall scriptsinstall +realinstall: proginstall scriptsinstall +clean cleandir distclean: cleanprog + +CFLAGS+= ${COPTS} + +# ELF platforms depend on crtbegin.o and crtend.o +.if ${OBJECT_FMT} == "ELF" +LIBCRTBEGIN?= ${DESTDIR}/usr/lib64/crtbegin.o +LIBCRTEND?= ${DESTDIR}/usr/lib64/crtend.o +.else +LIBCRTBEGIN?= +LIBCRTEND?= +.endif + +LIBCRT0?= + +LIBBZ2?= ${DESTDIR}/usr/lib64/libbz2.a +LIBC?= ${DESTDIR}/usr/lib64/libc.a +LIBC_PIC?= ${DESTDIR}/usr/lib64/libc_pic.a +LIBCOMPAT?= ${DESTDIR}/usr/lib64/libcompat.a +LIBCRYPT?= ${DESTDIR}/usr/lib64/libcrypt.a +LIBCURSES?= ${DESTDIR}/usr/lib64/libcurses.a +LIBDBM?= ${DESTDIR}/usr/lib64/libdbm.a +LIBDES?= ${DESTDIR}/usr/lib64/libdes.a +LIBEDIT?= ${DESTDIR}/usr/lib64/libedit.a +LIBGCC?= ${DESTDIR}/usr/lib64/libgcc.a +LIBGNUMALLOC?= ${DESTDIR}/usr/lib64/libgnumalloc.a +LIBKDB?= ${DESTDIR}/usr/lib64/libkdb.a +LIBKRB?= ${DESTDIR}/usr/lib64/libkrb.a +LIBKVM?= ${DESTDIR}/usr/lib64/libkvm.a +LIBL?= ${DESTDIR}/usr/lib64/libl.a +LIBM?= ${DESTDIR}/usr/lib64/libm.a +LIBMP?= ${DESTDIR}/usr/lib64/libmp.a +LIBNTP?= ${DESTDIR}/usr/lib64/libntp.a +LIBOBJC?= ${DESTDIR}/usr/lib64/libobjc.a +LIBPC?= ${DESTDIR}/usr/lib64/libpc.a +LIBPCAP?= ${DESTDIR}/usr/lib64/libpcap.a +LIBPLOT?= ${DESTDIR}/usr/lib64/libplot.a +LIBPOSIX?= ${DESTDIR}/usr/lib64/libposix.a +LIBRESOLV?= ${DESTDIR}/usr/lib64/libresolv.a +LIBRPCSVC?= ${DESTDIR}/usr/lib64/librpcsvc.a +LIBSKEY?= ${DESTDIR}/usr/lib64/libskey.a +LIBTERMCAP?= ${DESTDIR}/usr/lib64/libtermcap.a +LIBTELNET?= ${DESTDIR}/usr/lib64/libtelnet.a +LIBUTIL?= ${DESTDIR}/usr/lib64/libutil.a +LIBWRAP?= ${DESTDIR}/usr/lib64/libwrap.a +LIBY?= ${DESTDIR}/usr/lib64/liby.a +LIBZ?= ${DESTDIR}/usr/lib64/libz.a + +.if defined(SHAREDSTRINGS) +CLEANFILES+=strings +.c.o: + ${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c - + @${CC} ${CFLAGS} -c x.c -o ${.TARGET} + @rm -f x.c + +.cc.o: + ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - + @mv -f x.c x.cc + @${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET} + @rm -f x.cc + +.C.o: + ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - + @mv -f x.c x.C + @${CXX} ${CXXFLAGS} -c x.C -o ${.TARGET} + @rm -f x.C +.endif + + +.if defined(PROG) +SRCS?= ${PROG}.c + +DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} +CLEANFILES+= ${DPSRCS} +.if defined(YHEADER) +CLEANFILES+= ${SRCS:M*.y:.y=.h} +.endif + +.if !empty(SRCS:N*.h:N*.sh) +OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g} +LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} +.endif + +.if defined(OBJS) && !empty(OBJS) +.NOPATH: ${OBJS} +.if defined(DESTDIR) + +${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} + ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib -L${DESTDIR}/usr/lib ${LIBCRT0} ${LIBCRTBEGIN} ${OBJS} ${LDADD} -lgcc -lc -lgcc ${LIBCRTEND} + +.else + +${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} + ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD} + +.endif # defined(DESTDIR) +.endif # defined(OBJS) && !empty(OBJS) + +.if !defined(MAN) +MAN= ${PROG}.1 +.endif # !defined(MAN) +.endif # defined(PROG) + +all: ${PROG} + +cleanprog: + rm -f a.out [Ee]rrs mklog core *.core \ + ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES} + +.if defined(SRCS) +afterdepend: .depend + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.ln:/' \ + < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if defined(PROG) && !target(proginstall) +PROGNAME?= ${PROG} +proginstall:: ${DESTDIR}${BINDIR}/${PROGNAME} +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${BINDIR}/${PROGNAME} +.endif +.if !defined(BUILD) +${DESTDIR}${BINDIR}/${PROGNAME}: .MADE +.endif + +.PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME} +${DESTDIR}${BINDIR}/${PROGNAME}: ${PROG} + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${STRIPFLAG} -o ${BINOWN} \ + -g ${BINGRP} -m ${BINMODE} ${.ALLSRC} ${.TARGET} +.endif + +.if !target(proginstall) +proginstall:: +.endif + +.if defined(SCRIPTS) && !target(scriptsinstall) +SCRIPTSDIR?=${BINDIR} +SCRIPTSOWN?=${BINOWN} +SCRIPTSGRP?=${BINGRP} +SCRIPTSMODE?=${BINMODE} +.for S in ${SCRIPTS} +SCRIPTSDIR_${S}?=${SCRIPTSDIR} +SCRIPTSOWN_${S}?=${SCRIPTSOWN} +SCRIPTSGRP_${S}?=${SCRIPTSGRP} +SCRIPTSMODE_${S}?=${SCRIPTSMODE} +.if defined(SCRIPTSNAME) +SCRIPTSNAME_${S} ?= ${SCRIPTSNAME} +.else +SCRIPTSNAME_${S} ?= ${S:T:R} +.endif +SCRIPTSDIR_${S} ?= ${SCRIPTSDIR} +scriptsinstall:: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} +.endif +.if !defined(BUILD) +${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: .MADE +.endif + +.PRECIOUS: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} +${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: ${S} + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${SCRIPTSOWN_${S}} -g \ + ${SCRIPTSGRP_${S}} -m ${SCRIPTSMODE_${S}} ${.ALLSRC} ${.TARGET} +.endfor +.endif + +.if !target(scriptsinstall) +scriptsinstall:: +.endif + +lint: ${LOBJS} +.if defined(LOBJS) && !empty(LOBJS) + ${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD} +.endif + +.include <bsd.man.mk> +.include <bsd.nls.mk> +.include <bsd.files.mk> +.include <bsd.inc.mk> +.include <bsd.links.mk> +.include <bsd.dep.mk> +.include <bsd.sys.mk> + +# Make sure all of the standard targets are defined, even if they do nothing. +regress: |