Makefile revision 19310
1#
2# $Id$
3#
4# This has most of the glue needed to compile tknvi and the perl hooks,
5# but not all.
6#
7
8SRCDIR=		${.CURDIR}/../../contrib/nvi
9
10TCLINTERP=	yes	#fine, in base tree, little cost
11#TKNVI=		tknvi	#not ready, needs X11, tk
12#PERLINTERP=	no	#not ready, needs perl5.002+
13
14#if using ncurses:
15CFLAGS+=	-DSYSV_CURSES
16
17VI=	nvi
18EX=	nex
19VIEW=	nview
20
21PROG=	nvi
22
23LINKS=	${BINDIR}/${VI} ${BINDIR}/${EX} ${BINDIR}/${VI} ${BINDIR}/${VIEW}
24LINKS+= ${BINDIR}/${VI} ${BINDIR}/vi ${BINDIR}/${EX} ${BINDIR}/ex
25LINKS+= ${BINDIR}/${VI} ${BINDIR}/view
26
27MAN1=	${SRCDIR}/docs/USD.doc/vi.man/vi.1
28MLINKS+=vi.1 ex.1 vi.1 view.1
29MLINKS+=vi.1 nex.1 vi.1 nview.1 vi.1 nvi.1
30
31CATALOGS= dutch english french german ru_SU.KOI8-R spanish swedish
32
33.PATH:	${SRCDIR}/common
34.PATH:	${SRCDIR}/ex
35.PATH:	${SRCDIR}/cl
36.PATH:	${SRCDIR}/vi
37
38CFLAGS+=-I${.CURDIR} -I${SRCDIR} -I${SRCDIR}/include
39
40DPADD+= ${LIBCURSES} ${LIBTERMCAP}
41LDADD+=	-lcurses -ltermcap
42
43.if defined(TKNVI)
44.PATH:	${SRCDIR}/tk
45#DPADD+=	?
46#LDADD+=	-ltk
47.endif
48
49.if defined(TCLINTERP)
50.PATH:	${SRCDIR}/tcl_api
51DPADD+=	${LIBTCL} ${LIBM}
52LDADD+=	-ltcl -lm
53.endif
54
55.if defined(PERLINTERP)
56.PATH:	${SRCDIR}/perl_api
57#DPADD+=	?
58#LDADD+=	?
59.endif
60
61CLEANFILES+=${EX}
62
63# Vi curses sources
64SRCS+=	cl_bsd.c cl_funcs.c cl_main.c cl_read.c cl_screen.c cl_term.c
65
66# Vi Tk sources
67.if defined(TKNVI)
68SRCS+=	tk_funcs.c tk_main.c tk_read.c tk_screen.c tk_term.c tk_util.c
69.endif
70
71# Vi Tcl/Perl interpreter sources
72.if defined(TCLINTERP) || defined(PERLINTERP)
73SRCS+=	api.c
74.endif
75.if defined(TCLINTERP)
76SRCS+=	tcl.c
77.endif
78.if defined(PERLINTERP)
79# perl.c is generated
80SRCS+=	perl.c perlsfio.c
81.endif
82
83# General sources.
84SRCS+=	cut.c delete.c exf.c key.c line.c log.c main.c mark.c msg.c options.c \
85	options_f.c put.c screen.c search.c seq.c recover.c util.c
86
87# Ex source.
88SRCS+=	ex.c ex_abbrev.c ex_append.c ex_args.c ex_argv.c ex_at.c ex_bang.c \
89	ex_cd.c ex_cmd.c ex_cscope.c ex_delete.c ex_display.c \
90	ex_edit.c ex_equal.c ex_file.c ex_filter.c ex_global.c \
91	ex_init.c ex_join.c ex_map.c ex_mark.c ex_mkexrc.c ex_move.c \
92	ex_open.c ex_perl.c ex_preserve.c ex_print.c ex_put.c ex_quit.c \
93	ex_read.c ex_screen.c ex_script.c ex_set.c ex_shell.c \
94	ex_shift.c ex_source.c ex_stop.c ex_subst.c ex_tag.c ex_tcl.c \
95	ex_txt.c ex_undo.c ex_usage.c ex_util.c ex_version.c ex_visual.c \
96	ex_write.c ex_yank.c ex_z.c
97
98# Vi source.
99SRCS+=	getc.c v_at.c v_ch.c v_cmd.c v_delete.c v_ex.c v_increment.c v_init.c \
100	v_itxt.c v_left.c v_mark.c v_match.c v_paragraph.c v_put.c v_redraw.c \
101	v_replace.c v_right.c v_screen.c v_scroll.c v_search.c v_section.c \
102	v_sentence.c v_status.c v_txt.c v_ulcase.c v_undo.c \
103	v_util.c v_word.c v_xchar.c v_yank.c v_z.c v_zexit.c vi.c
104
105# Vi screen source.
106SRCS+=	vs_line.c vs_msg.c vs_refresh.c vs_relative.c vs_smap.c vs_split.c
107
108# Generate perl.c
109.if defined(PERLINTERP)
110perl.c:	perl.xs typemap
111	echo "#define _PATH_PERLSCRIPTS \"/usr/share/vi/perl\"" > $@
112	$(PERL) $(PERLLIB)/ExtUtils/xsubpp -typemap \
113	    $(PERLLIB)/ExtUtils/typemap $(SRCDIR)/perl_api/perl.xs >> $@
114	($(PERL) -ne 'print "sub $$1 {\$$curscr->$$1(\@_)}\n" \
115	    if /newXS\("VI::([^":]*)"/;' $@ ; echo "1;") > VI.pm
116
117CLEANFILES+=	VI.pm perl.c
118.endif
119
120afterinstall:
121	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
122		${CATALOGS:S;^;${SRCDIR}/catalog/;} \
123		${DESTDIR}/usr/share/vi/catalog
124.if defined(PERLINTERP)
125	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
126		${SRCDIR}/perl_scripts/*.pl VI.pm \
127		${DESTDIR}/usr/share/vi/perl
128.endif
129.if defined(TCLINTERP)
130	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 \
131		${SRCDIR}/tcl_scripts/*.tcl \
132		${DESTDIR}/usr/share/vi/tcl
133.endif
134
135.include <bsd.prog.mk>
136