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 # Copyright (c) 2018, Joyent, Inc. 26 27 PROG= ed 28 XPG4PROG= ed 29 XPG6PROG= ed 30 31 EDOBJ= ed.o compile.o 32 XPG4EDOBJ= edobjs.xpg4/ed.o edobjs.xpg4/compile.o values-xpg4.o 33 XPG6EDOBJ= edobjs.xpg6/ed.o edobjs.xpg6/compile.o values-xpg6.o 34 OBJS= $(EDOBJ) $(XPG4EDOBJ) $(XPG6EDOBJ) 35 SRCS= ./ed.c ../expr/compile.c 36 37 POFILES= $(EDOBJ:%.o=%.po) 38 39 include ../Makefile.cmd 40 41 CFLAGS += $(CCVERBOSE) 42 CERRWARN += -_gcc=-Wno-parentheses 43 CERRWARN += -_gcc=-Wno-unused-variable 44 CERRWARN += -_gcc=-Wno-unused-function 45 CERRWARN += -_gcc=-Wno-uninitialized 46 47 # not linted 48 SMATCH=off 49 50 $(XPG4) := CFLAGS += -DXPG4 51 $(XPG6) := CFLAGS += -DXPG6 -I$(SRC)/lib/libc/inc 52 lint := LDLIBS += -lgen -lcrypt 53 LDLIBS += -lmapmalloc -lgen -lcrypt_i 54 XGETFLAGS += -a -x ed.xcl 55 56 MAPFILE.INT = ../expr/mapfile-intf 57 LDFLAGS += $(MAPFILE.INT:%=-M%) 58 59 POFILE= ed_cmd.po 60 61 %.po: ../expr/%.c 62 $(COMPILE.cpp) $< > $*.c.i 63 $(XGETTEXT) $(XGETFLAGS) $*.c.i 64 $(MV) messages.po $@ 65 66 .KEEP_STATE: 67 68 all: $(PROG) $(XPG4) $(XPG6) 69 70 $(PROG): $(EDOBJ) $(MAPFILE.INT) 71 $(LINK.c) $(EDOBJ) -o $@ $(LDLIBS) 72 $(POST_PROCESS) 73 74 $(XPG4): edobjs.xpg4 $(XPG4EDOBJ) $(MAPFILE.INT) 75 $(LINK.c) $(XPG4EDOBJ) -o $@ $(LDLIBS) 76 $(POST_PROCESS) 77 78 $(XPG6): edobjs.xpg6 $(XPG6EDOBJ) $(MAPFILE.INT) 79 $(LINK.c) $(XPG6EDOBJ) -o $@ $(LDLIBS) 80 $(POST_PROCESS) 81 82 compile.o: ../expr/compile.c 83 $(COMPILE.c) -o $@ ../expr/compile.c 84 85 edobjs.xpg4/%.o: %.c 86 $(COMPILE.c) -o $@ $< 87 88 edobjs.xpg4/%.o: ../expr/compile.c 89 $(COMPILE.c) -o $@ $< 90 91 edobjs.xpg6/%.o: %.c 92 $(COMPILE.c) -o $@ $< 93 94 edobjs.xpg6/%.o: ../expr/compile.c 95 $(COMPILE.c) -o $@ $< 96 97 edobjs.xpg4: 98 -@mkdir -p $@ 99 100 edobjs.xpg6: 101 -@mkdir -p $@ 102 103 $(POFILE): $(POFILES) 104 $(RM) $@ 105 cat $(POFILES) > $@ 106 107 install: all $(ROOTPROG) $(ROOTXPG4PROG) $(ROOTXPG6PROG) 108 $(RM) $(ROOTBIN)/red 109 $(LN) $(ROOTBIN)/ed $(ROOTBIN)/red 110 111 values-xpg4.o: ../../lib/crt/common/values-xpg4.c 112 $(COMPILE.c) -o $@ ../../lib/crt/common/values-xpg4.c 113 114 values-xpg6.o: ../../lib/crt/common/values-xpg6.c 115 $(COMPILE.c) -o $@ ../../lib/crt/common/values-xpg6.c 116 117 clean: 118 -@rm -rf $(OBJS) $(XPG4) $(XPG6) edobjs.xpg4 edobjs.xpg6 \ 119 compile.c.i 120 121 lint: lint_PROG 122 123 include ../Makefile.targ