mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-21 15:45:02 +00:00
f45c0422fc
The tcsh 6.14 uses libiconv to convert catalogs to appropriate charset dynamically. However, we don't have libiconv in our tree. So, I made some hack to load libiconv dynamically. If libiconv is available, you can use catalogs for more locales than the locales which catalog is actually installed. To use this feature, you need to symlink catalogs to appropriate locales. You can do this by installing ports/shells/tcsh_nls. Reviewed by: arch (no objection) MFC after: 1 week
140 lines
4.7 KiB
Makefile
140 lines
4.7 KiB
Makefile
# $FreeBSD$
|
|
# @(#)Makefile 8.1 (Berkeley) 5/31/93
|
|
#
|
|
# C Shell with process control; VM/UNIX VAX Makefile
|
|
# Bill Joy UC Berkeley; Jim Kulp IIASA, Austria
|
|
#
|
|
# To profile, put -DPROF in DEFS and -pg in CFLAGS, and recompile.
|
|
|
|
TCSHDIR= ${.CURDIR}/../../contrib/tcsh
|
|
.PATH: ${TCSHDIR}
|
|
|
|
PROG= csh
|
|
.if defined(RESCUE)
|
|
DFLAGS= -D_PATH_TCSHELL='"/rescue/${PROG}"'
|
|
.else
|
|
DFLAGS= -D_PATH_TCSHELL='"/bin/${PROG}"'
|
|
.endif
|
|
CFLAGS+= -I. -I${.CURDIR} -I${TCSHDIR} ${DFLAGS}
|
|
WARNS?= 0
|
|
SRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c sh.char.c \
|
|
sh.exp.c sh.file.c sh.func.c sh.glob.c sh.hist.c sh.init.c \
|
|
sh.lex.c sh.misc.c sh.parse.c sh.print.c sh.proc.c sh.sem.c \
|
|
sh.set.c sh.time.c sh.char.h sh.dir.h sh.proc.h sh.h
|
|
SRCS+= sh.decls.h glob.c glob.h mi.termios.c mi.wait.h mi.varargs.h
|
|
SRCS+= tw.decls.h tw.h tw.help.c tw.init.c tw.parse.c tw.spell.c \
|
|
tw.comp.c tw.color.c
|
|
SRCS+= ed.chared.c ed.decls.h ed.defns.c ed.h ed.init.c ed.inputl.c \
|
|
ed.refresh.c ed.screen.c ed.xmap.c ed.term.c ed.term.h
|
|
SRCS+= tc.alloc.c tc.bind.c tc.const.c tc.decls.h tc.disc.c \
|
|
tc.func.c tc.nls.c tc.os.c tc.os.h tc.printf.c tc.prompt.c \
|
|
tc.sched.c tc.sig.c tc.sig.h tc.str.c sh.types.h tc.vers.c tc.wait.h \
|
|
tc.who.c tc.h
|
|
GENHDRS= ed.defns.h sh.err.h tc.const.h tc.defs.c
|
|
SRCS+= ${GENHDRS}
|
|
|
|
MLINKS= csh.1 tcsh.1
|
|
# MLINKS for Shell built in commands for which there are no userland
|
|
# utilities of the same name are handled with the associated manpage,
|
|
# builtin.1 in share/man/man1/.
|
|
|
|
DPADD= ${LIBTERMCAP} ${LIBCRYPT}
|
|
LDADD= -ltermcap -lcrypt
|
|
|
|
LINKS= ${BINDIR}/csh ${BINDIR}/tcsh
|
|
|
|
CLEANFILES= ${GENHDRS} gethost csh.1
|
|
|
|
.if !defined(NO_EXAMPLES)
|
|
FILESDIR= ${SHAREDIR}/examples/tcsh
|
|
FILES= complete.tcsh csh-mode.el
|
|
.endif
|
|
|
|
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
|
|
|
|
NLSLINKS_fi_FI.ISO8859-1= fi_FI.ISO8859-15
|
|
NLSLINKS_fr_FR.ISO8859-1= fr_BE.ISO8859-1 fr_BE.ISO8859-15 \
|
|
fr_CA.ISO8859-1 fr_CA.ISO8859-15 fr_CH.ISO8859-1 \
|
|
fr_CH.ISO8859-15 fr_FR.ISO8859-15
|
|
NLSLINKS_de_DE.ISO8859-1= de_AT.ISO8859-1 de_AT.ISO8859-15 de_CH.ISO8859-1 \
|
|
de_CH.ISO8859-15 de_DE.ISO8859-15
|
|
NLSLINKS_it_IT.ISO8859-1= it_CH.ISO8859-1 it_CH.ISO8859-15 it_IT.ISO8859-15
|
|
NLSLINKS_es_ES.ISO8859-1= es_ES.ISO8859-15
|
|
|
|
.if defined(NO_NLS_CATALOGS) || defined(RESCUE)
|
|
CFLAGS+= -DNO_NLS_CATALOGS
|
|
.else
|
|
CFLAGS+= -DHAVE_ICONV
|
|
SRCS+= iconv_stub.c
|
|
# Folloing links can be installed from ports/shells/tcsh_nls:
|
|
# NLSLINKS_de_DE.ISO8859-1 += de_AT.UTF-8 de_CH.UTF-8 de_DE.UTF-8
|
|
# NLSLINKS_el_GR.ISO8859-7 = el_GR.UTF-8
|
|
# NLSLINKS_es_ES.ISO8859-1 += es_ES.UTF-8
|
|
# NLSLINKS_et_EE.ISO8859-15 = et_EE.UTF-8
|
|
# NLSLINKS_fi_FI.ISO8859-1 += fi_FI.UTF-8
|
|
# NLSLINKS_fr_FR.ISO8859-1 += fr_BE.UTF-8 fr_CA.UTF-8 fr_CH.UTF-8 fr_FR.UTF-8
|
|
# NLSLINKS_it_IT.ISO8859-1 += it_CH.UTF-8 it_IT.UTF-8
|
|
# NLSLINKS_ja_JP.eucJP = ja_JP.SJIS ja_JP.UTF-8
|
|
# NLSLINKS_ru_RU.KOI8-R = ru_RU.CP1251 ru_RU.CP866 ru_RU.ISO8859-5 ru_RU.UTF-8
|
|
# NLSLINKS_uk_UA.KOI8-U = uk_UA.ISO8859-5 uk_UA.UTF-8
|
|
.endif
|
|
|
|
NLSNAME= tcsh
|
|
|
|
.for catalog in ${CATALOGS}
|
|
NLS+= ${catalog:C/.*://}
|
|
NLSSRCDIR_${catalog:C/.*://}= ${TCSHDIR}/nls/${catalog:C/:.*//}
|
|
NLSSRCFILES_${catalog:C/.*://}!= cd ${NLSSRCDIR_${catalog:C/.*://}}; echo charset set[0-9]*
|
|
.endfor
|
|
|
|
csh.1: tcsh.man
|
|
cat ${.ALLSRC} > ${.TARGET}
|
|
|
|
build-tools: gethost
|
|
|
|
gethost: gethost.c sh.err.h tc.const.h sh.h
|
|
@rm -f ${.TARGET}
|
|
${CC} -o gethost ${LDFLAGS} ${CFLAGS} ${TCSHDIR}/gethost.c
|
|
|
|
tc.defs.c: gethost ${.CURDIR}/host.defs
|
|
@rm -f ${.TARGET}
|
|
@echo "/* Do not edit this file, make creates it */" > ${.TARGET}
|
|
./gethost ${.CURDIR}/host.defs >> ${.TARGET}
|
|
|
|
ed.defns.h: ed.defns.c
|
|
@rm -f ${.TARGET}
|
|
@echo '/* Do not edit this file, make creates it. */' > ${.TARGET}
|
|
@echo '#ifndef _h_ed_defns' >> ${.TARGET}
|
|
@echo '#define _h_ed_defns' >> ${.TARGET}
|
|
grep '[FV]_' ${TCSHDIR}/ed.defns.c | grep '^#define' >> ${.TARGET}
|
|
@echo '#endif /* _h_ed_defns */' >> ${.TARGET}
|
|
|
|
sh.err.h: sh.err.c
|
|
@rm -f ${.TARGET}
|
|
@echo '/* Do not edit this file, make creates it. */' > ${.TARGET}
|
|
@echo '#ifndef _h_sh_err' >> ${.TARGET}
|
|
@echo '#define _h_sh_err' >> ${.TARGET}
|
|
grep 'ERR_' ${.ALLSRC} | grep '^#define' >> ${.TARGET}
|
|
@echo '#endif /* _h_sh_err */' >> ${.TARGET}
|
|
|
|
tc.const.h: tc.const.c sh.char.h config.h config_f.h sh.types.h sh.err.h
|
|
@rm -f ${.TARGET}
|
|
@echo '/* Do not edit this file, make creates it. */' > ${.TARGET}
|
|
@echo '#ifndef _h_tc_const' >> ${.TARGET}
|
|
@echo '#define _h_tc_const' >> ${.TARGET}
|
|
${CC} -E ${CFLAGS} ${.ALLSRC} -D_h_tc_const | grep 'Char STR' | \
|
|
sed -e 's/Char \([a-zA-Z0-9_]*\)\(.*\)/extern Char \1[];/' | \
|
|
sort >> ${.TARGET}
|
|
@echo '#endif /* _h_tc_const */' >> ${.TARGET}
|
|
|
|
.include <bsd.prog.mk>
|