don't just hard code them into the Makefile. (This is the optional stuff to use perl scripts as a vi scripting language. eg, to load a sample script, type: :perl do 'wc.pl'; this loads /usr/share/vi/perl/wc.pl to add the "wc" command. Then, one can do this: :perl wc Yes, this is a trivial example. There are more useful examples, eg 'make' output parsing along the lines of emacs's "compile" mode. The tcl extension is similar and enabled by default since we ship with tcl.)
199 lines
5.6 KiB
Makefile
199 lines
5.6 KiB
Makefile
#
|
|
# $Id: Makefile,v 1.10 1996/12/08 14:05:08 ache Exp $
|
|
#
|
|
# This has most of the glue needed to compile tknvi and the perl hooks,
|
|
# but not all.
|
|
#
|
|
|
|
SRCDIR= ${.CURDIR}/../../contrib/nvi
|
|
|
|
.if defined(RELEASE_BUILD_FIXIT)
|
|
# When building `vi' for the fixit floppy, don't include any of the
|
|
# API stuff.
|
|
APISTUFF= ex_notcl.c ex_noperl.c
|
|
|
|
.else
|
|
|
|
TCLINTERP= yes #fine, in base tree, little cost
|
|
#TKNVI= yes #not ready, needs X11, tk, doesn't quite work yet
|
|
#PERLINTERP= yes #needs the perl5 v5.003 port
|
|
|
|
APISTUFF= ex_tcl.c ex_perl.c
|
|
|
|
# Any better ideas?
|
|
#PERL= /usr/local/bin/perl5.003
|
|
#CFLAGS+= -DHAVE_PERL_5_003_01 # If perl >= 5.03.01
|
|
|
|
.endif
|
|
|
|
#if using ncurses:
|
|
#CFLAGS+= -DSYSV_CURSES
|
|
|
|
VI= nvi
|
|
EX= nex
|
|
VIEW= nview
|
|
|
|
PROG= nvi
|
|
|
|
LINKS= ${BINDIR}/${VI} ${BINDIR}/${EX} ${BINDIR}/${VI} ${BINDIR}/${VIEW}
|
|
LINKS+= ${BINDIR}/${VI} ${BINDIR}/vi ${BINDIR}/${EX} ${BINDIR}/ex
|
|
LINKS+= ${BINDIR}/${VI} ${BINDIR}/view
|
|
|
|
MAN1= ${SRCDIR}/docs/USD.doc/vi.man/vi.1
|
|
MLINKS+=vi.1 ex.1 vi.1 view.1
|
|
MLINKS+=vi.1 nex.1 vi.1 nview.1 vi.1 nvi.1
|
|
|
|
CATALOGS= dutch english french german ru_SU.KOI8-R spanish swedish
|
|
NLLINKS= nl_NL
|
|
ENLINKS= en_AU en_CA en_GB en_US
|
|
FRLINKS= fr_BE fr_CA fr_CH fr_FR
|
|
DELINKS= de_AT de_CH de_DE
|
|
ESLINKS= es_ES
|
|
SVLINKS= sv_SE
|
|
|
|
.PATH: ${SRCDIR}/common
|
|
.PATH: ${SRCDIR}/ex
|
|
.PATH: ${SRCDIR}/cl
|
|
.PATH: ${SRCDIR}/vi
|
|
|
|
CFLAGS+=-I${.CURDIR} -I${SRCDIR} -I${SRCDIR}/include
|
|
|
|
.if !defined(TKNVI)
|
|
DPADD+= ${LIBCURSES} ${LIBTERMCAP}
|
|
LDADD+= -lcurses -ltermcap
|
|
.endif
|
|
|
|
.if defined(TKNVI)
|
|
.PATH: ${SRCDIR}/tk
|
|
LDADD+= -L/usr/local/lib -L/usr/X11R6/lib -ltk41 -lX11
|
|
CFLAGS+= -I/usr/local/include -I/usr/X11R6/include
|
|
.endif
|
|
|
|
.if defined(TCLINTERP)
|
|
.PATH: ${SRCDIR}/tcl_api
|
|
DPADD+= ${LIBTCL} ${LIBM}
|
|
LDADD+= -ltcl -lm
|
|
CFLAGS+= -DHAVE_TCL_INTERP
|
|
.endif
|
|
|
|
.if defined(PERLINTERP)
|
|
.PATH: ${SRCDIR}/perl_api
|
|
|
|
# Perl "knows" how to compile it's components. Ask it for details...
|
|
PERLLIB!= ${PERL} -MConfig -e 'print $$Config{privlib}'
|
|
PERLCPPFLAGS!= cd ${SRCDIR}/build; ${PERL} -MExtUtils::Embed -e 'ccflags;perl_inc'
|
|
PERLLIBS!= cd ${SRCDIR}/build; ${PERL} -MExtUtils::Embed -e 'ldopts'
|
|
PERLLDFLAGS!= cd ${SRCDIR}/build; ${PERL} -MExtUtils::Embed -e 'ccdlflags'
|
|
|
|
LDADD+= ${PERLLDFLAGS} ${PERLLIBS}
|
|
CFLAGS+= -DHAVE_PERL_INTERP ${PERLCPPFLAGS}
|
|
|
|
.endif
|
|
|
|
CLEANFILES+=${EX}
|
|
|
|
# Vi curses sources
|
|
.if !defined(TKNVI)
|
|
SRCS+= cl_bsd.c cl_funcs.c cl_main.c cl_read.c cl_screen.c cl_term.c
|
|
.endif
|
|
|
|
# Vi Tk sources
|
|
.if defined(TKNVI)
|
|
SRCS+= tk_funcs.c tk_main.c tk_read.c tk_screen.c tk_term.c tk_util.c
|
|
.endif
|
|
|
|
# Vi Tcl/Perl interpreter sources
|
|
.if defined(TCLINTERP) || defined(PERLINTERP)
|
|
SRCS+= api.c
|
|
.endif
|
|
.if defined(TCLINTERP)
|
|
SRCS+= tcl.c
|
|
.endif
|
|
.if defined(PERLINTERP)
|
|
# perl.c is generated
|
|
SRCS+= perl.c perlsfio.c
|
|
.endif
|
|
|
|
# General sources.
|
|
SRCS+= cut.c delete.c exf.c key.c line.c log.c main.c mark.c msg.c options.c \
|
|
options_f.c put.c screen.c search.c seq.c recover.c util.c
|
|
|
|
# Ex source.
|
|
SRCS+= ex.c ex_abbrev.c ex_append.c ex_args.c ex_argv.c ex_at.c ex_bang.c \
|
|
ex_cd.c ex_cmd.c ex_cscope.c ex_delete.c ex_display.c \
|
|
ex_edit.c ex_equal.c ex_file.c ex_filter.c ex_global.c \
|
|
ex_init.c ex_join.c ex_map.c ex_mark.c ex_mkexrc.c ex_move.c \
|
|
ex_open.c ex_preserve.c ex_print.c ex_put.c ex_quit.c \
|
|
ex_read.c ex_screen.c ex_script.c ex_set.c ex_shell.c \
|
|
ex_shift.c ex_source.c ex_stop.c ex_subst.c ex_tag.c \
|
|
ex_txt.c ex_undo.c ex_usage.c ex_util.c ex_version.c ex_visual.c \
|
|
ex_write.c ex_yank.c ex_z.c ${APISTUFF}
|
|
|
|
# Vi source.
|
|
SRCS+= getc.c v_at.c v_ch.c v_cmd.c v_delete.c v_ex.c v_increment.c v_init.c \
|
|
v_itxt.c v_left.c v_mark.c v_match.c v_paragraph.c v_put.c v_redraw.c \
|
|
v_replace.c v_right.c v_screen.c v_scroll.c v_search.c v_section.c \
|
|
v_sentence.c v_status.c v_txt.c v_ulcase.c v_undo.c \
|
|
v_util.c v_word.c v_xchar.c v_yank.c v_z.c v_zexit.c vi.c
|
|
|
|
# Vi screen source.
|
|
SRCS+= vs_line.c vs_msg.c vs_refresh.c vs_relative.c vs_smap.c vs_split.c
|
|
|
|
# Generate perl.c
|
|
.if defined(PERLINTERP)
|
|
perl.c: perl.xs typemap
|
|
echo "#define _PATH_PERLSCRIPTS \"/usr/share/vi/perl\"" > $@
|
|
$(PERL) $(PERLLIB)/ExtUtils/xsubpp -typemap \
|
|
$(PERLLIB)/ExtUtils/typemap $(SRCDIR)/perl_api/perl.xs >> $@
|
|
($(PERL) -ne 'print "sub $$1 {\$$curscr->$$1(\@_)}\n" \
|
|
if /newXS\("VI::([^":]*)"/;' $@ ; echo "1;") > VI.pm
|
|
|
|
CLEANFILES+= VI.pm perl.c
|
|
.endif
|
|
|
|
# unifdef has some *weird* exit codes, sigh! RTFM unifdef(1)...
|
|
ex_notcl.c: ex_tcl.c
|
|
-unifdef -UHAVE_TCL_INTERP ${SRCDIR}/ex/ex_tcl.c > ${.TARGET}
|
|
|
|
ex_noperl.c: ex_perl.c
|
|
-unifdef -UHAVE_PERL_INTERP ${SRCDIR}/ex/ex_perl.c > ${.TARGET}
|
|
|
|
CLEANFILES+= ex_notcl.c ex_noperl.c
|
|
|
|
afterinstall:
|
|
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${CATALOGS:S;^;${SRCDIR}/catalog/;} \
|
|
${DESTDIR}/usr/share/vi/catalog
|
|
for l in ${NLLINKS}; do \
|
|
ln -fs dutch ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
|
|
done
|
|
for l in ${ENLINKS}; do \
|
|
ln -fs english ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
|
|
done
|
|
ln -fs english ${DESTDIR}/usr/share/vi/catalog/us-ascii
|
|
for l in ${FRLINKS}; do \
|
|
ln -fs french ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
|
|
done
|
|
for l in ${DELINKS}; do \
|
|
ln -fs german ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
|
|
done
|
|
for l in ${ESLINKS}; do \
|
|
ln -fs spanish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
|
|
done
|
|
for l in ${SVLINKS}; do \
|
|
ln -fs swedish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
|
|
done
|
|
ln -fs ru_SU.KOI8-R ${DESTDIR}/usr/share/vi/catalog/ru_RU.KOI8-R
|
|
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${SRCDIR}/tcl_scripts/*.tcl \
|
|
${DESTDIR}/usr/share/vi/tcl
|
|
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${SRCDIR}/perl_scripts/*.pl \
|
|
${DESTDIR}/usr/share/vi/perl
|
|
.if defined(PERLINTERP)
|
|
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 VI.pm \
|
|
${DESTDIR}/usr/share/vi/perl
|
|
.endif
|
|
|
|
.include <bsd.prog.mk>
|