Fix default target architecture.
[dragonfly.git] / usr.bin / vi / Makefile
blob1eb7fe2dc5b004cb0559878c726a64dc306cff85
2 # $FreeBSD: src/usr.bin/vi/Makefile,v 1.27.2.7 2002/08/07 16:32:01 ru Exp $
3 # $DragonFly: src/usr.bin/vi/Makefile,v 1.5 2006/06/24 00:04:18 sephe Exp $
5 # This has most of the glue needed to compile tknvi and the perl hooks,
6 # but not all.
9 SRCDIR= ${.CURDIR}/../../contrib/nvi
10 CONTRIBDIR= ${SRCDIR}
12 .if defined(RELEASE_CRUNCH)
13 # When building `vi' for the fixit floppy, don't include any of the
14 # API stuff.
15 APISTUFF= ex_notcl.c ex_noperl.c
17 .else
19 #TCLINTERP= yes #we don't have it in the base tree
20 #TKNVI= yes #not ready, needs X11, tk, doesn't quite work yet
21 #PERLINTERP= yes #works if perl has no thread support built in
23 APISTUFF= ex_tcl.c ex_perl.c
25 .if defined(PERLINTERP)
26 PERL?= /usr/bin/perl5
27 CFLAGS+= -DHAVE_PERL_5_003_01 # If perl >= 5.03.01
28 .endif
30 .endif
32 CFLAGS+= -DGTAGS
34 #if using ncurses:
35 CFLAGS+= -DSYSV_CURSES
37 VI= nvi
38 EX= nex
39 VIEW= nview
41 PROG= nvi
43 LINKS= ${BINDIR}/${VI} ${BINDIR}/${EX} ${BINDIR}/${VI} ${BINDIR}/${VIEW}
44 LINKS+= ${BINDIR}/${VI} ${BINDIR}/vi ${BINDIR}/${EX} ${BINDIR}/ex
45 LINKS+= ${BINDIR}/${VI} ${BINDIR}/view
47 MAN= ${SRCDIR}/docs/USD.doc/vi.man/vi.1
48 MLINKS+=vi.1 ex.1 vi.1 view.1
49 MLINKS+=vi.1 nex.1 vi.1 nview.1 vi.1 nvi.1
51 CATALOGS= dutch english french german polish ru_SU.KOI8-R spanish swedish \
52 uk_UA.KOI8-U
53 NLLINKS= nl_NL
54 ENLINKS= en_AU en_CA en_GB en_US
55 FRLINKS= fr_BE fr_CA fr_CH fr_FR
56 DELINKS= de_AT de_CH de_DE
57 ESLINKS= es_ES
58 SVLINKS= sv_SE
59 PLLINKS= pl_PL
61 .PATH: ${SRCDIR}/common
62 .PATH: ${SRCDIR}/ex
63 .PATH: ${SRCDIR}/cl
64 .PATH: ${SRCDIR}/vi
66 CFLAGS+=-I${.CURDIR} -I${SRCDIR} -I${SRCDIR}/include -I${SRCDIR}/vi
68 .if !defined(TKNVI)
69 DPADD+= ${LIBNCURSES}
70 LDADD+= -lncurses
72 .else
74 .PATH: ${SRCDIR}/tk
75 LDADD+= -L/usr/local/lib -L/usr/X11R6/lib -ltk41 -lX11
76 CFLAGS+= -I/usr/local/include -I/usr/X11R6/include
77 .endif
79 .if defined(TCLINTERP)
80 .PATH: ${SRCDIR}/tcl_api
81 DPADD+= ${LIBTCL} ${LIBM}
82 LDADD+= -ltcl -lm
83 CFLAGS+= -DHAVE_TCL_INTERP -I${DESTDIR}/usr/include/tcl
84 .endif
86 .if defined(PERLINTERP)
87 .PATH: ${SRCDIR}/perl_api
89 # Perl "knows" how to compile its components. Ask it for details...
90 PERLLIB!= ${PERL} -MConfig -e 'print $$Config{privlib}'
91 PERLCPPFLAGS!= cd ${SRCDIR}/build; ${PERL} -MExtUtils::Embed -e 'ccflags;perl_inc'
92 PERLLIBS!= cd ${SRCDIR}/build; ${PERL} -MExtUtils::Embed -e 'ldopts'
93 PERLLDFLAGS!= cd ${SRCDIR}/build; ${PERL} -MExtUtils::Embed -e 'ccdlflags'
95 LDADD+= ${PERLLDFLAGS} ${PERLLIBS}
96 CFLAGS+= -DHAVE_PERL_INTERP ${PERLCPPFLAGS}
98 .endif
100 CLEANFILES+=${EX}
102 # Vi curses sources
103 .if !defined(TKNVI)
104 SRCS+= cl_bsd.c cl_funcs.c cl_main.c cl_read.c cl_screen.c cl_term.c
105 .endif
107 # Vi Tk sources
108 .if defined(TKNVI)
109 SRCS+= tk_funcs.c tk_main.c tk_read.c tk_screen.c tk_term.c tk_util.c
110 .endif
112 # Vi Tcl/Perl interpreter sources
113 .if defined(TCLINTERP) || defined(PERLINTERP)
114 SRCS+= api.c
115 .endif
116 .if defined(TCLINTERP)
117 SRCS+= tcl.c
118 .endif
119 .if defined(PERLINTERP)
120 # perl.c is generated
121 SRCS+= perl.c perlsfio.c
122 .endif
124 # General sources.
125 SRCS+= cut.c delete.c exf.c key.c line.c log.c main.c mark.c msg.c options.c \
126 options_f.c put.c screen.c search.c seq.c recover.c util.c
128 # Ex source.
129 SRCS+= ex.c ex_abbrev.c ex_append.c ex_args.c ex_argv.c ex_at.c ex_bang.c \
130 ex_cd.c ex_cmd.c ex_cscope.c ex_delete.c ex_display.c \
131 ex_edit.c ex_equal.c ex_file.c ex_filter.c ex_global.c \
132 ex_init.c ex_join.c ex_map.c ex_mark.c ex_mkexrc.c ex_move.c \
133 ex_open.c ex_preserve.c ex_print.c ex_put.c ex_quit.c \
134 ex_read.c ex_screen.c ex_script.c ex_set.c ex_shell.c \
135 ex_shift.c ex_source.c ex_stop.c ex_subst.c ex_tag.c \
136 ex_txt.c ex_undo.c ex_usage.c ex_util.c ex_version.c ex_visual.c \
137 ex_write.c ex_yank.c ex_z.c ${APISTUFF}
139 # Vi source.
140 SRCS+= getc.c v_at.c v_ch.c v_cmd.c v_delete.c v_ex.c v_increment.c v_init.c \
141 v_itxt.c v_left.c v_mark.c v_match.c v_paragraph.c v_put.c v_redraw.c \
142 v_replace.c v_right.c v_screen.c v_scroll.c v_search.c v_section.c \
143 v_sentence.c v_status.c v_txt.c v_ulcase.c v_undo.c \
144 v_util.c v_word.c v_xchar.c v_yank.c v_z.c v_zexit.c vi.c
146 # Vi screen source.
147 SRCS+= vs_line.c vs_msg.c vs_refresh.c vs_relative.c vs_smap.c vs_split.c
149 # Generate perl.c
150 .if defined(PERLINTERP)
151 perl.c: perl.xs typemap
152 echo "#define _PATH_PERLSCRIPTS \"/usr/share/vi/perl\"" > ${.TARGET}
153 $(PERL) $(PERLLIB)/ExtUtils/xsubpp -typemap \
154 $(PERLLIB)/ExtUtils/typemap $(SRCDIR)/perl_api/perl.xs >> ${.TARGET}
155 ($(PERL) -ne 'print "sub $$1 {\$$curscr->$$1(\@_)}\n" \
156 if /newXS\("VI::([^":]*)"/;' $@ ; echo "1;") > VI.pm
158 CLEANFILES+= VI.pm perl.c
159 .endif
161 # unifdef has some *weird* exit codes, sigh! RTFM unifdef(1)...
162 ex_notcl.c: ex_tcl.c
163 -unifdef -UHAVE_TCL_INTERP ${SRCDIR}/ex/ex_tcl.c > ${.TARGET}
165 ex_noperl.c: ex_perl.c
166 -unifdef -UHAVE_PERL_INTERP ${SRCDIR}/ex/ex_perl.c > ${.TARGET}
168 v_ex.c: ${CONTRIBDIR}/vi/v_ex.c ${.CURDIR}/patches/v_ex.c.patch
169 patch -o ${.TARGET} -i ${.ALLSRC:M*.patch} ${CONTRIBDIR}/vi/${.TARGET}
171 ex_write.c: ${CONTRIBDIR}/ex/ex_write.c ${.CURDIR}/patches/ex_write.c.patch
172 patch -o ${.TARGET} -i ${.ALLSRC:M*.patch} ${CONTRIBDIR}/ex/${.TARGET}
174 CLEANFILES+= ex_notcl.c ex_noperl.c
176 afterinstall:
177 ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
178 ${CATALOGS:S;^;${SRCDIR}/catalog/;} \
179 ${DESTDIR}/usr/share/vi/catalog
180 for l in ${NLLINKS}; do \
181 ${LN} -fs dutch ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-1; \
182 ${LN} -fs dutch ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
183 ${LN} -fs dutch ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-15; \
184 ${LN} -fs dutch ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-15; \
185 done
186 for l in ${ENLINKS}; do \
187 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-1; \
188 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
189 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-15; \
190 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-15; \
191 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/$$l.US-ASCII; \
192 done
193 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/en_US.US-ASCII
194 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/US-ASCII
195 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/ASCII
196 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/POSIX
197 ${LN} -fs english ${DESTDIR}/usr/share/vi/catalog/C
198 for l in ${FRLINKS}; do \
199 ${LN} -fs french ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-1; \
200 ${LN} -fs french ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
201 ${LN} -fs french ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-15; \
202 ${LN} -fs french ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-15; \
203 done
204 for l in ${DELINKS}; do \
205 ${LN} -fs german ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-1; \
206 ${LN} -fs german ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
207 ${LN} -fs german ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-15; \
208 ${LN} -fs german ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-15; \
209 done
210 for l in ${ESLINKS}; do \
211 ${LN} -fs spanish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-1; \
212 ${LN} -fs spanish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
213 ${LN} -fs spanish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-15; \
214 ${LN} -fs spanish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-15; \
215 done
216 for l in ${SVLINKS}; do \
217 ${LN} -fs swedish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-1; \
218 ${LN} -fs swedish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-1; \
219 ${LN} -fs swedish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-15; \
220 ${LN} -fs swedish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-15; \
221 done
222 for l in ${PLLINKS}; do \
223 ${LN} -fs polish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO8859-2; \
224 ${LN} -fs polish ${DESTDIR}/usr/share/vi/catalog/$$l.ISO_8859-2; \
225 done
226 ${LN} -fs ru_SU.KOI8-R ${DESTDIR}/usr/share/vi/catalog/ru_RU.KOI8-R
227 ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
228 ${SRCDIR}/tcl_scripts/*.tcl \
229 ${DESTDIR}/usr/share/vi/tcl
230 ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
231 ${SRCDIR}/perl_scripts/*.pl \
232 ${DESTDIR}/usr/share/vi/perl
233 .if defined(PERLINTERP)
234 ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 VI.pm \
235 ${DESTDIR}/usr/share/vi/perl
236 .endif
238 .include <bsd.prog.mk>