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