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