xref: /illumos-gate/usr/src/cmd/geniconvtbl/Makefile.com (revision b93865c3d90e9b0d73e338c9abb3293c35c571a8)
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# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
22# Use is subject to license terms.
23#
24# Copyright (c) 2019, Joyent, Inc.
25#
26
27LIB	= geniconvtbl.so
28PROG	= geniconvtbl
29
30SRCDIR  = $(SRC)/cmd/geniconvtbl
31
32MAPFILE	= $(SRCDIR)/mapfile
33
34OBJS    = itmcomp.o assemble.o disassemble.o itm_util.o y.tab.o lex.yy.o
35MSGFILES = itmcomp.i assemble.i disassemble.i itm_util.i y.tab.i lex.yy.i geniconvtbl.i
36
37include $(SRC)/cmd/Makefile.cmd
38
39POFILE	= geniconvtbl_.po
40
41ROOTDIRS32=	$(ROOTLIB)/iconv
42ROOTDIRS64=	$(ROOTLIB)/iconv/$(MACH64)
43ROOTLIB32 =	$(ROOTDIRS32)/$(LIB)
44ROOTLIB64 =	$(ROOTDIRS64)/$(LIB)
45
46CLOBBERFILES=	$(LIB)
47CLEANFILES =	$(OBJS) y.tab.c y.tab.h lex.yy.c \
48		$(POFILE)
49
50CPPFLAGS	+= -I. -I$(SRCDIR)
51CERRWARN	+= $(CNOWARN_UNINIT)
52CERRWARN	+= -_gcc=-Wno-unused-label
53CERRWARN	+= -_gcc=-Wno-switch
54CERRWARN	+= -_gcc=-Wno-unused-variable
55CERRWARN	+= -_gcc=-Wno-implicit-function-declaration
56YFLAGS		+= -d
57CFLAGS		+= -D_FILE_OFFSET_BITS=64
58
59# dump_expr() is too hairy
60SMATCH=off
61
62$(LIB) :=	LDFLAGS += $(GSHARED) -Wl,-h$@ $(ZTEXT) $(ZDEFS) $(BDIRECT) \
63		$(C_PICFLAGS) $(MAPFILE:%=-Wl,-M%)			\
64		$(MAPFILE.PGA:%=-Wl,-M%) $(MAPFILE.NED:%=-Wl,-M%)
65$(LIB) :=	CPPFLAGS += -D_REENTRANT
66$(LIB) :=	sparc_CFLAGS += -xregs=no%appl
67$(LIB) :=	sparcv9_CFLAGS += -xregs=no%appl
68$(LIB) :=	LDLIBS += -lc
69
70$(PROG) :=	LDLIBS += -lgen
71
72.KEEP_STATE:
73
74.PARALLEL: $(LIB) $(OBJS)
75
76$(PROG): $(OBJS)
77	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
78	$(POST_PROCESS)
79
80$(LIB): $(SRCDIR)/geniconvtbl.c
81	$(LINK.c) -o $@ $(SRCDIR)/geniconvtbl.c $(LDLIBS)
82	$(POST_PROCESS_SO)
83
84y.tab.c + y.tab.h: $(SRCDIR)/itm_comp.y
85	$(YACC) $(YFLAGS) $(SRCDIR)/itm_comp.y
86	@ $(MV) y.tab.c y.tab.c~
87	@ $(SED) -f  $(SRCDIR)/yacc.sed y.tab.c~ > y.tab.c
88	@ $(RM) y.tab.c~
89
90lex.yy.c: $(SRCDIR)/itm_comp.l y.tab.h
91	$(LEX) -t $(SRCDIR)/itm_comp.l | $(SED) -f $(SRCDIR)/lex.sed > $(@)
92
93clean:
94	$(RM) $(CLEANFILES)
95
96$(POFILE): $(MSGFILES)
97	$(BUILDPO.msgfiles)
98
99%.o:	%.c
100	$(COMPILE.c) $<
101
102%.o:	$(SRCDIR)/%.c
103	$(COMPILE.c) $<
104
105%.i:	$(SRCDIR)/%.c
106	$(CPPFORPO) $< > $@
107
108# install rule
109$(ROOTDIRS32)/%: $(ROOTDIRS32) %
110	$(INS.file)
111
112$(ROOTDIRS64)/%: $(ROOTDIRS64) %
113	$(INS.file)
114
115$(ROOTDIRS32): $(ROOTLIB)
116	$(INS.dir)
117
118$(ROOTDIRS64): $(ROOTDIRS32)
119	$(INS.dir)
120
121include $(SRC)/cmd/Makefile.targ
122include $(SRC)/Makefile.msg.targ
123