14b88c807SRodney W. Grimes# C Shell with process control; VM/UNIX VAX Makefile 24b88c807SRodney W. Grimes# Bill Joy UC Berkeley; Jim Kulp IIASA, Austria 34b88c807SRodney W. Grimes# 44b88c807SRodney W. Grimes# To profile, put -DPROF in DEFS and -pg in CFLAGS, and recompile. 54b88c807SRodney W. Grimes 6c6063d0dSWarner Losh.include <src.opts.mk> 7e1fe3dbaSRuslan Ermilov 849912693SEmmanuel VadotPACKAGE= csh 949912693SEmmanuel Vadot 10b4d1ec6cSBrad DavisCONFGROUPS= ETC ROOT 1149912693SEmmanuel VadotETCPACKAGE= csh 1249912693SEmmanuel VadotROOTPACKAGE= csh 13b26c7f7fSBrad DavisETC= csh.cshrc csh.login csh.logout 1494ec7ec7SBrad DavisROOT= dot.cshrc dot.login 15b4d1ec6cSBrad DavisROOTDIR= /root 16a6ed8c95SThomas EberhardtROOTDIR_MODE= 0750 1794ec7ec7SBrad DavisROOTNAME_dot.cshrc= .cshrc 18b4d1ec6cSBrad DavisROOTNAME_dot.login= .login 19caf42d81SEnji CooperTCSHDIR= ${SRCTOP}/contrib/tcsh 20325c70b7SDavid E. O'Brien.PATH: ${TCSHDIR} 21325c70b7SDavid E. O'Brien 224b88c807SRodney W. GrimesPROG= csh 236d1b4a47SGordon Tetlow.if defined(RESCUE) 246d1b4a47SGordon TetlowDFLAGS= -D_PATH_TCSHELL='"/rescue/${PROG}"' 256d1b4a47SGordon Tetlow.else 26bdc45483SAndrey A. ChernovDFLAGS= -D_PATH_TCSHELL='"/bin/${PROG}"' 276d1b4a47SGordon Tetlow.endif 28a8e642f5SDavid E. O'BrienCFLAGS+= -I. -I${.CURDIR} -I${TCSHDIR} ${DFLAGS} 299ccc37e3SMark PeekWARNS?= 1 30325c70b7SDavid E. O'BrienSRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c sh.char.c \ 31325c70b7SDavid E. O'Brien sh.exp.c sh.file.c sh.func.c sh.glob.c sh.hist.c sh.init.c \ 32325c70b7SDavid E. O'Brien sh.lex.c sh.misc.c sh.parse.c sh.print.c sh.proc.c sh.sem.c \ 33e754e5f3SAndrey A. Chernov sh.set.c sh.time.c sh.char.h sh.dir.h sh.proc.h sh.h 34325c70b7SDavid E. O'BrienSRCS+= sh.decls.h glob.c glob.h mi.termios.c mi.wait.h mi.varargs.h 35325c70b7SDavid E. O'BrienSRCS+= tw.decls.h tw.h tw.help.c tw.init.c tw.parse.c tw.spell.c \ 36325c70b7SDavid E. O'Brien tw.comp.c tw.color.c 37325c70b7SDavid E. O'BrienSRCS+= ed.chared.c ed.decls.h ed.defns.c ed.h ed.init.c ed.inputl.c \ 38325c70b7SDavid E. O'Brien ed.refresh.c ed.screen.c ed.xmap.c ed.term.c ed.term.h 39325c70b7SDavid E. O'BrienSRCS+= tc.alloc.c tc.bind.c tc.const.c tc.decls.h tc.disc.c \ 40099f08ceSMark Peek tc.func.c tc.nls.c tc.os.c tc.os.h tc.printf.c tc.prompt.c \ 41325c70b7SDavid E. O'Brien tc.sched.c tc.sig.c tc.sig.h tc.str.c sh.types.h tc.vers.c tc.wait.h \ 42325c70b7SDavid E. O'Brien tc.who.c tc.h 4319d2e3deSDmitry ChaginSRCS+= dotlock.c dotlock.h 44e754e5f3SAndrey A. ChernovGENHDRS= ed.defns.h sh.err.h tc.const.h tc.defs.c 45d94edef5SBruce EvansSRCS+= ${GENHDRS} 464b88c807SRodney W. Grimes 4754e00925SJoseph KoshyMLINKS= csh.1 tcsh.1 48c644db6aSSheldon Hearn# MLINKS for Shell built in commands for which there are no userland 49c644db6aSSheldon Hearn# utilities of the same name are handled with the associated manpage, 50c644db6aSSheldon Hearn# builtin.1 in share/man/man1/. 51c644db6aSSheldon Hearn 5212cd1730SBaptiste DaroussinLIBADD= termcapw crypt 534b88c807SRodney W. Grimes 541da0bddbSBrad DavisLINKS= ${BINDIR}/csh ${BINDIR}/tcsh 5577f2a34fSDavid E. O'Brien 56e754e5f3SAndrey A. ChernovCLEANFILES= ${GENHDRS} gethost csh.1 57d94edef5SBruce Evans 58e1fe3dbaSRuslan Ermilov.if ${MK_EXAMPLES} != "no" 5990e0035cSMark PeekFILESDIR= ${SHAREDIR}/examples/tcsh 6090e0035cSMark PeekFILES= complete.tcsh csh-mode.el 61670f8414SPoul-Henning Kamp.endif 6290e0035cSMark Peek 63e4b59b10SHajimu UMEMOTOCATALOGS= et:et_EE.UTF-8 \ 64e4b59b10SHajimu UMEMOTO finnish:fi_FI.UTF-8 \ 65e4b59b10SHajimu UMEMOTO french:fr_FR.UTF-8 \ 66e4b59b10SHajimu UMEMOTO german:de_DE.UTF-8 \ 67e4b59b10SHajimu UMEMOTO greek:el_GR.UTF-8 \ 68e4b59b10SHajimu UMEMOTO italian:it_IT.UTF-8 \ 69e4b59b10SHajimu UMEMOTO ja:ja_JP.UTF-8 \ 70e4b59b10SHajimu UMEMOTO russian:ru_RU.UTF-8 \ 71e4b59b10SHajimu UMEMOTO spanish:es_ES.UTF-8 \ 72e4b59b10SHajimu UMEMOTO ukrainian:uk_UA.UTF-8 738479adc1SRuslan Ermilov 74f408f604SBryan DreweryNLSLINKS_de_DE.UTF-8 = de_AT.UTF-8 de_CH.UTF-8 75e4b59b10SHajimu UMEMOTONLSLINKS_fr_FR.UTF-8 = fr_BE.UTF-8 fr_CA.UTF-8 fr_CH.UTF-8 76e4b59b10SHajimu UMEMOTONLSLINKS_it_IT.UTF-8 = it_CH.UTF-8 778479adc1SRuslan Ermilov 78e1fe3dbaSRuslan Ermilov.if ${MK_NLS_CATALOGS} == "no" || defined(RESCUE) 79f45c0422SHajimu UMEMOTOCFLAGS+= -DNO_NLS_CATALOGS 80f45c0422SHajimu UMEMOTO.else 81f45c0422SHajimu UMEMOTOCFLAGS+= -DHAVE_ICONV 8235bb448cSHajimu UMEMOTO.if ${MK_ICONV} != "no" 83e4b59b10SHajimu UMEMOTONLSLINKS_de_DE.UTF-8 += de_AT.ISO8859-1 de_AT.ISO8859-15 de_CH.ISO8859-1 \ 84e4b59b10SHajimu UMEMOTO de_CH.ISO8859-15 de_DE.ISO8859-1 de_DE.ISO8859-15 85e4b59b10SHajimu UMEMOTONLSLINKS_el_GR.UTF-8 = el_GR.ISO8859-7 86e4b59b10SHajimu UMEMOTONLSLINKS_es_ES.UTF-8 = es_ES.ISO8859-1 es_ES.ISO8859-15 87e4b59b10SHajimu UMEMOTONLSLINKS_et_EE.UTF-8 = et_EE.ISO8859-15 88e4b59b10SHajimu UMEMOTONLSLINKS_fi_FI.UTF-8 = fi_FI.ISO8859-1 fi_FI.ISO8859-15 89e4b59b10SHajimu UMEMOTONLSLINKS_fr_FR.UTF-8 += fr_BE.ISO8859-1 fr_BE.ISO8859-15 \ 90e4b59b10SHajimu UMEMOTO fr_CA.ISO8859-1 fr_CA.ISO8859-15 fr_CH.ISO8859-1 \ 91e4b59b10SHajimu UMEMOTO fr_CH.ISO8859-15 fr_FR.ISO8859-1 fr_FR.ISO8859-15 92e4b59b10SHajimu UMEMOTONLSLINKS_it_IT.UTF-8 += it_CH.ISO8859-1 it_CH.ISO8859-15 it_IT.ISO8859-1 \ 93e4b59b10SHajimu UMEMOTO it_IT.ISO8859-15 94e4b59b10SHajimu UMEMOTONLSLINKS_ja_JP.UTF-8 = ja_JP.SJIS ja_JP.eucJP 95e4b59b10SHajimu UMEMOTONLSLINKS_ru_RU.UTF-8 = ru_RU.CP1251 ru_RU.CP866 ru_RU.ISO8859-5 ru_RU.KOI8-R 96e4b59b10SHajimu UMEMOTONLSLINKS_uk_UA.UTF-8 = uk_UA.ISO8859-5 uk_UA.KOI8-U 9735bb448cSHajimu UMEMOTO.else 9835bb448cSHajimu UMEMOTO# Above links can be installed from ports/shells/tcsh_nls 9935bb448cSHajimu UMEMOTO 10035bb448cSHajimu UMEMOTOGENHDRS+= iconv.h 101f45c0422SHajimu UMEMOTOSRCS+= iconv_stub.c 10235bb448cSHajimu UMEMOTO 10335bb448cSHajimu UMEMOTOiconv.h: ${.CURDIR}/iconv_stub.h 1047a37b5fcSWill Andrews ${CP} ${.CURDIR}/iconv_stub.h ${.TARGET} 10535bb448cSHajimu UMEMOTO.endif 106f45c0422SHajimu UMEMOTO.endif 107f45c0422SHajimu UMEMOTO 1088479adc1SRuslan ErmilovNLSNAME= tcsh 1098479adc1SRuslan Ermilov 1108479adc1SRuslan Ermilov.for catalog in ${CATALOGS} 1118479adc1SRuslan ErmilovNLS+= ${catalog:C/.*://} 1128479adc1SRuslan ErmilovNLSSRCDIR_${catalog:C/.*://}= ${TCSHDIR}/nls/${catalog:C/:.*//} 113f45c0422SHajimu UMEMOTONLSSRCFILES_${catalog:C/.*://}!= cd ${NLSSRCDIR_${catalog:C/.*://}}; echo charset set[0-9]* 1148479adc1SRuslan Ermilov.endfor 1158479adc1SRuslan Ermilov 116325c70b7SDavid E. O'Briencsh.1: tcsh.man 1173a624f5eSJun Kuriyama cat ${.ALLSRC} > ${.TARGET} 1184b88c807SRodney W. Grimes 1198fe4f8f7SSimon J. Gerraty.if ${MACHINE} == "host" || ${MK_DIRDEPS_BUILD} == "no" 120bdc45483SAndrey A. Chernovbuild-tools: gethost 1218fe4f8f7SSimon J. Gerratytc.defs.c: gethost 122bdc45483SAndrey A. Chernov 123c63c5ab0SBryan DreweryDEPENDOBJS+= gethost 124*ed8b456fSEd Mastegethost: gethost.c sh.err.h sh.h ${BUILD_TOOLS_META} 125e754e5f3SAndrey A. Chernov @rm -f ${.TARGET} 126*ed8b456fSEd Maste # Define _h_tc_const so that tc.h will skip including tc.const.h. 127*ed8b456fSEd Maste # gethost.c does not actually require any of the definitions in there, 128*ed8b456fSEd Maste # and building tc.const.h requires target headers which are not 129*ed8b456fSEd Maste # available when we need to build gethost. 130a6d8dcb0SStephen J. Kiernan ${HOST_CC:N${CCACHE_BIN}} -o gethost ${LDFLAGS} ${CFLAGS:C/-DHAVE_ICONV//} \ 131*ed8b456fSEd Maste -D_h_tc_const \ 13235bb448cSHajimu UMEMOTO ${TCSHDIR}/gethost.c 1338fe4f8f7SSimon J. Gerraty.endif 134e754e5f3SAndrey A. Chernov 1358fe4f8f7SSimon J. Gerratytc.defs.c: ${TCSHDIR}/host.defs 136e754e5f3SAndrey A. Chernov @rm -f ${.TARGET} 137e754e5f3SAndrey A. Chernov @echo "/* Do not edit this file, make creates it */" > ${.TARGET} 13829df9f6bSBryan Drewery ${BTOOLSPATH:U.}/gethost ${TCSHDIR}/host.defs >> ${.TARGET} 139e754e5f3SAndrey A. Chernov 140325c70b7SDavid E. O'Briened.defns.h: ed.defns.c 141380fdd7dSSteve Price @rm -f ${.TARGET} 142380fdd7dSSteve Price @echo '/* Do not edit this file, make creates it. */' > ${.TARGET} 143325c70b7SDavid E. O'Brien @echo '#ifndef _h_ed_defns' >> ${.TARGET} 144325c70b7SDavid E. O'Brien @echo '#define _h_ed_defns' >> ${.TARGET} 145325c70b7SDavid E. O'Brien grep '[FV]_' ${TCSHDIR}/ed.defns.c | grep '^#define' >> ${.TARGET} 146325c70b7SDavid E. O'Brien @echo '#endif /* _h_ed_defns */' >> ${.TARGET} 147325c70b7SDavid E. O'Brien 148325c70b7SDavid E. O'Briensh.err.h: sh.err.c 149325c70b7SDavid E. O'Brien @rm -f ${.TARGET} 150325c70b7SDavid E. O'Brien @echo '/* Do not edit this file, make creates it. */' > ${.TARGET} 151325c70b7SDavid E. O'Brien @echo '#ifndef _h_sh_err' >> ${.TARGET} 152325c70b7SDavid E. O'Brien @echo '#define _h_sh_err' >> ${.TARGET} 153e754e5f3SAndrey A. Chernov grep 'ERR_' ${.ALLSRC} | grep '^#define' >> ${.TARGET} 154325c70b7SDavid E. O'Brien @echo '#endif /* _h_sh_err */' >> ${.TARGET} 1554b88c807SRodney W. Grimes 15645e1479fSBryan Drewerytc.const.h: tc.const.c sh.char.h config.h config_f.h sh.types.h sh.err.h ${BUILD_TOOLS_META} 157242fa23cSSteve Price @rm -f ${.TARGET} 158242fa23cSSteve Price @echo '/* Do not edit this file, make creates it. */' > ${.TARGET} 159325c70b7SDavid E. O'Brien @echo '#ifndef _h_tc_const' >> ${.TARGET} 160325c70b7SDavid E. O'Brien @echo '#define _h_tc_const' >> ${.TARGET} 16146a0387aSBryan Drewery ${CC:N${CCACHE_BIN}} -E ${CFLAGS:C/-DHAVE_ICONV//} ${.ALLSRC} -D_h_tc_const | \ 16235bb448cSHajimu UMEMOTO grep 'Char STR' | \ 1634b88c807SRodney W. Grimes sed -e 's/Char \([a-zA-Z0-9_]*\)\(.*\)/extern Char \1[];/' | \ 164242fa23cSSteve Price sort >> ${.TARGET} 165325c70b7SDavid E. O'Brien @echo '#endif /* _h_tc_const */' >> ${.TARGET} 1664b88c807SRodney W. Grimes 1674b88c807SRodney W. Grimes.include <bsd.prog.mk> 168