Date: Thu, 14 Feb 2002 17:20:25 +0200 From: Alexey Zelkin <phantom@freebsd.org> To: hackers@freebsd.org, ache@freensd.org, bde@freebsd.org, sobomax@freebsd.org, ru@freebsd.org Subject: CFR: NLS build infrastructure ... Message-ID: <20020214172025.A24613@gate.sim.ionidea.com>
next in thread | raw e-mail | index | archive | help
--sm4nu43k4a2Rpi4c Content-Type: text/plain; charset=us-ascii Content-Disposition: inline hi, I've investigated NetBSD's infrastructure used to build/install NLS files and based on their ideas wrote small additional include file for /usr/share/mk. I'm not make(1) guru and expect to have there some bogons. Since we have now two consumers of NLS catalogs in tree (tcsh and ee) I've also attached patches which are supposed to convert current way of NLS files handling into new include .mk file logic. Attached files are: 1. bsd.nls.mk -- include file supposed to be installed to /usr/share/mk 2. csh.nls.Makefile.patch -- patch for src/bin/csh/nls/Makefile. Applying of this patch also iluminates need of src/bin/csh/nls/*/Makefile since it's completely replaces them. 3. ee.Makefile.patch -- patch for src/usr.bin/ee/Makefile NOTE: These patches are not {build,install}world tested (local tests only) and provided for review, feedbacks or objections only. --sm4nu43k4a2Rpi4c Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="bsd.nls.mk" # $NetBSD: bsd.nls.mk,v 1.35 2001/11/28 20:19:08 tv Exp $ # $FreeBSD$ # # This include file <bsd.nls.mk> handles building and installing Native # Language Support (NLS) catalogs # # +++ variables +++ # # GENCAT A program for converting .msg files into compiled NLS # .cat files. [gencat -new] # # NLS Source or intermediate .msg files. [set in Makefile] # # NLSDIR Base path for National Language Support files # installation. [${SHAREDIR}/nls] # # NLSGRP National Language Support files group. [${SHAREGRP}] # # NLSMODE National Language Support files mode. [${NOBINMODE}] # # NLSOWN National Language Support files owner. [${SHAREOWN}] # # NONLS Do not make or install NLS files. [not set] # # +++ targets +++ # # install: # Install compiled NLS files # # bsd.obj.mk: cleandir and obj # XXX: test with buildworld -- ${DESTDIR}${NLSDIR} # GENCAT?= gencat -new # from NetBSD -- to use in libraries #NLSNAME?= ${PROG:Ulib${LIB}} NLSDIR?= ${SHAREDIR}/nls NLSGRP?= ${SHAREGRP} NLSMODE?= ${NOBINMODE} NLSOWN?= ${SHAREOWN} NLS?= .MAIN: all .SUFFIXES: .cat .msg .msg.cat: ${GENCAT} ${.TARGET} ${.IMPSRC} # # .msg file pre-build rules # .for file in ${NLS} .if defined(NLSSRCFILES_${file}) ${file}: @rm -f ${.TARGET} cat ${NLSSRCDIR_${file}}/${NLSSRCFILES_${file}} > ${.TARGET} .endif CLEANFILES+= ${file} .endfor # # .cat file build rules # NLSALL= ${NLS:.msg=.cat} CLEANFILES+= ${NLSALL} # # installation rules # __nlsinstall: .USE ${INSTALL} -o ${NLSOWN} -g ${NLSGRP} -m ${NLSMODE} \ ${.ALLSRC} ${.TARGET} .for F in ${NLSALL} _F:= ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat ${_F}: ${F} __nlsinstall # install rule nlsinstall:: ${_F} .PRECIOUS: ${_F} # keep if install fails .endfor # .if !defined(NONLS) && !empty(NLS) all-nls: ${NLSALL} .else all-nls: .endif all: all-nls _SUBDIR install: beforeinstall nlsinstall afterinstall .if !target(distribute) distribute: .endif .if !target(beforeinstall) beforeinstall: .endif .if !target(afterinstall) afterinstall: .endif .include <bsd.obj.mk> --sm4nu43k4a2Rpi4c Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="ee.Makefile.patch" Index: Makefile =================================================================== RCS file: /cvs/freebsd/src/usr.bin/ee/Makefile,v retrieving revision 1.19 diff -u -r1.19 Makefile --- Makefile 17 Dec 2001 13:59:33 -0000 1.19 +++ Makefile 14 Feb 2002 15:06:07 -0000 @@ -15,17 +15,12 @@ 8859_15_LINKS = fr_FR de_DE ENUS_LINKS = ISO8859-1 ISO8859-15 -FILES= ${LANGS:S/$/.ee.cat/} -CLEANFILES+= ${FILES} +NLSNAME=ee .for lang in ${LANGS} -${lang}.ee.cat: ${.CURDIR}/nls/${lang}/ee.msg - gencat -new ${.TARGET} ${.ALLSRC} -.endfor - -.for lang in ${LANGS} -FILESDIR_${lang:S/$/.ee.cat/}= ${NLSDIR}/${lang} -FILESNAME_${lang:S/$/.ee.cat/}= ee.cat +NLSSRCDIR_${lang}.msg=${.CURDIR}/nls/${lang} +NLSSRCFILES_${lang}.msg=ee.msg +NLS+=${lang}.msg .endfor .for link in ${ENUS_LINKS} @@ -36,3 +31,4 @@ .endfor .include <bsd.prog.mk> +.include <bsd.nls.mk> --sm4nu43k4a2Rpi4c Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="csh.nls.Makefile.patch" Index: Makefile =================================================================== RCS file: /cvs/freebsd/src/bin/csh/nls/Makefile,v retrieving revision 1.9 diff -u -r1.9 Makefile --- Makefile 5 Sep 2001 18:10:27 -0000 1.9 +++ Makefile 14 Feb 2002 15:09:25 -0000 @@ -1,5 +1,24 @@ -# $FreeBSD: src/bin/csh/nls/Makefile,v 1.9 2001/09/05 18:10:27 mp Exp $ +# $FreeBSD$ -SUBDIR= et finnish french german greek italian ja russian spanish ukrainian +BASESRC= ${.CURDIR}/../../../contrib/tcsh/nls -.include <bsd.subdir.mk> +CATALOGS= et:et_EE.ISO8859-15 \ + finnish:fi_FI.ISO8859-1 \ + french:fr_FR.ISO8859-1 \ + german:de_DE.ISO8859-1 \ + greek:el_GR.ISO8859-7 \ + italian:it_IT.ISO8859-1 \ + ja:ja_JP.eucJP \ + russian:ru_RU.KOI8-R \ + spanish:es_ES.ISO8859-1 \ + ukrainian:uk_UA.KOI8-U + +NLSNAME= tcsh + +.for catalog in ${CATALOGS} +NLSSRCDIR_${catalog:C/.*://g}.msg:= ${BASESRC}/${catalog:C/:.*//g} +NLSSRCFILES_${catalog:C/.*://g}.msg= set[0-9]* +NLS+=${catalog:C/.*://g}.msg +.endfor + +.include <bsd.nls.mk> --sm4nu43k4a2Rpi4c-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020214172025.A24613>