Changeset View
Changeset View
Standalone View
Standalone View
head/share/mk/bsd.prog.mk
# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 | # from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
.include <bsd.init.mk> | .include <bsd.init.mk> | ||||
.include <bsd.compiler.mk> | .include <bsd.compiler.mk> | ||||
.SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .y .l .ln .s .S .asm | .SUFFIXES: .out .o .bc .c .cc .cpp .cxx .C .m .y .l .ll .ln .s .S .asm | ||||
# XXX The use of COPTS in modern makefiles is discouraged. | # XXX The use of COPTS in modern makefiles is discouraged. | ||||
.if defined(COPTS) | .if defined(COPTS) | ||||
.warning ${.CURDIR}: COPTS should be CFLAGS. | .warning ${.CURDIR}: COPTS should be CFLAGS. | ||||
CFLAGS+=${COPTS} | CFLAGS+=${COPTS} | ||||
.endif | .endif | ||||
.if ${MK_ASSERT_DEBUG} == "no" | .if ${MK_ASSERT_DEBUG} == "no" | ||||
▲ Show 20 Lines • Show All 126 Lines • ▼ Show 20 Lines | |||||
${PROG}: ${PROG_FULL} ${PROGNAME}.debug | ${PROG}: ${PROG_FULL} ${PROGNAME}.debug | ||||
${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROGNAME}.debug \ | ${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROGNAME}.debug \ | ||||
${PROG_FULL} ${.TARGET} | ${PROG_FULL} ${.TARGET} | ||||
${PROGNAME}.debug: ${PROG_FULL} | ${PROGNAME}.debug: ${PROG_FULL} | ||||
${OBJCOPY} --only-keep-debug ${PROG_FULL} ${.TARGET} | ${OBJCOPY} --only-keep-debug ${PROG_FULL} ${.TARGET} | ||||
.endif | .endif | ||||
.if defined(LLVM_LINK) | |||||
# LLVM bitcode / textual IR representations of the program | |||||
BCOBJS= ${OBJS:.o=.bco} | |||||
LLOBJS= ${OBJS:.o=.llo} | |||||
${PROG_FULL}.bc: ${BCOBJS} | |||||
${LLVM_LINK} -o ${.TARGET} ${BCOBJS} | |||||
${PROG_FULL}.ll: ${LLOBJS} | |||||
${LLVM_LINK} -S -o ${.TARGET} ${LLOBJS} | |||||
.endif # defined(LLVM_LINK) | |||||
.if ${MK_MAN} != "no" && !defined(MAN) && \ | .if ${MK_MAN} != "no" && !defined(MAN) && \ | ||||
!defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ | !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ | ||||
!defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ | !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ | ||||
!defined(MAN7) && !defined(MAN8) && !defined(MAN9) | !defined(MAN7) && !defined(MAN8) && !defined(MAN9) | ||||
MAN= ${PROG}.1 | MAN= ${PROG}.1 | ||||
MAN1= ${MAN} | MAN1= ${MAN} | ||||
.endif | .endif | ||||
.endif # defined(PROG) | .endif # defined(PROG) | ||||
.if defined(_SKIP_BUILD) | .if defined(_SKIP_BUILD) | ||||
all: | all: | ||||
.else | .else | ||||
all: ${PROG} ${SCRIPTS} | all: ${PROG} ${SCRIPTS} | ||||
.if ${MK_MAN} != "no" | .if ${MK_MAN} != "no" | ||||
all: all-man | all: all-man | ||||
.endif | .endif | ||||
.endif | .endif | ||||
.if defined(PROG) | .if defined(PROG) | ||||
CLEANFILES+= ${PROG} | CLEANFILES+= ${PROG} ${PROG}.bc ${PROG}.ll | ||||
.if ${MK_DEBUG_FILES} != "no" | .if ${MK_DEBUG_FILES} != "no" | ||||
CLEANFILES+= ${PROG_FULL} ${PROGNAME}.debug | CLEANFILES+= ${PROG_FULL} ${PROG_FULL}.bc ${PROGNAME}.debug ${PROG_FULL}.ll | ||||
.endif | .endif | ||||
.endif | .endif | ||||
.if defined(OBJS) | .if defined(OBJS) | ||||
CLEANFILES+= ${OBJS} | CLEANFILES+= ${OBJS} ${BCOBJS} ${LLOBJS} | ||||
.endif | .endif | ||||
.include <bsd.libnames.mk> | .include <bsd.libnames.mk> | ||||
.if defined(PROG) | .if defined(PROG) | ||||
.if !defined(NO_EXTRADEPEND) | .if !defined(NO_EXTRADEPEND) | ||||
_EXTRADEPEND: | _EXTRADEPEND: | ||||
.if defined(LDFLAGS) && !empty(LDFLAGS:M-nostdlib) | .if defined(LDFLAGS) && !empty(LDFLAGS:M-nostdlib) | ||||
▲ Show 20 Lines • Show All 114 Lines • Show Last 20 Lines |