view usr/src/cmd/localedef/Makefile @ 13834:58bc6f85b799

2933 compiler warning gags need better granularity Reviewed by: Eric Schrock <eric.schrock@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org>
author Richard Lowe <richlowe@richlowe.net>
date Sun, 22 Jul 2012 16:03:46 -0400
parents dfe49af80c1b
children f63fe73094ce
line wrap: on
line source

#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#

#
# Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
# Copyright 2011 EveryCity Ltd. All rights reserved.
#

PROG=localedef

include ../Makefile.cmd

OBJS = 	charmap.o collate.o ctype.o messages.o monetary.o numeric.o time.o \
	scanner.o localedef.o wide.o parser.tab.o

HDRS	= localedef.h

SRCS	= $(OBJS:%.o=%.c)

CPPFLAGS	+= -I $(SRC)/lib/libc/port/locale
CERRWARN	+= -_gcc=-Wno-char-subscripts
CERRWARN	+= -_gcc=-Wno-uninitialized
CERRWARN	+= -_gcc=-Wno-unused-label
LDLIBS		+= -lgen
LDLIBS 		+= -lavl
YFLAGS		= -d -b parser

CLEANFILES	= $(OBJS) parser.tab.c parser.tab.h
CLEANFILES	+= \
		UTF-8.cm UTF-8.ct \
		8859-1.cm 8859-2.cm 8859-3.cm 8859-4.cm \
		8859-5.cm 8859-5.cm 8859-6.cm 8859-7.cm \
		8859-8.cm 8859-9.cm 8859-9.cm 8859-10.cm \
		8859-11.cm 8859-13.cm 8859-14.cm 8859-15.cm \
		8859-16.cm \
		KOI8-R.cm
CLOBBERFILES	= $(PROG) $(POFILE) $(DATA:%=locale/%)
PIFILES		= $(OBJS:%.o=%.i)
POFILE		= localedef_cmd.po

ISO8859_1_LOCALES	= \
		da_DK \
		de_CH \
		en_AU en_CA en_GB en_NZ en_US \
		es_AR es_BO es_CL es_CO es_EC es_GT es_MX es_NI es_PA \
		es_PE es_SV es_UY es_VE \
		fr_CA fr_CH \
		is_IS \
		it_CH \
		sv_SE

ISO8859_2_LOCALES	= \
		cs_CZ \
		hr_HR \
		hu_HU \
		pl_PL \
		sq_AL

ISO8859_5_LOCALES	= \
		bg_BG \
		mk_MK \
		ru_RU

ISO8859_6_LOCALES	= 

ISO8859_7_LOCALES	= \
		el_GR

ISO8859_9_LOCALES	= \
		tr_TR

ISO8859_11_LOCALES	= \
		th_TH

ISO8859_13_LOCALES	= \
		lt_LT \
		lv_LV

ISO8859_15_LOCALES	= \
		ca_ES \
		da_DK \
		de_AT de_DE \
		en_GB en_IE en_US \
		es_ES \
		fi_FI \
		fr_BE fr_FR \
		it_IT \
		nl_BE nl_NL \
		pt_PT \
		sv_FI sv_SE

KOI8_R_LOCALES		= \
		ru_RU

GB18030_LOCALES		= \
		zh_CN

#
# All new locales should be in UTF-8 form.
#
UTF_8_LOCALES		= \
		af_ZA \
		ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA \
		ar_OM ar_QA ar_SA ar_TN ar_YE \
		as_IN \
		az_AZ \
		be_BY \
		bg_BG \
		bn_BD bn_IN \
		bo_CN bo_IN \
		bs_BA \
		ca_ES \
		cs_CZ \
		da_DK \
		de_AT de_BE de_CH de_DE de_LI de_LU \
		el_CY el_GR \
		en_AU en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH \
		en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_ZA en_ZW \
		es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GQ es_GT \
		es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY \
		es_VE \
		et_EE \
		fi_FI \
		fil_PH \
		fr_BE fr_CA fr_CF fr_CH fr_FR fr_GN fr_LU fr_MC fr_MG fr_ML \
		fr_NE fr_SN \
		ga_IE \
		gu_IN \
		he_IL \
		hi_IN \
		hr_HR \
		hu_HU \
		hy_AM \
		id_ID \
		ii_CN \
		is_IS \
		it_CH it_IT \
		ja_JP \
		ka_GE \
		kk_KZ \
		km_KH \
		kn_IN \
		ko_KR \
		kok_IN \
		lt_LT \
		lv_LV \
		mk_MK \
		ml_IN \
		mn_CN mn_MN \
		mr_IN \
		ms_MY \
		mt_MT \
		ne_IN ne_NP \
		nl_BE nl_NL \
		nb_NO \
		nn_NO \
		or_IN \
		pa_IN pa_PK \
		pl_PL \
		pt_BR pt_GW pt_MZ pt_PT \
		ro_MD ro_RO \
		ru_MD ru_RU ru_UA \
		sa_IN \
		si_LK \
		sk_SK \
		sl_SI \
		sq_AL \
		sr_BA sr_ME sr_RS \
		sv_FI sv_SE \
		ta_IN ta_LK \
		te_IN \
		th_TH \
		tr_TR \
		uk_UA \
		ug_CN \
		ur_IN ur_PK \
		vi_VN \
		zh_CN zh_HK zh_MO zh_SG zh_TW

UTF8SRCS	= $(UTF_8_LOCALES:%=data/%.UTF-8.src)

LOCNAMES	= \
		$(ISO8859_1_LOCALES:%=%.ISO8859-1) \
		$(ISO8859_2_LOCALES:%=%.ISO8859-2) \
		$(ISO8859_5_LOCALES:%=%.ISO8859-5) \
		$(ISO8859_6_LOCALES:%=%.ISO8859-6) \
		$(ISO8859_7_LOCALES:%=%.ISO8859-7) \
		$(ISO8859_9_LOCALES:%=%.ISO8859-9) \
		$(ISO8859_11_LOCALES:%=%.ISO8859-11) \
		$(ISO8859_13_LOCALES:%=%.ISO8859-13) \
		$(ISO8859_15_LOCALES:%=%.ISO8859-15) \
		$(KOI8_R_LOCALES:%=%.KOI8-R) \
		$(GB18030_LOCALES:%=%.GB18030) \
		$(UTF_8_LOCALES:%=%.UTF-8)

LOCDIRS		= $(LOCNAMES:%=locale/%)

STAMPFILES	= $(LOCDIRS:%=%/stamp)

CATDIRS		= \
		$(LOCDIRS:%=%/LC_COLLATE) \
		$(LOCDIRS:%=%/LC_CTYPE) \
		$(LOCDIRS:%=%/LC_MESSAGES) \
		$(LOCDIRS:%=%/LC_MONETARY) \
		$(LOCDIRS:%=%/LC_NUMERIC) \
		$(LOCDIRS:%=%/LC_TIME)

DATA		= $(CATDIRS:%=%/LCL_DATA)

DCOLL		= LC_COLLATE/LCL_DATA
DCTYPE		= LC_CTYPE/LCL_DATA
DMSGS		= LC_MESSAGES/LCL_DATA
DMON		= LC_MONETARY/LCL_DATA
DNUM		= LC_NUMERIC/LCL_DATA
DTIME		= LC_TIME/LCL_DATA

ROOTLOCDIRS	= $(LOCDIRS:%=$(ROOTLIB)/%)
ROOTCATDIRS	= $(CATDIRS:%=$(ROOTLIB)/%)
ROOTDATA	= $(DATA:%=$(ROOTLIB)/%)

$(ROOTDATA)	:= FILEMODE=0444

all: $(PROG) $(DATA)

install: all $(ROOTPROG) $(ROOTDATA)

$(PROG): $(OBJS)
	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
	$(POST_PROCESS)

$(OBJS):	parser.tab.h

parser.tab.c parser.tab.h: parser.y $(HDRS)
	$(YACC) $(YFLAGS) parser.y

lint:	$(SRCS)
	$(LINT.c) $(CPPFLAGS) $(SRCS)

clean:	
	$(RM) $(CLEANFILES)
	$(RM) $(STAMPFILES)

$(POFILE):	$(PIFILES)
	$(RM) $@
	$(RM) messages.po
	$(XGETTEXT) -s $(PIFILES)
	$(SED) -e '/domain/d' messages.po > $@
	$(RM) $(PIFILES) messages.po

locale $(ROOTLOCDIRS) $(ROOTCATDIRS):
	$(INS.dir)

include ../Makefile.targ

# Strip LC_CTYPE contents for UTF-8 locales and replace them
# with UTF-8.ct we compiled
locale/%.UTF-8/stamp:		data/%.UTF-8.src UTF-8.cm \
				UTF-8.ct locale $(PROG)
	$(SED) '/^LC_CTYPE/,/^END LC_CTYPE/d;$$r UTF-8.ct' $< | \
		./$(PROG) -U -f UTF-8.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-1/stamp:	data/%.UTF-8.src 8859-1.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-1.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-2/stamp:	data/%.UTF-8.src 8859-2.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-2.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-5/stamp:	data/%.UTF-8.src 8859-5.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-5.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-7/stamp:	data/%.UTF-8.src 8859-7.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-7.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-6/stamp:	data/%.UTF-8.src 8859-6.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-6.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-9/stamp:	data/%.UTF-8.src 8859-9.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-9.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-11/stamp:	data/%.UTF-8.src 8859-11.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-11.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-13/stamp:	data/%.UTF-8.src 8859-13.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-13.cm $(@D)
	$(TOUCH) $@
locale/%.ISO8859-15/stamp:	data/%.UTF-8.src 8859-15.cm locale $(PROG)
	./$(PROG) -U -i $< -f 8859-15.cm $(@D)
	$(TOUCH) $@
locale/%.KOI8-R/stamp:		data/%.UTF-8.src KOI8-R.cm locale $(PROG)
	./$(PROG) -U -i $< -f KOI8-R.cm $(@D)
	$(TOUCH) $@
locale/%.GB18030/stamp:		data/%.UTF-8.src GB18030.cm locale $(PROG)
	./$(PROG) -U -i $< -f GB18030.cm $(@D)
	$(TOUCH) $@

locale/%/$(DCOLL):	locale/%/stamp
locale/%/$(DCTYPE):	locale/%/stamp
locale/%/$(DMSGS):	locale/%/stamp
locale/%/$(DMON):	locale/%/stamp
locale/%/$(DNUM):	locale/%/stamp
locale/%/$(DTIME):	locale/%/stamp

UTF-8.cm: data/UTF-8.cm
	$(LN) -sf data/UTF-8.cm  $@

UTF-8.ct: $(UTF8SRCS)
	$(SH) data/ctype.sh $(UTF8SRCS) > $@

GB18030.cm: data/GB18030.cm
	$(LN) -sf data/GB18030.cm  $@

%.cm: data/%.TXT UTF-8.cm
	$(RM) $@
	$(PERL) data/convert_map.pl $< > $@

$(ROOTDATA):	$(ROOTLOCDIRS) $(ROOTCATDIRS) $(DATA)
	$(RM) $@
	$(CP) $(@:$(ROOTLIB)/%=%) $@
	$(CHMOD) 0444 $@