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