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 28 PROG= stty ttymon ttyadm sttydefs 29 XPG4PROG= 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). 33 STTYOBJ= sttyobjs/stty.o sttyobjs/sttytable.o sttyobjs/sttyparse.o 34 35 XPG4STTYOBJ= sttyobjs.xpg4/stty.o sttyobjs.xpg4/sttytable.o \ 36 sttyobjs.xpg4/sttyparse.o 37 38 TTYMONOBJ= 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 43 TTYADMOBJ= ttyadm.o tmutil.o admutil.o 44 45 STTYDEFSOBJ= sttydefs.o admutil.o tmttydefs.o tmparse.o sttytable.o \ 46 sttyparse.o 47 48 OBJS= $(STTYOBJ) $(XPG4STTYOBJ) $(TTYMONOBJ) $(TTYADMOBJ) $(STTYDEFSOBJ) 49 STTYSRC= stty.c sttytable.c sttyparse.c 50 TTYMONSRC= $(TTYMONOBJ:%.o=%.c) 51 TTYADMSRC= $(TTYADMOBJ:%.o=%.c) 52 STTYDEFSSRC= $(STTYDEFSOBJ:%.o=%.c) 53 SRCS= $(STTYSRC) $(TTYMONSRC) $(TTYADMSRC) $(STTYDEFSSRC) 54 55 .PARALLEL: $(OBJS) $(PROG) 56 57 include ../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 63 CPPFLAGS += -DSYS_NAME 64 $(XPG4):= CPPFLAGS += -DXPG4 65 sttydefs := LDLIBS += -lnsl 66 ttymon := 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 73 LINTFLAGS = -b -x 74 CFLAGS += $(CCVERBOSE) 75 LDFLAGS += $(MAPFILE.NGB:%=-M%) 76 77 CERRWARN += -_gcc=-Wno-parentheses 78 CERRWARN += -_gcc=-Wno-unused-variable 79 CERRWARN += $(CNOWARN_UNINIT) 80 CERRWARN += -_gcc=-Wno-extra 81 82 # not linted 83 SMATCH=off 84 85 # 86 # Message catalog 87 # 88 POFILES= $(STTYOBJ:sttyobjs/%.o=%.po) 89 POFILE= ttymon.po 90 91 92 LIBSAFD= $(ROOTLIB)/saf 93 DIRS= $(LIBSAFD) 94 LIBSAF= ttymon 95 USRSBINF= sttydefs ttyadm 96 BINF= stty 97 ROOTLIBF= $(LIBSAF:%=$(LIBSAFD)/%) 98 ROOTUSRSBINF= $(USRSBINF:%=$(ROOTUSRSBIN)/%) 99 ROOTBINF= $(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 107 ROOTXPG6SYMLINK= $(ROOTXPG6BIN)/stty 108 .KEEP_STATE: 109 110 all: $(PROG) $(XPG4) 111 112 stty: sttyobjs $(STTYOBJ) $(MAPFILE.NGB) 113 $(LINK.c) $(STTYOBJ) -o $@ $(LDLIBS) 114 $(POST_PROCESS) 115 116 stty.xpg4: $(XPG4STTYOBJ) $(MAPFILE.NGB) 117 $(LINK.c) $(XPG4STTYOBJ) -o $@ $(LDLIBS) 118 $(POST_PROCESS) 119 120 $(XPG4STTYOBJ): sttyobjs.xpg4 121 122 sttyobjs/%.o: %.c 123 $(COMPILE.c) -o $@ $< 124 125 sttyobjs.xpg4/%.o: %.c 126 $(COMPILE.c) -o $@ $< 127 128 sttyobjs: 129 -@mkdir -p $@ 130 131 sttyobjs.xpg4: 132 -@mkdir -p $@ 133 134 ttymon: $(TTYMONOBJ) $(MAPFILE.NGB) 135 $(LINK.c) $(TTYMONOBJ) -o $@ $(LDLIBS) -lpam 136 $(POST_PROCESS) 137 138 ttyadm: $(TTYADMOBJ) $(MAPFILE.NGB) 139 $(LINK.c) $(TTYADMOBJ) -o $@ $(LDLIBS) 140 $(POST_PROCESS) 141 142 sttydefs: $(STTYDEFSOBJ) $(MAPFILE.NGB) 143 $(LINK.c) $(STTYDEFSOBJ) -o $@ $(LDLIBS) 144 $(POST_PROCESS) 145 146 install: 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 162 clean: 163 $(RM) $(OBJS) 164 165 lint: 166 $(LINT.c) $(STTYSRC) 167 $(LINT.c) $(TTYMONSRC) 168 $(LINT.c) $(TTYADMSRC) 169 $(LINT.c) $(STTYDEFSSRC) 170 171 include ../Makefile.targ