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 2017 Gary Mills
24 # Copyright 2010 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
26 #
27
28 # cmd/vi/port/Makefile
29
30 PROG= ex
31 XPG4PROG= ex
32 XPG6PROG= ex
33 LIBPROGS= expreserve exrecover
34 XD4= exobjs.xpg4
35 XD6= exobjs.xpg6
36
37 EXOBJS= bcopy.o ex.o ex_addr.o ex_cmds.o ex_cmds2.o \
38 ex_cmdsub.o ex_data.o ex_extern.o ex_get.o \
39 ex_io.o ex_put.o ex_re.o ex_set.o ex_subr.o \
40 ex_temp.o ex_tty.o ex_unix.o ex_v.o ex_vadj.o \
41 ex_vget.o ex_vmain.o ex_voper.o ex_vops.o \
42 ex_vops2.o ex_vops3.o ex_vput.o ex_vwind.o \
43 printf.o
44 EXOBJS_XPG4= $(EXOBJS) compile.o values-xpg4.o
45 EXOBJS_XPG6= $(EXOBJS) compile.o values-xpg6.o
46 XPG4EXOBJS= ${EXOBJS_XPG4:%=$(XD4)/%}
47 XPG6EXOBJS= ${EXOBJS_XPG6:%=$(XD6)/%}
48 EXRECOVEROBJS= exrecover.o ex_extern.o
49 OBJS= $(EXOBJS) $(XPG4EXOBJS) $(XPG6EXOBJS) expreserve.o exrecover.o
50 SRCS= $(EXOBJS:%.o=%.c) expreserve.c exrecover.c
51 TXTS = READ_ME makeoptions asfix.c70 ex.news port.mk.370 port.mk.70 \
52 port.mk.c70 port.mk.usg ovdoprnt.s ovprintf.c rofix
53
54 include ../../Makefile.cmd
55
56 CERRWARN += -_gcc=-Wno-implicit-function-declaration
57 CERRWARN += -_gcc=-Wno-clobbered
58 CERRWARN += -_gcc=-Wno-parentheses
59 CERRWARN += -_gcc=-Wno-unused-variable
60 CERRWARN += -_gcc=-Wno-unused-label
61 CERRWARN += -_gcc=-Wno-unused-value
62 CERRWARN += -_gcc=-Wno-uninitialized
63 CERRWARN += -_gcc=-Wno-address
64
65 # Suppress errors for: tmp1 n
66 ex_vmain.o exobjs.xpg4/ex_vmain.o exobjs.xpg6/ex_vmain.o := \
67 CERRWARN += -_gcc=-Wno-unused-but-set-variable
68
69 #
70 # For message catalogue files
71 #
72 POFILES= $(EXOBJS:%.o=%.po) expreserve.po exrecover.po
73 POFILE= port.po
74
75 # Include all XPG4 and XPG4ONLY changes in the XPG4 version
76 $(XPG4) := CFLAGS += -DXPG4 -DXPG4ONLY
77
78 # Include all XPG4 changes, but don't include XPG4ONLY in the XPG6 version
79 $(XPG6) := CFLAGS += -DXPG4 -DXPG6 -I$(SRC)/lib/libc/inc
80
81 CPPFLAGS += -DUSG -DSTDIO -DVMUNIX -DTABS=8 -DSINGLE -DTAG_STACK
82
83 # vi maintains its own versions of various routines from libc and libcurses,
84 # so localize all symbols to avoid name space collisions.
85 LDFLAGS += $(MAPFILE.NGB:%=-M%)
86
87 CLOBBERFILES += $(LIBPROGS)
88 ex := LDLIBS += -lmapmalloc -lcurses -lgen -lcrypt_i
89 $(XPG4) := LDLIBS += -lmapmalloc -lcurses -lgen -lcrypt_i
90 $(XPG6) := LDLIBS += -lmapmalloc -lcurses -lgen -lcrypt_i
91 exrecover := LDLIBS += -lmapmalloc -lcrypt_i
92 lint := LDLIBS += -lmapmalloc -lcurses -lgen -lcrypt
93
94 ROOTLIBPROGS= $(LIBPROGS:%=$(ROOTLIB)/%)
95
96 # hard links to ex
97 ROOTLINKS= $(ROOTBIN)/edit $(ROOTHASBIN)/edit $(ROOTBIN)/vedit \
98 $(ROOTHASBIN)/vedit $(ROOTHASBIN)/vi $(ROOTHASBIN)/view \
99
100 ROOTXPG4LINKS= $(ROOTXPG4BIN)/vi $(ROOTXPG4BIN)/view $(ROOTXPG4BIN)/edit \
101 $(ROOTXPG4BIN)/vedit
102 ROOTXPG6LINKS= $(ROOTXPG6BIN)/vi $(ROOTXPG6BIN)/view $(ROOTXPG6BIN)/edit \
103 $(ROOTXPG6BIN)/vedit
104 .KEEP_STATE:
105
106 .PARALLEL: $(OBJS)
107
108 all: $(PROG) $(XPG4) $(XPG6) $(LIBPROGS)
109
110 $(PROG): $(EXOBJS)
111 $(LINK.c) $(EXOBJS) -o $@ $(LDLIBS)
112 $(POST_PROCESS)
113
114 ex.xpg4: $(XD4) $(XPG4EXOBJS)
115 $(LINK.c) $(XPG4EXOBJS) -o $@ $(LDLIBS)
116 $(POST_PROCESS)
117
118 ex.xpg6: $(XD6) $(XPG6EXOBJS)
119 $(LINK.c) $(XPG6EXOBJS) -o $@ $(LDLIBS)
120 $(POST_PROCESS)
121
122 $(XD4)/compile.o $(XD6)/compile.o: ../../expr/compile.c
123 $(COMPILE.c) -o $@ ../../expr/compile.c
124
125 %values-xpg4.o: ../../../lib/common/common/values-xpg4.c
126 $(COMPILE.c) -o $@ ../../../lib/common/common/values-xpg4.c
127
128 %values-xpg6.o: ../../../lib/common/common/values-xpg6.c
129 $(COMPILE.c) -o $@ ../../../lib/common/common/values-xpg6.c
130
131 $(XPG4EXOBJS): $(XD4)
132
133 $(XPG6EXOBJS): $(XD6)
134
135 $(XD4)/%.o: %.c
136 $(COMPILE.c) -o $@ $<
137
138 $(XD6)/%.o: %.c
139 $(COMPILE.c) -o $@ $<
140
141 $(XD4):
142 -@mkdir -p $@
143
144 $(XD6):
145 -@mkdir -p $@
146
147 exrecover: $(EXRECOVEROBJS)
148 $(LINK.c) $(EXRECOVEROBJS) -o $@ $(LDLIBS)
149 $(POST_PROCESS)
150
151 catalog: $(MSGDOMAIN) $(POFILE)
152
153 $(POFILE): $(POFILES)
154 $(RM) $@
155 cat $(POFILES) > $@
156
157
158 install: all $(ROOTHASBINPROG) $(ROOTLIBPROGS) $(ROOTLINKS) \
159 $(ROOTXPG4PROG) $(ROOTXPG4LINKS) $(ROOTXPG6PROG) $(ROOTXPG6LINKS)
160
161 $(ROOTLINKS): $(ROOTHASBINPROG)
162 -$(RM) $@
163 -$(LN) -f $(ROOTHASBINPROG) $@
164
165 $(ROOTXPG4LINKS): $(ROOTXPG4PROG)
166 -$(RM) $@
167 -$(LN) -f $(ROOTXPG4PROG) $@
168
169 $(ROOTXPG6LINKS): $(ROOTXPG6PROG)
170 -$(RM) $@
171 -$(LN) -f $(ROOTXPG6PROG) $@
172
173 clean:
174 $(RM) $(OBJS)
175
176 lint: lint_SRCS
177
178 include ../../Makefile.targ