Home | History | Annotate | Line # | Download | only in nvi
      1 #	$NetBSD: Makefile,v 1.25 2021/02/26 02:54:21 rin Exp $
      2 
      3 .include <bsd.own.mk>
      4 
      5 USE_WIDECHAR?=yes
      6 
      7 .if ${USE_WIDECHAR} == "yes"
      8 USE_BUILTIN_REGEX?=yes	# Although our regex supports widechar nvi requires
      9 			# a non-standard API
     10 .else
     11 USE_BUILTIN_REGEX?=no
     12 .endif
     13 
     14 WARNS=	5
     15 
     16 COPTS.exf.c+=		-Wno-format-nonliteral
     17 COPTS.msg.c+=		-Wno-format-nonliteral
     18 .if ${USE_WIDECHAR} != "yes"
     19 COPTS.v_increment.c+=	-Wno-format-nonliteral
     20 CWARNFLAGS.gcc+=	-Wno-unused
     21 CWARNFLAGS.clang+=	-Wno-unsequenced
     22 .endif
     23 CWARNFLAGS.clang+=	-Wno-error=string-compare
     24 
     25 CPPFLAGS+=-I${DIST}/include -I${.CURDIR} -I.
     26 CPPFLAGS+=-DGTAGS -DIMCTRL
     27 CPPFLAGS+=-DHAVE_OPENPTY -DHAVE_UTIL_H
     28 CPPFLAGS+=-DHAVE_SIGTIMEDWAIT 
     29 CPPFLAGS+=-DHAVE_MVWCHGAT
     30 
     31 #DBG=-g
     32 #CPPFLAGS+=-DLOGDEBUG -DTRACE
     33 #CPPFLAGS+=-DDBDEBUG -DTRACE
     34 #CPPFLAGS+=-DQUEUEDEBUG
     35 
     36 LDADD+=	-lcurses -lterminfo -lutil
     37 DPADD+=	${LIBCURSES} ${LIBTERMINFO} ${LIBUTIL}
     38 PROG=	vi
     39 SRCS=	api.c cl_bsd.c cl_funcs.c cl_main.c cl_read.c cl_screen.c cl_term.c \
     40 	conv.c cut.c delete.c ex.c ex_abbrev.c ex_append.c \
     41 	ex_args.c ex_argv.c ex_at.c ex_bang.c ex_cd.c ex_cmd.c ex_cscope.c \
     42 	ex_delete.c ex_display.c ex_edit.c ex_equal.c ex_file.c ex_filter.c \
     43 	ex_global.c ex_init.c ex_join.c ex_map.c ex_mark.c ex_mkexrc.c \
     44 	ex_move.c ex_open.c ex_perl.c ex_preserve.c ex_print.c ex_put.c \
     45 	ex_quit.c ex_read.c ex_screen.c ex_script.c ex_set.c ex_shell.c \
     46 	ex_shift.c ex_source.c ex_stop.c ex_subst.c ex_tag.c ex_tcl.c \
     47 	ex_txt.c ex_undo.c ex_usage.c ex_util.c ex_version.c ex_visual.c \
     48 	ex_write.c ex_yank.c ex_z.c exf.c getc.c gs.c \
     49 	key.c trace.c \
     50 	main.c mark.c msg.c nothread.c options.c options_f.c put.c recover.c \
     51 	screen.c search.c seq.c util.c v_at.c v_ch.c v_cmd.c v_delete.c \
     52 	v_event.c v_ex.c v_increment.c v_init.c v_itxt.c v_left.c v_mark.c \
     53 	v_match.c v_paragraph.c v_put.c v_redraw.c v_replace.c v_right.c \
     54 	v_screen.c v_scroll.c v_search.c v_section.c v_sentence.c v_status.c \
     55 	v_txt.c v_ulcase.c v_undo.c v_util.c v_word.c v_xchar.c v_yank.c \
     56 	v_z.c v_zexit.c vi.c vs_line.c vs_msg.c vs_refresh.c \
     57 	vs_relative.c vs_smap.c vs_split.c
     58 
     59 NOTUSED=ip_funcs.c ip_read.c ip_screen.c ip_term.c \
     60 	ip_run.c ip_send.c ip_trans.c ipc_cmd.c ipc_method.c
     61 
     62 # For wide char support
     63 .if ${USE_WIDECHAR} == "yes"
     64 CPPFLAGS+=-DUSE_WIDECHAR
     65 .endif
     66 .if ${USE_BUILTIN_REGEX} == "yes"
     67 SRCS+=	regcomp.c regerror.c regexec.c regfree.c
     68 CPPFLAGS+=-I${DIST}/regex -D__REGEX_PRIVATE
     69 COPTS.regexec.c+= ${${ACTIVE_CC} == "gcc":? -Wno-old-style-definition :}
     70 .endif
     71 
     72 # For db3 db1 emulation
     73 #SRCS+=db1.c log.c vi_db.c
     74 #CPPFLAGS+=-DUSE_DB1
     75 
     76 # For built-in db1 emulation
     77 SRCS+=vi_db1.c log1.c
     78 CPPFLAGS+=-DUSE_BUNDLED_DB
     79 
     80 LINKS=	${BINDIR}/vi ${BINDIR}/ex ${BINDIR}/vi ${BINDIR}/view
     81 MLINKS=	vi.1 ex.1 vi.1 view.1
     82 
     83 DPSRCS+=options_def.h ipc_def.h ex_def.h # ipc_gen.c
     84 CLEANFILES+=options_def.h ipc_def.h ex_def.h # ipc_gen.c
     85 
     86 options_def.h: options.awk options.c
     87 	${_MKTARGET_CREATE}
     88 	${TOOL_AWK} -f ${.ALLSRC} >${.TARGET}
     89 
     90 ex_def.h: ex.awk ex_cmd.c
     91 	${_MKTARGET_CREATE}
     92 	${TOOL_AWK} -f ${.ALLSRC} >${.TARGET}
     93 
     94 ipc_def.h: ipc.awk vipc.awk ipc_cmd.c ip_read.c
     95 	${_MKTARGET_CREATE}
     96 	(${TOOL_AWK} -f ${.ALLSRC:M*/ipc.awk} ${.ALLSRC:M*/ipc_cmd.c} && \
     97 	    ${TOOL_AWK} -f ${.ALLSRC:M*/vipc.awk} ${.ALLSRC:M*/ip_read.c}) > \
     98 	    ${.TARGET}
     99 
    100 .for i in cl common ex ip ipc vi
    101 DPSRCS+=${i}_extern.h
    102 CLEANFILES+=${i}_extern.h
    103 # does not work, DIST isn't set yet here
    104 #_${i}_SRCS != echo ${DIST}/${i}/*.c ${DIST}/${i}/*.xs
    105 ${i}_extern.h: ${SRCS} ${NOTUSED}
    106 	${_MKTARGET_CREATE}
    107 	@${TOOL_SED} -n "s/^ \* PUBLIC: \(.*\)/\1/p" ${.ALLSRC:M${DIST}/$i/*} > ${.TARGET}.tmp
    108 	@if cmp -s ${.TARGET}.tmp ${.TARGET}; then \
    109 		rm -f ${.TARGET}.tmp; \
    110 	else \
    111 		mv -f ${.TARGET}.tmp ${.TARGET}; \
    112 	fi
    113 .endfor
    114 
    115 DPSRCS+=version.h
    116 CLEANFILES+=version.h
    117 version.h:	../../Makefile.inc
    118 	${_MKTARGET_CREATE}
    119 	echo '#define VI_VERSION "(${VERSION})"' > ${.TARGET}
    120 
    121 #ipc_gen.c: vipc.pl ip_read.c
    122 #	${_MKTARGET_CREATE}
    123 #	${TOOL_PERL} -n ${.ALLSRC} > ${.TARGET}
    124 
    125 
    126 .include "${.CURDIR}/../../Makefile.inc"
    127 
    128 .PATH: ${DIST}/vi ${DIST}/ex ${DIST}/cl
    129 .PATH: ${DIST}/common
    130 .PATH: ${DIST}/ipc
    131 .PATH: ${DIST}/ip
    132 .PATH: ${DIST}/regex
    133 .PATH: ${DIST}/docs/vi.man
    134 
    135 .include <bsd.prog.mk>
    136