xref: /illumos-gate/usr/src/cmd/geniconvtbl/Makefile.com (revision 9b40c3052b9b0d91120c568df0c5211c131c8da1)
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
27$(NOT_NATIVE)NATIVE_BUILD = $(POUND_SIGN)
28
29ITM	= geniconvtbl.so
30PROG	= geniconvtbl
31
32SRCSH1  = iconv_tm.h hash.h
33SRCCH1  = itmcomp.h itm_util.h maptype.h
34SRCSC1  = itmcomp.c assemble.c disassemble.c itm_util.c
35SRCY1   = itm_comp.y
36SRCL1   = itm_comp.l
37SRCI1   = geniconvtbl.c
38
39
40YTABC   = y.tab.c
41YTABH   = y.tab.h
42LEXYY   = lex.yy.c
43YOUT    = y.output
44MAPFILE	= ../mapfile
45
46
47
48SRCSH	= $(SRCSH1:%.h=../%.h)
49SRCCH	= $(SRCCH1:%.h=../%.h)
50SRCSC	= $(SRCSC1:%.c=../%.c)
51SRCI	= $(SRCI1:%.c=../%.c)
52SRCY    = $(SRCY1:%.y=../%.y)
53SRCL    = $(SRCL1:%.l=../%.l)
54
55SRCYC	= $(SRCY:%.y=%.c)
56SRCLC	= $(SRCL:%.l=%.c)
57
58SRCS    = $(SRCSC) $(YTABC) $(LEXYY)
59HDRS	= $(SRCCH1) $(ERNOSTRH)
60
61
62
63SED	= sed
64LEXSED	= ../lex.sed
65YACCSED	= ../yacc.sed
66
67
68
69# include ../../../lib/Makefile.lib
70include ../../Makefile.cmd
71
72
73ROOTDIRS32=	$(ROOTLIB)/iconv
74ROOTDIRS64=	$(ROOTLIB)/iconv/$(MACH64)
75ROOTITM32 =	$(ROOTDIRS32)/$(ITM)
76ROOTITM64 =	$(ROOTDIRS64)/$(ITM)
77
78#
79# definition for some useful target like clean,
80OBJS	= $(SRCSC1:%.c=%.o) $(YTABC:.c=.o) $(LEXYY:.c=.o)
81
82CHECKHDRS = $(HDRS%.h=%.check)
83
84CLOBBERFILES=	$(ITM) $(SRCYC)
85CLEANFILES = 	$(OBJS) $(YTABC) $(YTABH) $(LEXYY) $(YOUT) \
86		$(POFILES) $(POFILE)
87
88CPPFLAGS	+= -I. -I..
89CERRWARN	+= -_gcc=-Wno-uninitialized
90CERRWARN	+= -_gcc=-Wno-unused-label
91CERRWARN	+= -_gcc=-Wno-switch
92CERRWARN	+= -_gcc=-Wno-unused-variable
93CERRWARN	+= -_gcc=-Wno-implicit-function-declaration
94YFLAGS		+= -d -v
95CFLAGS 		+= -D_FILE_OFFSET_BITS=64
96
97# dump_expr() is too hairy
98SMATCH=off
99
100$(ITM) :=	CFLAGS += $(GSHARED) $(C_PICFLAGS) $(ZTEXT) -h$@
101$(ITM) :=	CPPFLAGS += -D_REENTRANT
102$(ITM) :=	sparc_CFLAGS += -xregs=no%appl
103$(ITM) :=	sparcv9_CFLAGS += -xregs=no%appl
104
105LDLIBS += -lgen
106
107MY_NATIVE_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -I. -I..
108MY_NATIVE_LDFLAGS = $(MAPFILE.NES:%=-M%) $(MAPFILE.PGA:%=-M%) $(MAPFILE.NED:%=-M%)
109MY_NATIVE_LDLIBS = -lgen
110
111#
112# Message catalog
113#
114POFILES= $(SRCSC1:%.c=%.po) $(SRCI1:%.c=%.po) \
115		$(SRCY1:%.y=%.po) $(SRCL1:%.l=%.po)
116
117POFILE= geniconvtbl_.po
118
119
120
121
122
123.KEEP_STATE:
124
125.PARALLEL: $(ITM) $(OBJS)
126
127$(PROG): $(OBJS)
128	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
129	$(POST_PROCESS)
130
131$(ITM): $(SRCI)
132	$(CC) $(CFLAGS) $(CPPFLAGS) -M$(MAPFILE) -o $@ $(SRCI) $(LDLIBS)
133	$(POST_PROCESS_SO)
134
135$(YTABC) $(YTABH): $(SRCY)
136	$(YACC) $(YFLAGS) $(SRCY)
137	@ $(MV) $(YTABC) $(YTABC)~
138	@ $(SED) -f $(YACCSED) $(YTABC)~ > $(YTABC)
139	@ $(RM) $(YTABC)~
140
141$(LEXYY): $(SRCL) $(YTABH)
142	$(LEX) -t $(SRCL) | $(SED) -f $(LEXSED) > $(LEXYY)
143
144
145$(POFILE):  .WAIT $(POFILES)
146	$(RM) $@
147	$(CAT) $(POFILES) >$@
148
149$(POFILES): $(SRCSC) $(SRCI) $(SRCY) $(SRCL)
150
151%.po:	../%.c
152	$(COMPILE.cpp) $<  > $<.i
153	$(BUILD.po)
154
155
156lint : lint_SRCS1  lint_SRCS2
157
158
159lint_SRCS1: $(SRCS)
160	$(LINT.c) $(SRCS) $(LDLIBS)
161
162lint_SRCS2: $(SRCI)
163	$(LINT.c) $(SRCI) $(LDLIBS)
164
165
166
167hdrchk: $(HDRCHECKS)
168
169cstyle: $(SRCS)
170	$(DOT_C_CHECK)
171
172clean:
173	$(RM) $(CLEANFILES)
174
175debug:
176	$(MAKE)	all COPTFLAG='' COPTFLAG64='' CFLAGS='-g -DDEBUG'
177
178
179%.o:	%.c
180	$(COMPILE.c) $<
181
182%.o:	../%.c
183	$(COMPILE.c) $<
184
185
186
187# install rule
188#
189$(ROOTDIRS32)/%: $(ROOTDIRS32) %
190	-$(INS.file)
191
192$(ROOTDIRS64)/%: $(ROOTDIRS64) %
193	-$(INS.file)
194
195$(ROOTDIRS32): $(ROOTLIB)
196	-$(INS.dir)
197
198$(ROOTDIRS64): $(ROOTDIRS32)
199	-$(INS.dir)
200
201$(ROOTLIB) $(ROOTBIN):
202	-$(INS.dir)
203
204include ../../Makefile.targ
205
206