xref: /illumos-gate/usr/src/cmd/msgfmt/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 (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 2006 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25#       Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
26#         All Rights Reserved
27#
28# Copyright 2017 Joyent, Inc.
29#
30
31# cmd/msgfmt/Makefile
32
33include ../Makefile.cmd
34
35XOBJS=	xgettext.o
36
37LXOBJS=	xgettext.lx.o
38
39GOBJS=	gnu_msgfmt.o gnu_handle.o gnu_lex.o gnu_hash.o gnu_check.o
40
41YOBJS=	gnu_po.o
42
43BOBJS=	gnu_msgs.o
44
45LOBJS=	gnu_msgs_rev.o
46
47SOBJS=	msgfmt.o check_header.o
48
49COBJS=	option.o util.o
50
51BINPROG= msgfmt xgettext
52LIBPROG= gmsgfmt
53PROG=  $(BINPROG) $(LIBPROG)
54
55YFLAGS += -d
56
57POFILE= msgfmt_all.po
58POFILES= $(SOBJS:%.o=%.po) $(GOBJS:%.o=%.po) $(COBJS:%.o=%.po) \
59	$(BOBJS:%.o=%.po) $(YOBJS:%.o=%.po)
60
61CLOBBERFILES += gmsgfmt_rev
62
63ROOTBINPROG= $(BINPROG:%=$(ROOTBIN)/%)
64ROOTLIBPROG= $(LIBPROG:%=$(ROOTLIB)/%)
65
66CERRWARN += -_gcc=-Wno-parentheses
67CERRWARN += $(CNOWARN_UNINIT)
68CERRWARN += -_gcc=-Wno-unused-variable
69
70# because of labels from yacc
71gnu_po.o := CERRWARN += -_gcc=-Wno-unused-label
72xgettext.lx.o := CERRWARN += -_gcc=-Wno-unused-label
73
74.KEEP_STATE:
75
76.PARALLEL:	$(SOBJS) $(GOBJS) $(YOBJS) $(COBJS) $(BOBJS) $(LOBJS) \
77		$(XOBJS) $(LXOBJS)
78
79all: $(PROG) gmsgfmt_rev
80
81msgfmt:	$(SOBJS) $(COBJS)
82	$(LINK.c) $(SOBJS) $(COBJS) -o $@ $(LDLIBS)
83	$(POST_PROCESS)
84
85gmsgfmt:	$(GOBJS) $(YOBJS) $(BOBJS) $(COBJS)
86	$(LINK.c) $(GOBJS) $(YOBJS) $(BOBJS) $(COBJS) -o $@ $(LDLIBS)
87	$(POST_PROCESS)
88
89gmsgfmt_rev:	$(GOBJS) $(YOBJS) $(LOBJS) $(COBJS)
90	$(LINK.c) $(GOBJS) $(YOBJS) $(LOBJS) $(COBJS) -o $@ $(LDLIBS)
91	$(POST_PROCESS)
92
93xgettext: $(XOBJS) $(LXOBJS)
94	$(LINK.c) $(XOBJS) $(LXOBJS) -o $@ $(LDLIBS)
95	$(POST_PROCESS)
96
97$(POFILES): y.tab.h
98
99$(POFILE):	$(POFILES)
100	$(RM) $@
101	cat $(POFILES) > $@
102
103install: all $(ROOTBINPROG) $(ROOTLIBPROG)
104
105clean:
106	$(RM) $(SOBJS) $(GOBJS) $(YOBJS) $(COBJS) \
107		$(XOBJS) $(LXOBJS) $(BOBJS) $(LOBJS) \
108		$(POFILE) $(POFILES) gnu_po.c y.tab.h xgettext.lx.c
109
110gnu_po.c + y.tab.h:	gnu_po.y
111	$(RM) gnu_po.c y.tab.h
112	$(YACC.y) gnu_po.y
113	mv y.tab.c gnu_po.c
114
115gnu_lex.o:	y.tab.h
116
117include ../Makefile.targ
118