summaryrefslogtreecommitdiff
path: root/mk/mkc_imp.prog.mk
blob: b634564b2c33d48d56590c2a89eca6ded975e9f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Copyright (c) 2009-2010 by Aleksey Cheusov
# Copyright (c) 1994-2009 The NetBSD Foundation, Inc.
# Copyright (c) 1988, 1989, 1993 The Regents of the University of California
# Copyright (c) 1988, 1989 by Adam de Boor
# Copyright (c) 1989 by Berkeley Softworks
#
# See LICENSE file in the distribution.
############################################################

.if !defined(_MKC_IMP_PROG_MK)
_MKC_IMP_PROG_MK := 1

proginstall:	.PHONY # ensure existence

CFLAGS +=	${COPTS}

__proginstall: .USE
	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${STRIPFLAG} \
	    -o ${BINOWN:Q} -g ${BINGRP:Q} -m ${BINMODE} ${.ALLSRC} ${.TARGET}

.for p in ${PROGS}
do_install1:	proginstall

_SRCS_ALL += ${SRCS.${p}}

DPSRCS.${p} =	${SRCS.${p}:M*.l:.l=.c} ${SRCS.${p}:M*.y:.y=.c}
CLEANFILES +=	${DPSRCS.${p}}
.if defined(YHEADER)
CLEANFILES +=	${SRCS.${p}:M*.y:.y=.h}
.endif # defined(YHEADER)

OBJS.${p} =	${SRCS.${p}:N*.h:N*.sh:N*.fth:T:R:S/$/.o/g}

.if !empty(SRCS.${p}:N*.h:N*.sh:M*/*:H)
SRC_PATHADD +=	${SRCS:N*.h:N*.sh:M*/*:H}
.endif

.if defined(OBJS.${p}) && !empty(OBJS.${p})
.NOPATH: ${OBJS.${p}}

${p}: ${LIBCRT0} ${DPSRCS.${p}} ${OBJS.${p}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
.if !commands(${p})
	${MESSAGE.ld}
	${_V}${LDREAL} -o ${.TARGET} ${OBJS.${p}} \
	    ${LDFLAGS0} ${LDADD0} \
	    ${LDFLAGS} ${LDFLAGS.prog} ${LDADD}
.endif # !commands(...)

.endif	# defined(OBJS.${p}) && !empty(OBJS.${p})

.if !defined(MAN) && exists(${p}.1)
MAN +=		${p}.1
.endif # !defined(MAN)

PROGNAME.${p} ?=	${PROGNAME:U${p}}

.if ${MKINSTALL:tl} == "yes"
dest_prog.${p}   =	${DESTDIR}${BINDIR}/${PROGNAME.${p}}
UNINSTALLFILES  +=	${dest_prog.${p}}
INSTALLDIRS     +=	${dest_prog.${p}:H}

proginstall: ${dest_prog.${p}}
.PRECIOUS:    ${dest_prog.${p}}
.PHONY:       ${dest_prog.${p}}
.endif # ${MKINSTALL:tl} == "yes"

${DESTDIR}${BINDIR}/${PROGNAME.${p}}: ${p} __proginstall

CLEANFILES +=	${OBJS.${p}}

.endfor # ${PROGS}

realdo_all: ${PROGS}

CLEANFILES += ${PROGS}

.endif # _MKC_IMP_PROG_MK