xref: /illumos-gate/usr/src/cmd/ttymon/Makefile (revision 69b1fd3f24d0ee2e682883606201c61f52085805)
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#
23# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26# Copyright (c) 2018, Joyent, Inc.
27
28PROG= stty ttymon ttyadm sttydefs
29XPG4PROG= stty
30
31# the 'stty' objects have to be made in a separate directory
32# since only they are built with the -DEUC flag (see below).
33STTYOBJ=	sttyobjs/stty.o sttyobjs/sttytable.o sttyobjs/sttyparse.o
34
35XPG4STTYOBJ=	sttyobjs.xpg4/stty.o sttyobjs.xpg4/sttytable.o \
36		sttyobjs.xpg4/sttyparse.o
37
38TTYMONOBJ=	ttymon.o tmglobal.o tmhandler.o tmpmtab.o tmttydefs.o \
39		tmparse.o tmsig.o tmsac.o tmchild.o tmautobaud.o tmterm.o \
40		tmutmp.o tmpeek.o tmlog.o tmlock.o tmutil.o tmexpress.o \
41		sttytable.o sttyparse.o ulockf.o
42
43TTYADMOBJ=	ttyadm.o tmutil.o admutil.o
44
45STTYDEFSOBJ=	sttydefs.o admutil.o tmttydefs.o tmparse.o sttytable.o \
46		sttyparse.o
47
48OBJS= $(STTYOBJ) $(XPG4STTYOBJ) $(TTYMONOBJ) $(TTYADMOBJ) $(STTYDEFSOBJ)
49STTYSRC= stty.c sttytable.c sttyparse.c
50TTYMONSRC= $(TTYMONOBJ:%.o=%.c)
51TTYADMSRC= $(TTYADMOBJ:%.o=%.c)
52STTYDEFSSRC= $(STTYDEFSOBJ:%.o=%.c)
53SRCS= $(STTYSRC) $(TTYMONSRC) $(TTYADMSRC) $(STTYDEFSSRC)
54
55.PARALLEL:	$(OBJS) $(PROG)
56
57include ../Makefile.cmd
58
59# If machine name and /etc/issue file need to be printed
60# before the service prompt is printed, then:  CPPFLAGS += -DSYS_NAME
61# If debug is needed, then:  CPPFLAGS += -DDEBUG
62# fix for 1111333 - turn on SYS_NAME so /etc/issue will be read if it exists
63CPPFLAGS += -DSYS_NAME
64$(XPG4):= CPPFLAGS += -DXPG4
65sttydefs := LDLIBS += -lnsl
66ttymon := LDLIBS += -lnsl -lsec -ldevinfo
67
68# Only stty can be built with -DEUC.  ttymon will dump core unless further
69# changes are made to it.
70$(STTYOBJ) := CPPFLAGS += -DEUC
71$(XPG4STTYOBJ) := CPPFLAGS += -DEUC
72
73LINTFLAGS = -b -x
74CFLAGS += $(CCVERBOSE)
75LDFLAGS += $(MAPFILE.NGB:%=-M%)
76
77CERRWARN +=	-_gcc=-Wno-parentheses
78CERRWARN +=	-_gcc=-Wno-unused-variable
79CERRWARN +=	$(CNOWARN_UNINIT)
80CERRWARN +=	-_gcc=-Wno-extra
81
82# not linted
83SMATCH=off
84
85#
86# Message catalog
87#
88POFILES= $(STTYOBJ:sttyobjs/%.o=%.po)
89POFILE= ttymon.po
90
91
92LIBSAFD= $(ROOTLIB)/saf
93DIRS= $(LIBSAFD)
94LIBSAF= ttymon
95USRSBINF= sttydefs ttyadm
96BINF= stty
97ROOTLIBF= $(LIBSAF:%=$(LIBSAFD)/%)
98ROOTUSRSBINF= $(USRSBINF:%=$(ROOTUSRSBIN)/%)
99ROOTBINF= $(BINF:%=$(ROOTBIN)/%)
100$(ROOTLIBF) :=			FILEMODE =	0555
101$(ROOTUSRSBINF) :=		FILEMODE =	0755
102
103$(LIBSAFD)/% : %
104	$(INS.file)
105
106# /usr/xpg6/bin/stty is a symlink to /usr/bin/stty
107ROOTXPG6SYMLINK= $(ROOTXPG6BIN)/stty
108.KEEP_STATE:
109
110all: $(PROG) $(XPG4)
111
112stty:	sttyobjs $(STTYOBJ) $(MAPFILE.NGB)
113	$(LINK.c) $(STTYOBJ) -o $@ $(LDLIBS)
114	$(POST_PROCESS)
115
116stty.xpg4: $(XPG4STTYOBJ) $(MAPFILE.NGB)
117	$(LINK.c) $(XPG4STTYOBJ) -o $@ $(LDLIBS)
118	$(POST_PROCESS)
119
120$(XPG4STTYOBJ): sttyobjs.xpg4
121
122sttyobjs/%.o:	%.c
123	$(COMPILE.c) -o $@ $<
124
125sttyobjs.xpg4/%.o:	%.c
126	$(COMPILE.c) -o $@ $<
127
128sttyobjs:
129	-@mkdir -p $@
130
131sttyobjs.xpg4:
132	-@mkdir -p $@
133
134ttymon:	$(TTYMONOBJ) $(MAPFILE.NGB)
135	$(LINK.c) $(TTYMONOBJ) -o $@ $(LDLIBS) -lpam
136	$(POST_PROCESS)
137
138ttyadm:	$(TTYADMOBJ) $(MAPFILE.NGB)
139	$(LINK.c) $(TTYADMOBJ) -o $@ $(LDLIBS)
140	$(POST_PROCESS)
141
142sttydefs: $(STTYDEFSOBJ) $(MAPFILE.NGB)
143	$(LINK.c) $(STTYDEFSOBJ) -o $@ $(LDLIBS)
144	$(POST_PROCESS)
145
146install: all $(DIRS) $(ROOTLIBF) $(ROOTUSRSBINF) $(ROOTBINF) \
147	$(ROOTXPG4PROG) $(ROOTXPG6SYMLINK)
148	-$(RM) $(ROOTETC)/getty
149	-$(SYMLINK) ../usr/lib/saf/ttymon $(ROOTETC)/getty
150
151$(ROOTXPG6SYMLINK): $(ROOTBINF)
152	-$(RM) $@
153	-$(SYMLINK) ../../bin/$(BINF) $@
154
155$(POFILE):      $(POFILES)
156	$(RM) $@
157	cat $(POFILES)  > $@
158
159$(DIRS):
160	$(INS.dir)
161
162clean:
163	$(RM) $(OBJS)
164
165lint:
166	$(LINT.c) $(STTYSRC)
167	$(LINT.c) $(TTYMONSRC)
168	$(LINT.c) $(TTYADMSRC)
169	$(LINT.c) $(STTYDEFSSRC)
170
171include ../Makefile.targ
172