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