1# $OpenBSD: Makefile,v 1.74 2019/02/13 15:10:40 nicm Exp $ 2 3# Uncomment this to enable tracing in libcurses 4#CURSESTRACE=-DTRACE 5 6# This is used to compile terminal info directly into the library 7FALLBACK_LIST= 8 9# XXX - should be defined elsewhere 10AWK?= /usr/bin/awk 11 12# Search in subdirs 13.PATH: ${.CURDIR}/base ${.CURDIR}/tinfo ${.CURDIR}/trace ${.CURDIR}/tty \ 14 ${.CURDIR}/widechar 15 16LIB= curses 17SRCS= codes.c comp_captab.c expanded.c fallback.c lib_gen.c lib_keyname.c \ 18 names.c unctrl.c 19# base 20SRCS+= define_key.c key_defined.c keybound.c keyok.c legacy_coding.c \ 21 lib_addch.c lib_addstr.c lib_beep.c lib_bkgd.c lib_box.c lib_chgat.c \ 22 lib_clear.c lib_clearok.c lib_clrbot.c lib_clreol.c lib_color.c \ 23 lib_colorset.c lib_delch.c lib_delwin.c lib_dft_fgbg.c lib_echo.c \ 24 lib_endwin.c lib_erase.c lib_flash.c lib_freeall.c lib_getch.c \ 25 lib_getstr.c lib_hline.c lib_immedok.c lib_inchstr.c lib_initscr.c \ 26 lib_insnstr.c lib_insch.c lib_insdel.c lib_instr.c \ 27 lib_isendwin.c lib_leaveok.c lib_mouse.c lib_move.c lib_mvwin.c \ 28 lib_newterm.c lib_newwin.c lib_nl.c lib_overlay.c lib_pad.c \ 29 lib_printw.c lib_redrawln.c lib_refresh.c lib_restart.c \ 30 lib_scanw.c lib_screen.c lib_scroll.c lib_scrollok.c \ 31 lib_scrreg.c lib_set_term.c lib_slk.c lib_slkatr_set.c \ 32 lib_slkatrof.c lib_slkatron.c lib_slkatrset.c lib_slkattr.c \ 33 lib_slkclear.c lib_slkcolor.c lib_slkinit.c lib_slklab.c \ 34 lib_slkrefr.c lib_slkset.c lib_slktouch.c lib_touch.c \ 35 lib_ungetch.c lib_vline.c lib_wattroff.c lib_wattron.c \ 36 lib_winch.c lib_window.c nc_panel.c resizeterm.c safe_sprintf.c \ 37 tries.c use_window.c version.c vsscanf.c wresize.c 38# tinfo 39SRCS+= access.c add_tries.c alloc_entry.c alloc_ttype.c captoinfo.c \ 40 comp_error.c comp_expand.c comp_hash.c comp_parse.c comp_scan.c \ 41 db_iterator.c doalloc.c entries.c free_ttype.c getenv_num.c \ 42 hashed_db.c home_terminfo.c init_keytry.c lib_acs.c lib_baudrate.c \ 43 lib_cur_term.c lib_data.c lib_has_cap.c lib_kernel.c lib_longname.c \ 44 lib_napms.c lib_options.c lib_print.c lib_raw.c lib_setup.c \ 45 lib_termcap.c lib_termname.c lib_tgoto.c lib_ti.c lib_tparm.c \ 46 lib_tputs.c lib_ttyflags.c name_match.c parse_entry.c \ 47 read_entry.c read_termcap.c setbuf.c strings.c \ 48 trim_sgr0.c use_screen.c write_entry.c 49# trace 50SRCS+= lib_trace.c lib_traceatr.c lib_tracebits.c lib_tracechr.c \ 51 lib_tracedmp.c lib_tracemse.c trace_buf.c trace_tries.c trace_xnames.c \ 52 varargs.c visbuf.c 53# tty 54SRCS+= hardscroll.c hashmap.c lib_mvcur.c lib_tstp.c lib_twait.c \ 55 lib_vidattr.c tty_update.c 56# widechar 57SRCS+= charable.c lib_add_wch.c lib_box_set.c lib_cchar.c lib_erasewchar.c \ 58 lib_get_wch.c lib_get_wstr.c lib_hline_set.c lib_in_wch.c \ 59 lib_in_wchnstr.c lib_ins_wch.c lib_inwstr.c lib_key_name.c \ 60 lib_pecho_wchar.c lib_slk_wset.c lib_unget_wch.c lib_vid_attr.c \ 61 lib_vline_set.c lib_wacs.c lib_wunctrl.c 62 63HOSTCFLAGS?= ${CFLAGS} 64HOSTLDFLAGS?= ${LDFLAGS} 65HOSTCFLAGS+= -I. -I${.CURDIR} ${CURSESTRACE} 66CFLAGS+= -I. -I${.CURDIR} ${CURSESTRACE} 67 68MAN= curs_addch.3 curs_addchstr.3 curs_addstr.3 curs_attr.3 \ 69 curs_beep.3 curs_bkgd.3 curs_bkgrnd.3 curs_border.3 curs_border_set.3 \ 70 curs_clear.3 curs_color.3 \ 71 curs_delch.3 curs_deleteln.3 \ 72 curs_extend.3 \ 73 curs_getch.3 curs_getstr.3 curs_getyx.3 \ 74 curs_inch.3 curs_inchstr.3 curs_initscr.3 curs_inopts.3 \ 75 curs_insch.3 curs_insstr.3 curs_instr.3 \ 76 curs_kernel.3 \ 77 curs_legacy.3 \ 78 curs_mouse.3 curs_move.3 \ 79 curs_opaque.3 curs_outopts.3 curs_overlay.3 \ 80 curs_pad.3 curs_print.3 curs_printw.3 \ 81 curs_refresh.3 \ 82 curs_scanw.3 curs_scr_dump.3 curs_scroll.3 curs_slk.3 \ 83 curs_termattrs.3 curs_touch.3 \ 84 curs_util.3 \ 85 curs_window.3 \ 86 curs_add_wch.3 curs_add_wchstr.3 curs_addwstr.3 curs_get_wch.3 \ 87 curs_get_wstr.3 curs_in_wch.3 curs_in_wchstr.3 curs_ins_wch.3 \ 88 curs_ins_wstr.3 curs_inwstr.3 \ 89 default_colors.3 define_key.3 \ 90 key_defined.3 keybound.3 keyok.3 legacy_coding.3 \ 91 curses.3 \ 92 resizeterm.3 \ 93 term.5 term.7 termcap.3 terminfo.3 terminfo.5 \ 94 wresize.3 95 96GENERATED= init_keytry.h codes.c comp_captab.c expanded.c fallback.c \ 97 keys.list lib_gen.c lib_keyname.c names.c unctrl.c make_hash make_keys 98CLEANFILES+= ${GENERATED} 99 100BUILDFIRST = ${GENERATED} 101 102includes: 103 @cmp -s ${DESTDIR}/usr/include/ncurses.h ${.CURDIR}/curses.h || \ 104 ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) \ 105 ${.CURDIR}/curses.h ${DESTDIR}/usr/include/ncurses.h 106 @cd ${.CURDIR}; for i in unctrl.h term.h termcap.h; do \ 107 cmp -s $$i ${DESTDIR}/usr/include/$$i || \ 108 ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \ 109 ${DESTDIR}/usr/include; done 110 111keys.list: ${.CURDIR}/tinfo/MKkeys_list.sh 112 sh ${.CURDIR}/tinfo/MKkeys_list.sh ${.CURDIR}/Caps | sort > ${.TARGET} 113 114fallback.c: ${.CURDIR}/tinfo/MKfallback.sh 115 sh ${.CURDIR}/tinfo/MKfallback.sh $(FALLBACK_LIST) > ${.TARGET} 116 117lib_gen.c: ${.CURDIR}/base/MKlib_gen.sh 118 sh ${.CURDIR}/base/MKlib_gen.sh "${CC} -E -P -I${.CURDIR}" \ 119 "${AWK}" generated < ${.CURDIR}/curses.h > lib_gen.c 120 121init_keytry.h: make_keys keys.list 122 ./make_keys keys.list > ${.TARGET} 123 124make_keys: ${.CURDIR}/tinfo/make_keys.c ${.CURDIR}/curses.priv.h names.c 125 ${HOSTCC} ${LDSTATIC} ${HOSTCFLAGS} ${HOSTLDFLAGS} \ 126 -o ${.TARGET} ${.CURDIR}/tinfo/make_keys.c ${LDADD} 127 128make_hash: ${.CURDIR}/tinfo/comp_hash.c ${.CURDIR}/curses.priv.h \ 129 ${.CURDIR}/hashsize.h 130 ${HOSTCC} ${LDSTATIC} ${HOSTCFLAGS} -DMAIN_PROGRAM ${HOSTLDFLAGS} \ 131 -o ${.TARGET} ${.CURDIR}/tinfo/comp_hash.c ${LDADD} 132 133expanded.c: ${.CURDIR}/term.h ${.CURDIR}/curses.priv.h \ 134 ${.CURDIR}/ncurses_cfg.h ${.CURDIR}/tty/MKexpanded.sh 135 sh ${.CURDIR}/tty/MKexpanded.sh "${CC} -E -P" ${CPPFLAGS} > ${.TARGET} 136 137comp_captab.c: make_hash 138 sh ${.CURDIR}/tinfo/MKcaptab.sh ${AWK} 1 \ 139 ${.CURDIR}/tinfo/MKcaptab.awk ${.CURDIR}/Caps > ${.TARGET} 140 141lib_keyname.c: keys.list ${.CURDIR}/base/MKkeyname.awk 142 ${AWK} -f ${.CURDIR}/base/MKkeyname.awk bigstrings=1 \ 143 keys.list > ${.TARGET} 144 145names.c: ${.CURDIR}/tinfo/MKnames.awk 146 ${AWK} -f ${.CURDIR}/tinfo/MKnames.awk \ 147 ${.CURDIR}/Caps > names.c 148codes.c: ${.CURDIR}/tinfo/MKcodes.awk 149 ${AWK} -f ${.CURDIR}/tinfo/MKcodes.awk \ 150 bigstrings=1 ${.CURDIR}/Caps > codes.c 151 152unctrl.c: ${.CURDIR}/base/MKunctrl.awk 153 echo | ${AWK} -f ${.CURDIR}/base/MKunctrl.awk bigstrings=1 > ${.TARGET} 154 155.include <bsd.own.mk> 156 157# Link libtermlib, libtermcap to libcurses so we don't break people's Makefiles 158afterinstall: 159 -cd ${DESTDIR}${LIBDIR}; \ 160 for i in ${_LIBS}; do \ 161 ln -f $$i `echo $$i | sed 's/curses/termlib/'`; \ 162 ln -f $$i `echo $$i | sed 's/curses/termcap/'`; \ 163 ln -f $$i `echo $$i | sed 's/curses/ncurses/'`; \ 164 ln -f $$i `echo $$i | sed 's/curses/ncursesw/'`; \ 165 done 166 167.include <bsd.lib.mk> 168