xref: /illumos-gate/usr/src/cmd/awk/Makefile (revision 33efde4275d24731ef87927237b0ffb0630b6b2d)
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, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#
23#
24# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27# Copyright 2020 Joyent, Inc.
28
29# NOTE: awk is now nawk.
30
31PROG= nawk
32LINKPROG= awk
33
34OBJ1= b.o lib.o main.o parse.o proctab.o run.o tran.o lex.o
35OBJ2= awk.g.o
36OBJS= $(OBJ2) $(OBJ1)
37SRCS= $(OBJ1:%.o=%.c)
38
39include ../Makefile.cmd
40
41ROOTLINK =	$(LINKPROG:%=$(ROOTBIN)/%)
42
43CERRWARN += -_gcc=-Wno-parentheses
44CERRWARN += -_gcc=-Wno-unused-variable
45CERRWARN += $(CNOWARN_UNINIT)
46
47# because of labels from yacc
48awk.g.o := CERRWARN += -_gcc=-Wno-unused-label
49
50# not linted
51SMATCH=off
52
53#
54# Message catalog
55#
56POFILES= $(OBJS:%.o=%.po)
57POFILE= awk.po
58XGETFLAGS += -a -x awk.xcl
59#
60
61CPPFLAGS += -D_FILE_OFFSET_BITS=64
62YFLAGS += -d
63LDLIBS += -lm -lumem
64CLEANFILES= maketab proctab.c awk.g.c y.tab.h
65
66.KEEP_STATE:
67
68all: $(PROG) $(ROOTLINK)
69
70$(PROG): $(OBJS)
71	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
72	$(POST_PROCESS)
73
74$(ROOTLINK):	$(ROOTPROG)
75	$(RM) $@; $(LN) $(ROOTPROG) $@
76
77#
78# message catalog
79#
80
81$(POFILE):  y.tab.h $(POFILES)
82	$(RM) $@
83	cat $(POFILES) > $@
84#
85
86proctab.c: maketab
87	rm -f $@; ./maketab > $@
88
89maketab: maketab.c
90	$(NATIVECC) $(NATIVE_CFLAGS) maketab.c -o $@ $(LDLIBS)
91
92install: all $(ROOTPROG) $(ROOTLINK)
93
94clean:
95	$(RM) $(OBJS) $(CLEANFILES)
96
97awk.g.c + y.tab.h: awk.g.y
98
99awk.g.o: awk.g.c
100
101proctab.o: proctab.c
102	$(COMPILE.c) proctab.c
103	$(POST_PROCESS_O)
104
105include ../Makefile.targ
106