xref: /illumos-gate/usr/src/cmd/vgrind/Makefile (revision 30165b7f6753bc3d48c52319bed7ec7b3ea36b3c)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# Copyright (c) 2018, Joyent, Inc.
26
27#
28# These are the objects associated with the overall vgrind command.
29#
30VFONTEDPR=	vfontedpr
31RETEST= 	retest
32MACROS=		tmac.vgrind
33LANGDEFS=	vgrindefs
34KSHPROG=	vgrind
35
36#
37# These macros captures objects that ultimately will be installed in
38# (respectively) /usr/bin, /usr/lib, and /usr/share/lib.
39#
40# Note also that retest is used strictly as a test program and is never
41# installed.  We omit it here, so that the NSE doesn't spend cycles
42# on it when acquiring and reconciling.
43#
44PROG= 		$(KSHPROG)
45LIBPROG= 	$(VFONTEDPR) $(LANGDEFS)
46TMACPROG=	$(MACROS)
47
48VFONTEDPROBJS=	vfontedpr.o vgrindefs.o regexp.o
49RETESTOBJS=	retest.o regexp.o
50
51RETESTSRC=	$(RETESTOBJS:%.o=%.c)
52
53OBJS= $(VFONTEDPROBJS) $(RETESTOBJS)
54SRCS= $(OBJS:%.o=%.c)
55
56#
57# We can get away simply with omitting TMACPROGS to protect
58# tmac.vgrind, since it's the only entry in that macro.
59#
60CLOBBERFILES=	$(LIBPROG) $(RETEST)
61
62include ../Makefile.cmd
63
64CERRWARN += -_gcc=-Wno-implicit-function-declaration
65CERRWARN += -_gcc=-Wno-parentheses
66CERRWARN += -_gcc=-Wno-unused-variable
67CERRWARN += -_gcc=-Wno-unused-function
68
69# not linted
70SMATCH=off
71
72#
73# Message catalog
74#
75POFILES= $(OBJS:%.o=%.po)
76POFILE= vgrind.po
77POFILE_KSH= vgrind_ksh.po
78
79#
80# Abbreviation for future use.
81#
82ROOTTMAC= $(ROOT)/usr/share/lib/tmac
83
84#
85# Override macro definitions from Makefile.cmd.  Necessary because
86# we're building targets for multiple destinations.
87#
88ROOTLIBPROG= $(LIBPROG:%=$(ROOT)/usr/lib/%)
89ROOTTMACPROG= $(TMACPROG:%=$(ROOTTMAC)/%)
90
91#
92# Conditional assignments pertinent to installation.
93#
94$(ROOTLIB)/$(LANGDEFS) 	:= FILEMODE= $(LIBFILEMODE)
95$(ROOTTMACPROG) 	:= FILEMODE= 0644
96
97#
98# The standard set of rules doesn't know about installing into
99# subdirectories of /usr/share/lib, so we have to roll our own.
100#
101$(ROOTTMAC)/%: %
102	$(INS.file)
103
104.KEEP_STATE:
105
106#
107# retest appears here only in source form; see comment above for PROG.
108#
109all:	$(PROG) $(LIBPROG) $(TMACPROG) $(RETESTSRC)
110
111#
112# message catalog
113#
114$(POFILE): $(POFILES) $(POFILE_KSH)
115	rm -f $@
116	cat $(POFILES) $(POFILE_KSH) > $@
117
118$(VFONTEDPR): $(VFONTEDPROBJS)
119	$(CC) -o $@ $(VFONTEDPROBJS) $(LDFLAGS) $(LDLIBS)
120	$(POST_PROCESS)
121
122$(LANGDEFS):	$(LANGDEFS).src
123	$(CP) $? $@
124
125$(RETEST): $(RETESTOBJS)
126	$(CC) -o $@ $(RETESTOBJS) $(LDFLAGS) $(LDLIBS)
127	$(POST_PROCESS)
128
129#
130# We add all as a dependent to make sure that the install pattern
131# matching rules see everything they should.  (This is a safety net.)
132#
133# XXX:	ROOTTMAC shouldn't appear as a dependent; it's here as a
134# 	bandaid(TM) until /usr/lib/tmac becomes a symlink to
135#	/usr/share/lib/tmac.
136#
137install: all $(ROOTTMAC) $(ROOTPROG) $(ROOTLIBPROG) $(ROOTTMACPROG)
138
139# XXX: see above.
140$(ROOTTMAC):
141	$(INS.dir)
142
143clean:
144	$(RM) $(OBJS)
145
146#
147# Don't worry about linting retest.
148#
149lint:=	SRCS = $(VFONTEDPROBJS:%.o=%.c)
150lint: lint_SRCS
151
152include ../Makefile.targ
153