Makefile revision 169971
1283407Sdchagin# $FreeBSD: head/lib/ncurses/ncurses/Makefile 169971 2007-05-25 02:27:46Z rafan $
2283407Sdchagin
3283407SdchaginSHLIBDIR?=	/lib
4283407Sdchagin
5283407Sdchagin.include <bsd.own.mk>
6283407Sdchagin
7283407Sdchagin.include "${.CURDIR}/../config.mk"
8283407Sdchagin
9283407SdchaginLIB=		ncurses${LIB_SUFFIX}
10283407SdchaginSHLIB_MAJOR=	6
11283407Sdchagin
12283407SdchaginNO_LINT=
13283407Sdchagin
14283407SdchaginNCURSES_MAJOR!=	egrep 'NCURSES_MAJOR[ 	]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%'
15283407SdchaginNCURSES_MINOR!=	egrep 'NCURSES_MINOR[ 	]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%'
16283407SdchaginNCURSES_PATCH!=	egrep 'NCURSES_PATCH[ 	]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%'
17283407Sdchagin
18283407Sdchagin# From autoconf (!)
19283407Sdchagin.if defined(ENABLE_WIDEC)
20283407SdchaginNCURSES_CH_T=		cchar_t
21283407SdchaginNEED_WCHAR_H=		1
22283407Sdchagin.else
23283407SdchaginNCURSES_CH_T=		chtype
24283407SdchaginNEED_WCHAR_H=		0
25283407Sdchagin.endif
26283407SdchaginNCURSES_CONST=		const
27283407SdchaginNCURSES_EXT_COLORS=	0
28283407SdchaginNCURSES_EXT_FUNCS=	1
29283407SdchaginNCURSES_INLINE=		inline
30283407SdchaginNCURSES_LIBUTF8=	0
31283407SdchaginNCURSES_MBSTATE_T=	0
32283407SdchaginNCURSES_MOUSE_VERSION=	1
33283407SdchaginNCURSES_OSPEED=		short
34283407SdchaginNCURSES_SBOOL=		char
35283407SdchaginNCURSES_TPARM_VARARGS=	1
36283407SdchaginNCURSES_WCHAR_T=	0
37283407SdchaginNCURSES_WINT_T=		0
38283407SdchaginNCURSES_XNAMES=		1
39283407SdchaginBROKEN_LINKER=		0
40283407SdchaginBUILTIN_BOOL=		1
41283407SdchaginENABLE_LP64=		0
42283407SdchaginHAVE_TCGETATTR=		1
43283407SdchaginHAVE_TERMIOS_H=		1
44283407SdchaginHAVE_TERMIO_H=		0
45283407SdchaginHAVE_VSSCANF=		1
46283407SdchaginHEADER_STDBOOL=		1
47283407Sdchagin# XXX amd64, ia64 1L and int
48283407SdchaginONEUL=			1UL
49283407SdchaginTYPEOF_CHTYPE=		long
50283407SdchaginTYPEOF_MMASK_T=		long
51283407SdchaginTYPE_OF_BOOL=		unsigned char
52283407SdchaginUSE_CXX_BOOL=		defined(__cplusplus)
53283407Sdchagin
54283407SdchaginGENSRCS=	\
55283407Sdchagin	codes.c \
56283407Sdchagin	expanded.c \
57283407Sdchagin	fallback.c \
58283407Sdchagin	lib_gen.c \
59283407Sdchagin	lib_keyname.c \
60283407Sdchagin	names.c \
61283407Sdchagin	unctrl.c
62283407Sdchagin
63283407SdchaginGENHDRS=	\
64283407Sdchagin	curses.h \
65283407Sdchagin	hashsize.h \
66	init_keytry.h \
67	ncurses_def.h \
68	nomacros.h \
69	parametrized.h \
70	term.h \
71	termcap.h \
72	unctrl.h
73
74SRCS=	${GENHDRS} ${GENSRCS}
75
76.PATH: ${NCURSES_DIR}/ncurses/base
77SRCS+=	\
78	define_key.c \
79	key_defined.c \
80	keybound.c \
81	keyok.c \
82	legacy_coding.c \
83	lib_addch.c \
84	lib_addstr.c \
85	lib_beep.c \
86	lib_bkgd.c \
87	lib_box.c \
88	lib_chgat.c \
89	lib_clear.c \
90	lib_clearok.c \
91	lib_clrbot.c \
92	lib_clreol.c \
93	lib_color.c \
94	lib_colorset.c \
95	lib_delch.c \
96	lib_delwin.c \
97	lib_dft_fgbg.c \
98	lib_echo.c \
99	lib_endwin.c \
100	lib_erase.c \
101	lib_flash.c \
102	lib_freeall.c \
103	lib_getch.c \
104	lib_getstr.c \
105	lib_hline.c \
106	lib_immedok.c \
107	lib_inchstr.c \
108	lib_initscr.c \
109	lib_insch.c \
110	lib_insdel.c \
111	lib_insnstr.c \
112	lib_instr.c \
113	lib_isendwin.c \
114	lib_leaveok.c \
115	lib_mouse.c \
116	lib_move.c \
117	lib_mvwin.c \
118	lib_newterm.c \
119	lib_newwin.c \
120	lib_nl.c \
121	lib_overlay.c \
122	lib_pad.c \
123	lib_printw.c \
124	lib_redrawln.c \
125	lib_refresh.c \
126	lib_restart.c \
127	lib_scanw.c \
128	lib_screen.c \
129	lib_scroll.c \
130	lib_scrollok.c \
131	lib_scrreg.c \
132	lib_set_term.c \
133	lib_slk.c \
134	lib_slkatr_set.c \
135	lib_slkatrof.c \
136	lib_slkatron.c \
137	lib_slkatrset.c \
138	lib_slkattr.c \
139	lib_slkclear.c \
140	lib_slkcolor.c \
141	lib_slkinit.c \
142	lib_slklab.c \
143	lib_slkrefr.c \
144	lib_slkset.c \
145	lib_slktouch.c \
146	lib_touch.c \
147	lib_ungetch.c \
148	lib_vline.c \
149	lib_wattroff.c \
150	lib_wattron.c \
151	lib_winch.c \
152	lib_window.c \
153	memmove.c \
154	nc_panel.c \
155	resizeterm.c \
156	safe_sprintf.c \
157	tries.c \
158	version.c \
159	vsscanf.c \
160	wresize.c
161
162.PATH: ${NCURSES_DIR}/ncurses/tinfo
163SRCS+=	\
164	access.c \
165	add_tries.c \
166	alloc_entry.c \
167	alloc_ttype.c \
168	captoinfo.c \
169	comp_captab.c \
170	comp_error.c \
171	comp_expand.c \
172	comp_hash.c \
173	comp_parse.c \
174	comp_scan.c \
175	db_iterator.c \
176	doalloc.c \
177	free_ttype.c \
178	getenv_num.c \
179	hashed_db.c \
180	home_terminfo.c \
181	init_keytry.c \
182	lib_acs.c \
183	lib_baudrate.c \
184	lib_cur_term.c \
185	lib_data.c \
186	lib_has_cap.c \
187	lib_kernel.c \
188	lib_longname.c \
189	lib_napms.c \
190	lib_options.c \
191	lib_print.c \
192	lib_raw.c \
193	lib_setup.c \
194	lib_termcap.c \
195	lib_termname.c \
196	lib_tgoto.c \
197	lib_ti.c \
198	lib_tparm.c \
199	lib_tputs.c \
200	lib_ttyflags.c \
201	name_match.c \
202	parse_entry.c \
203	read_entry.c \
204	setbuf.c \
205	strings.c \
206	trim_sgr0.c \
207	write_entry.c
208
209.PATH: ${NCURSES_DIR}/ncurses/tty
210SRCS+=	\
211	hardscroll.c \
212	hashmap.c \
213	lib_mvcur.c \
214	lib_tstp.c \
215	lib_twait.c \
216	lib_vidattr.c \
217	tty_update.c
218
219.if defined(ENABLE_WIDEC)
220.PATH: ${NCURSES_DIR}/ncurses/widechar
221SRCS+=	\
222	charable.c \
223	lib_add_wch.c \
224	lib_box_set.c \
225	lib_cchar.c \
226	lib_erasewchar.c \
227	lib_get_wch.c \
228	lib_get_wstr.c \
229	lib_hline_set.c \
230	lib_in_wch.c \
231	lib_in_wchnstr.c \
232	lib_ins_wch.c \
233	lib_inwstr.c \
234	lib_pecho_wchar.c \
235	lib_slk_wset.c \
236	lib_unget_wch.c \
237	lib_vid_attr.c \
238	lib_vline_set.c \
239	lib_wacs.c \
240	lib_wunctrl.c
241.endif
242
243.PATH: ${NCURSES_DIR}/ncurses/trace
244SRCS+=	\
245	lib_trace.c \
246	visbuf.c
247
248# Currently unused, for debugging libncurses itself.
249DBGSRCS= \
250	lib_traceatr.c \
251	lib_tracebits.c \
252	lib_tracechr.c \
253	lib_tracedmp.c \
254	lib_tracemse.c \
255	trace_buf.c \
256	trace_tries.c \
257	trace_xnames.c \
258	varargs.c
259
260# From our old libtermcap.
261# Used instead of the hideous read_termcap.c abomination.
262SRCS+=	termcap.c
263
264# Components of names.c and codes.c
265NAMESRCS=	boolnames boolfnames numnames numfnames strnames strfnames
266CODESRCS=	boolcodes numcodes strcodes
267
268CLEANFILES=	${GENSRCS} ${GENHDRS} keys.list make_hash term.h.new \
269		make_keys MKterm.h.awk comp_captab.c curses.head \
270		namehdr nameftr codeftr ${NAMESRCS} ${CODESRCS}
271
272CFLAGS+=	-DFREEBSD_NATIVE -DTERMIOS
273
274# Installed
275HEADERS=	curses.h term.h termcap.h unctrl.h
276SRCHDRS=	ncurses_dll.h
277
278.if defined(ENABLE_WIDEC)
279INCS=		${HEADERS} ${SRCHDRS}
280INCSLINKS=	curses.h ${INCLUDEDIR}/ncurses.h
281.endif
282
283.if !defined(NO_INSTALLLIB)
284SYMLINKS+=	libncurses${LIB_SUFFIX}.a ${LIBDIR}/libcurses${LIB_SUFFIX}.a
285SYMLINKS+=	libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtermcap${LIB_SUFFIX}.a
286SYMLINKS+=	libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtermlib${LIB_SUFFIX}.a
287SYMLINKS+=	libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtinfo${LIB_SUFFIX}.a
288.endif
289.if !defined(NO_PIC)
290# no need for major at all, it's an ld-time redirection only
291SYMLINKS+=	libncurses${LIB_SUFFIX}.so ${LIBDIR}/libcurses${LIB_SUFFIX}.so
292SYMLINKS+=	libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtermcap${LIB_SUFFIX}.so
293SYMLINKS+=	libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtermlib${LIB_SUFFIX}.so
294SYMLINKS+=	libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtinfo${LIB_SUFFIX}.so
295.endif
296.if ${MK_PROFILE} != "no"
297SYMLINKS+=	libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libcurses${LIB_SUFFIX}_p.a
298SYMLINKS+=	libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtermcap${LIB_SUFFIX}_p.a
299SYMLINKS+=	libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtermlib${LIB_SUFFIX}_p.a
300SYMLINKS+=	libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtinfo${LIB_SUFFIX}_p.a
301.endif
302
303DOCSDIR=	${SHAREDIR}/doc/ncurses
304DOCS=		ncurses-intro.html hackguide.html
305
306.if ${MK_HTML} != "no"
307.PATH: ${NCURSES_DIR}/doc/html
308FILESGROUPS=	DOCS
309.endif
310
311# Generated source
312namehdr nameftr codeftr ${NAMESRCS} ${CODESRCS}: MKnames.awk Caps
313	${AWK} -f ${NCURSES_DIR}/ncurses/tinfo/MKnames.awk ${NCURSES_DIR}/include/Caps
314
315.ORDER: namehdr ${NAMESRCS} ${CODESRCS} nameftr codeftr names.c codes.c
316
317names.c: namehdr ${NAMESRCS} nameftr
318	cat namehdr ${NAMESRCS} nameftr > $@
319
320codes.c: namehdr ${CODESRCS} codeftr
321	cat namehdr ${CODESRCS} codeftr > $@
322
323lib_gen.c: MKlib_gen.sh curses.h
324	LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CC} -E ${CFLAGS}" \
325	    "${AWK}" generated < curses.h >$@
326
327lib_keyname.c: keys.list MKkeyname.awk
328	${AWK} -f ${NCURSES_DIR}/ncurses/base/MKkeyname.awk keys.list > lib_keyname.c
329
330unctrl.c: MKunctrl.awk
331	echo | ${AWK} -f ${NCURSES_DIR}/ncurses/base/MKunctrl.awk > unctrl.c
332
333comp_captab.c: MKcaptab.awk Caps make_hash
334	sh ${NCURSES_DIR}/ncurses/tinfo/MKcaptab.awk "${AWK}" \
335	    ${NCURSES_DIR}/include/Caps > comp_captab.c
336
337expanded.c: MKexpanded.sh
338	sh ${NCURSES_DIR}/ncurses/tty/MKexpanded.sh "${CC} -E" ${CFLAGS} >expanded.c
339
340fallback.c: MKfallback.sh
341	sh ${NCURSES_DIR}/ncurses/tinfo/MKfallback.sh > fallback.c
342
343# Generated headers
344nomacros.h: MKlib_gen.sh curses.h
345	LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CC} -E ${CFLAGS}" \
346	    "${AWK}" generated < curses.h | fgrep undef > $@
347
348init_keytry.h: keys.list make_keys
349	./make_keys keys.list > init_keytry.h
350
351hashsize.h: MKhashsize.sh Caps
352	sh ${NCURSES_DIR}/include/MKhashsize.sh ${NCURSES_DIR}/include/Caps > $@
353
354parametrized.h: MKparametrized.sh Caps
355	AWK=${AWK} sh ${NCURSES_DIR}/include/MKparametrized.sh \
356	    ${NCURSES_DIR}/include/Caps > $@
357
358term.h: MKterm.h.awk edit_cfg.sh Caps
359	${AWK} -f MKterm.h.awk ${NCURSES_DIR}/include/Caps > $@.new
360	sh ${NCURSES_DIR}/include/edit_cfg.sh ${NCURSES_CFG_H} $@.new
361	mv -f $@.new $@
362
363curses.h: curses.head MKkey_defs.sh Caps
364	cat curses.head > $@.new
365	AWK=${AWK} _POSIX2_VERSION=199209 sh ${NCURSES_DIR}/include/MKkey_defs.sh \
366	    ${NCURSES_DIR}/include/Caps >> $@.new
367.if defined(ENABLE_WIDEC)
368	cat ${NCURSES_DIR}/include/curses.wide >> $@.new
369.endif
370	cat ${NCURSES_DIR}/include/curses.tail >> $@.new
371	mv -f $@.new $@
372
373# Generated intermediate files
374keys.list: MKkeys_list.sh Caps
375	AWK=${AWK} sh ${NCURSES_DIR}/ncurses/tinfo/MKkeys_list.sh \
376	    ${NCURSES_DIR}/include/Caps | LC_ALL=C sort > keys.list
377
378# Build tools
379build-tools: make_hash make_keys
380
381make_keys: make_keys.c names.c ncurses_def.h ${HEADERS}
382	${CC} -o $@ ${CFLAGS} ${NCURSES_DIR}/ncurses/tinfo/make_keys.c
383
384make_hash: comp_hash.c hashsize.h ncurses_def.h ${HEADERS}
385	${CC} -o $@ ${CFLAGS} -DMAIN_PROGRAM \
386		${NCURSES_DIR}/ncurses/tinfo/comp_hash.c
387
388# ./configure generated
389MKterm.h.awk: MKterm.h.awk.in
390	sed <${NCURSES_DIR}/include/MKterm.h.awk.in >$@ \
391	    -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \
392	    -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" \
393	    -e "/@NCURSES_CONST@/s%%${NCURSES_CONST}%" \
394	    -e "/@NCURSES_TPARM_VARARGS@/s%%${NCURSES_TPARM_VARARGS}%" \
395	    -e "/@NCURSES_SBOOL@/s%%${NCURSES_SBOOL}%" \
396	    -e "/@NCURSES_XNAMES@/s%%${NCURSES_XNAMES}%" \
397	    -e "/@HAVE_TERMIOS_H@/s%%${HAVE_TERMIOS_H}%" \
398	    -e "/@HAVE_TERMIO_H@/s%%${HAVE_TERMIO_H}%" \
399	    -e "/@HAVE_TCGETATTR@/s%%${HAVE_TCGETATTR}%"
400
401termcap.h: termcap.h.in
402	sed <${NCURSES_DIR}/include/termcap.h.in >$@ \
403	    -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \
404	    -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" \
405	    -e "/@NCURSES_CONST@/s%%${NCURSES_CONST}%" \
406	    -e "/@NCURSES_OSPEED@/s%%${NCURSES_OSPEED}%"
407
408curses.head: curses.h.in
409	sed <${NCURSES_DIR}/include/curses.h.in >$@ \
410	    -e "/@BROKEN_LINKER@/s%%${BROKEN_LINKER}%" \
411	    -e "/@HAVE_VSSCANF@/s%%${HAVE_VSSCANF}%" \
412	    -e "/@NCURSES_CH_T@/s%%${NCURSES_CH_T}%" \
413	    -e "/@NCURSES_CONST@/s%%${NCURSES_CONST}%" \
414	    -e "/@NCURSES_EXT_COLORS@/s%%${NCURSES_EXT_COLORS}%" \
415	    -e "/@NCURSES_EXT_FUNCS@/s%%${NCURSES_EXT_FUNCS}%" \
416	    -e "/@NCURSES_INLINE@/s%%${NCURSES_INLINE}%" \
417	    -e "/@NCURSES_LIBUTF8@/s%%${NCURSES_LIBUTF8}%" \
418	    -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \
419	    -e "/@NCURSES_MBSTATE_T@/s%%${NCURSES_MBSTATE_T}%" \
420	    -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" \
421	    -e "/@NCURSES_MOUSE_VERSION@/s%%${NCURSES_MOUSE_VERSION}%" \
422	    -e "/@NCURSES_PATCH@/s%%${NCURSES_PATCH}%" \
423	    -e "/@NCURSES_TPARM_VARARGS@/s%%${NCURSES_TPARM_VARARGS}%" \
424	    -e "/@NCURSES_WCHAR_T@/s%%${NCURSES_WCHAR_T}%" \
425	    -e "/@NCURSES_WCHAR_T@/s%%${NCURSES_WCHAR_T}%" \
426	    -e "/@NCURSES_WINT_T@/s%%${NCURSES_WINT_T}%" \
427	    -e "/@NEED_WCHAR_H@/s%%${NEED_WCHAR_H}%" \
428	    -e "/@USE_CXX_BOOL@/s%%${USE_CXX_BOOL}%" \
429	    -e "s%@cf_cv_1UL@%${ONEUL}%g" \
430	    -e "s%@cf_cv_builtin_bool@%${BUILTIN_BOOL}%g" \
431	    -e "s%@cf_cv_enable_lp64@%${ENABLE_LP64}%g" \
432	    -e "s%@cf_cv_header_stdbool_h@%${HEADER_STDBOOL}%g" \
433	    -e "s%@cf_cv_type_of_bool@%${TYPE_OF_BOOL}%g" \
434	    -e "s%@cf_cv_typeof_chtype@%${TYPEOF_CHTYPE}%g" \
435	    -e "s%@cf_cv_typeof_mmask_t@%${TYPEOF_MMASK_T}%g" \
436	    -e "s/ _WCHAR_T/ __wchar_t/g" \
437	    -e "s/ _WINT_T/ __wint_t/g"
438
439unctrl.h: unctrl.h.in
440	sed <${NCURSES_DIR}/include/$@.in >$@ \
441	    -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \
442	    -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%"
443
444# MAN page gunk
445terminfo.5: MKterminfo.sh terminfo.head Caps
446	sh ${NCURSES_DIR}/man/MKterminfo.sh ${NCURSES_DIR}/man/terminfo.head \
447	    ${NCURSES_DIR}/include/Caps ${NCURSES_DIR}/man/terminfo.tail >$@
448
449CLEANFILES+=	terminfo.5
450MANFILTER=      sed -e 's%@TERMINFO@%${TERMINFODIR}/terminfo%g' \
451		    -e 's%@NCURSES_OSPEED@%${NCURSES_OSPEED}%g'
452
453.PATH: ${NCURSES_DIR}/man
454MAN=	\
455	curs_addch.3 \
456	curs_addchstr.3 \
457	curs_addstr.3 \
458	curs_attr.3 \
459	curs_beep.3 \
460	curs_bkgd.3 \
461	curs_bkgrnd.3 \
462	curs_border.3 \
463	curs_border_set.3 \
464	curs_clear.3 \
465	curs_color.3 \
466	curs_delch.3 \
467	curs_deleteln.3 \
468	curs_extend.3 \
469	curs_getcchar.3 \
470	curs_getch.3 \
471	curs_getstr.3 \
472	curs_getyx.3 \
473	curs_inch.3 \
474	curs_inchstr.3 \
475	curs_initscr.3 \
476	curs_inopts.3 \
477	curs_insch.3 \
478	curs_insstr.3 \
479	curs_instr.3 \
480	curs_inwstr.3 \
481	curs_kernel.3 \
482	curs_mouse.3 \
483	curs_move.3 \
484	curs_outopts.3 \
485	curs_overlay.3 \
486	curs_pad.3 \
487	curs_print.3 \
488	curs_refresh.3 \
489	curs_scr_dump.3 \
490	curs_scroll.3 \
491	curs_slk.3 \
492	curs_termattrs.3 \
493	curs_termcap.3 \
494	curs_terminfo.3 \
495	curs_touch.3 \
496	curs_trace.3 \
497	curs_util.3 \
498	curs_window.3 \
499	default_colors.3 \
500	define_key.3 \
501	key_defined.3 \
502	keybound.3 \
503	keyok.3 \
504	legacy_coding.3 \
505	ncurses.3 \
506	resizeterm.3 \
507	wresize.3
508
509.if defined(ENABLE_WIDEC)
510MAN+=	\
511	curs_add_wch.3 \
512	curs_add_wchstr.3 \
513	curs_addwstr.3 \
514	curs_get_wch.3 \
515	curs_get_wstr.3 \
516	curs_in_wch.3 \
517	curs_in_wchstr.3 \
518	curs_ins_wch.3 \
519	curs_ins_wstr.3 \
520	curs_printw.3 \
521	curs_scanw.3
522.endif
523
524CLEANFILES+=	${MAN:M*.3}
525
526MAN+=	term.5 terminfo.5
527MAN+=	term.7
528
529MLINKS=	ncurses.3 curses.3 \
530	curs_addch.3 addch.3 \
531	curs_addch.3 echochar.3 \
532	curs_addch.3 mvaddch.3 \
533	curs_addch.3 mvwaddch.3 \
534	curs_addch.3 waddch.3 \
535	curs_addch.3 wechochar.3 \
536	curs_addchstr.3 addchnstr.3 \
537	curs_addchstr.3 addchstr.3 \
538	curs_addchstr.3 mvaddchnstr.3 \
539	curs_addchstr.3 mvaddchstr.3 \
540	curs_addchstr.3 mvwaddchnstr.3 \
541	curs_addchstr.3 mvwaddchstr.3 \
542	curs_addchstr.3 waddchnstr.3 \
543	curs_addchstr.3 waddchstr.3 \
544	curs_addstr.3 addnstr.3 \
545	curs_addstr.3 addstr.3 \
546	curs_addstr.3 mvaddnstr.3 \
547	curs_addstr.3 mvaddstr.3 \
548	curs_addstr.3 mvwaddnstr.3 \
549	curs_addstr.3 mvwaddstr.3 \
550	curs_addstr.3 waddnstr.3 \
551	curs_addstr.3 waddstr.3 \
552	curs_attr.3 PAIR_NUMBER.3 \
553	curs_attr.3 attr_get.3 \
554	curs_attr.3 attr_off.3 \
555	curs_attr.3 attr_on.3 \
556	curs_attr.3 attr_set.3 \
557	curs_attr.3 attroff.3 \
558	curs_attr.3 attron.3 \
559	curs_attr.3 attrset.3 \
560	curs_attr.3 chgat.3 \
561	curs_attr.3 color_set.3 \
562	curs_attr.3 mvchgat.3 \
563	curs_attr.3 mvwchgat.3 \
564	curs_attr.3 standend.3 \
565	curs_attr.3 standout.3 \
566	curs_attr.3 wattr_get.3 \
567	curs_attr.3 wattr_off.3 \
568	curs_attr.3 wattr_on.3 \
569	curs_attr.3 wattr_set.3 \
570	curs_attr.3 wattroff.3 \
571	curs_attr.3 wattron.3 \
572	curs_attr.3 wattrset.3 \
573	curs_attr.3 wchgat.3 \
574	curs_attr.3 wcolor_set.3 \
575	curs_attr.3 wstandend.3 \
576	curs_attr.3 wstandout.3 \
577	curs_beep.3 beep.3 \
578	curs_beep.3 flash.3 \
579	curs_bkgd.3 bkgd.3 \
580	curs_bkgd.3 bkgdset.3 \
581	curs_bkgd.3 getbkgd.3 \
582	curs_bkgd.3 wbkgd.3 \
583	curs_bkgd.3 wbkgdset.3 \
584	curs_bkgrnd.3 bkgrnd.3 \
585	curs_bkgrnd.3 bkgrndset.3 \
586	curs_bkgrnd.3 getbkgrnd.3 \
587	curs_bkgrnd.3 wbkgrnd.3 \
588	curs_bkgrnd.3 wbkgrndset.3 \
589	curs_bkgrnd.3 wgetbkgrnd.3 \
590	curs_border.3 border.3 \
591	curs_border.3 box.3 \
592	curs_border.3 hline.3 \
593	curs_border.3 mvhline.3 \
594	curs_border.3 mvvline.3 \
595	curs_border.3 mvwhline.3 \
596	curs_border.3 mvwvline.3 \
597	curs_border.3 vline.3 \
598	curs_border.3 wborder.3 \
599	curs_border.3 whline.3 \
600	curs_border.3 wvline.3 \
601	curs_border_set.3 border_set.3 \
602	curs_border_set.3 box_set.3 \
603	curs_border_set.3 hline_set.3 \
604	curs_border_set.3 mvhline_set.3 \
605	curs_border_set.3 mvvline_set.3 \
606	curs_border_set.3 mvwhline_set.3 \
607	curs_border_set.3 mvwvline_set.3 \
608	curs_border_set.3 vline_set.3 \
609	curs_border_set.3 wborder_set.3 \
610	curs_border_set.3 whline_set.3 \
611	curs_border_set.3 wvline_set.3 \
612	curs_clear.3 clear.3 \
613	curs_clear.3 clrtobot.3 \
614	curs_clear.3 clrtoeol.3 \
615	curs_clear.3 erase.3 \
616	curs_clear.3 wclear.3 \
617	curs_clear.3 wclrtobot.3 \
618	curs_clear.3 wclrtoeol.3 \
619	curs_clear.3 werase.3 \
620	curs_color.3 COLOR_PAIR.3 \
621	curs_color.3 can_change_color.3 \
622	curs_color.3 color_content.3 \
623	curs_color.3 has_colors.3 \
624	curs_color.3 init_color.3 \
625	curs_color.3 init_pair.3 \
626	curs_color.3 pair_content.3 \
627	curs_color.3 start_color.3 \
628	curs_delch.3 delch.3 \
629	curs_delch.3 mvdelch.3 \
630	curs_delch.3 mvwdelch.3 \
631	curs_delch.3 wdelch.3 \
632	curs_deleteln.3 deleteln.3 \
633	curs_deleteln.3 insdelln.3 \
634	curs_deleteln.3 insertln.3 \
635	curs_deleteln.3 wdeleteln.3 \
636	curs_deleteln.3 winsdelln.3 \
637	curs_deleteln.3 winsertln.3 \
638	curs_extend.3 curses_version.3 \
639	curs_extend.3 use_extended_names.3 \
640	curs_getcchar.3 getcchar.3 \
641	curs_getcchar.3 setcchar.3 \
642	curs_getch.3 getch.3 \
643	curs_getch.3 has_key.3 \
644	curs_getch.3 mvgetch.3 \
645	curs_getch.3 mvwgetch.3 \
646	curs_getch.3 ungetch.3 \
647	curs_getch.3 wgetch.3 \
648	curs_getstr.3 getnstr.3 \
649	curs_getstr.3 getstr.3 \
650	curs_getstr.3 mvgetnstr.3 \
651	curs_getstr.3 mvgetstr.3 \
652	curs_getstr.3 mvwgetnstr.3 \
653	curs_getstr.3 mvwgetstr.3 \
654	curs_getstr.3 wgetnstr.3 \
655	curs_getstr.3 wgetstr.3 \
656	curs_getyx.3 getbegyx.3 \
657	curs_getyx.3 getmaxyx.3 \
658	curs_getyx.3 getparyx.3 \
659	curs_getyx.3 getyx.3 \
660	curs_inch.3 inch.3 \
661	curs_inch.3 mvinch.3 \
662	curs_inch.3 mvwinch.3 \
663	curs_inch.3 winch.3 \
664	curs_inchstr.3 inchnstr.3 \
665	curs_inchstr.3 inchstr.3 \
666	curs_inchstr.3 mvinchnstr.3 \
667	curs_inchstr.3 mvinchstr.3 \
668	curs_inchstr.3 mvwinchnstr.3 \
669	curs_inchstr.3 mvwinchstr.3 \
670	curs_inchstr.3 winchnstr.3 \
671	curs_inchstr.3 winchstr.3 \
672	curs_initscr.3 delscreen.3 \
673	curs_initscr.3 endwin.3 \
674	curs_initscr.3 initscr.3 \
675	curs_initscr.3 isendwin.3 \
676	curs_initscr.3 newterm.3 \
677	curs_initscr.3 set_term.3 \
678	curs_inopts.3 cbreak.3 \
679	curs_inopts.3 echo.3 \
680	curs_inopts.3 halfdelay.3 \
681	curs_inopts.3 intrflush.3 \
682	curs_inopts.3 keypad.3 \
683	curs_inopts.3 meta.3 \
684	curs_inopts.3 nocbreak.3 \
685	curs_inopts.3 nodelay.3 \
686	curs_inopts.3 noecho.3 \
687	curs_inopts.3 noqiflush.3 \
688	curs_inopts.3 noraw.3 \
689	curs_inopts.3 notimeout.3 \
690	curs_inopts.3 qiflush.3 \
691	curs_inopts.3 raw.3 \
692	curs_inopts.3 timeout.3 \
693	curs_inopts.3 typeahead.3 \
694	curs_inopts.3 wtimeout.3 \
695	curs_insch.3 insch.3 \
696	curs_insch.3 mvinsch.3 \
697	curs_insch.3 mvwinsch.3 \
698	curs_insch.3 winsch.3 \
699	curs_insstr.3 insnstr.3 \
700	curs_insstr.3 insstr.3 \
701	curs_insstr.3 mvinsnstr.3 \
702	curs_insstr.3 mvinsstr.3 \
703	curs_insstr.3 mvwinsnstr.3 \
704	curs_insstr.3 mvwinsstr.3 \
705	curs_insstr.3 winsnstr.3 \
706	curs_insstr.3 winsstr.3 \
707	curs_instr.3 innstr.3 \
708	curs_instr.3 instr.3 \
709	curs_instr.3 mvinnstr.3 \
710	curs_instr.3 mvinstr.3 \
711	curs_instr.3 mvwinnstr.3 \
712	curs_instr.3 mvwinstr.3 \
713	curs_instr.3 winnstr.3 \
714	curs_instr.3 winstr.3 \
715	curs_kernel.3 curs_set.3 \
716	curs_kernel.3 def_prog_mode.3 \
717	curs_kernel.3 def_shell_mode.3 \
718	curs_kernel.3 getsyx.3 \
719	curs_kernel.3 napms.3 \
720	curs_kernel.3 reset_prog_mode.3 \
721	curs_kernel.3 reset_shell_mode.3 \
722	curs_kernel.3 resetty.3 \
723	curs_kernel.3 ripoffline.3 \
724	curs_kernel.3 savetty.3 \
725	curs_kernel.3 setsyx.3 \
726	curs_mouse.3 getmouse.3 \
727	curs_mouse.3 mouse_trafo.3 \
728	curs_mouse.3 mouseinterval.3 \
729	curs_mouse.3 mousemask.3 \
730	curs_mouse.3 ungetmouse.3 \
731	curs_mouse.3 wenclose.3 \
732	curs_mouse.3 wmouse_trafo.3 \
733	curs_move.3 move.3 \
734	curs_move.3 wmove.3 \
735	curs_outopts.3 clearok.3 \
736	curs_outopts.3 idcok.3 \
737	curs_outopts.3 idlok.3 \
738	curs_outopts.3 immedok.3 \
739	curs_outopts.3 leaveok.3 \
740	curs_outopts.3 nl.3 \
741	curs_outopts.3 nonl.3 \
742	curs_outopts.3 scrollok.3 \
743	curs_outopts.3 setscrreg.3 \
744	curs_outopts.3 wsetscrreg.3 \
745	curs_overlay.3 copywin.3 \
746	curs_overlay.3 overlay.3 \
747	curs_overlay.3 overwrite.3 \
748	curs_pad.3 newpad.3 \
749	curs_pad.3 pecho_wchar.3 \
750	curs_pad.3 pechochar.3 \
751	curs_pad.3 pnoutrefresh.3 \
752	curs_pad.3 prefresh.3 \
753	curs_pad.3 subpad.3 \
754	curs_print.3 mcprint.3 \
755	curs_refresh.3 doupdate.3 \
756	curs_refresh.3 redrawwin.3 \
757	curs_refresh.3 refresh.3 \
758	curs_refresh.3 wnoutrefresh.3 \
759	curs_refresh.3 wredrawln.3 \
760	curs_refresh.3 wrefresh.3 \
761	curs_scr_dump.3 scr_dump.3 \
762	curs_scr_dump.3 scr_init.3 \
763	curs_scr_dump.3 scr_restore.3 \
764	curs_scr_dump.3 scr_set.3 \
765	curs_scroll.3 scrl.3 \
766	curs_scroll.3 scroll.3 \
767	curs_scroll.3 wscrl.3 \
768	curs_slk.3 slk_attr.3 \
769	curs_slk.3 slk_attr_off.3 \
770	curs_slk.3 slk_attr_on.3 \
771	curs_slk.3 slk_attr_set.3 \
772	curs_slk.3 slk_attroff.3 \
773	curs_slk.3 slk_attron.3 \
774	curs_slk.3 slk_attrset.3 \
775	curs_slk.3 slk_clear.3 \
776	curs_slk.3 slk_color.3 \
777	curs_slk.3 slk_init.3 \
778	curs_slk.3 slk_label.3 \
779	curs_slk.3 slk_noutrefresh.3 \
780	curs_slk.3 slk_refresh.3 \
781	curs_slk.3 slk_restore.3 \
782	curs_slk.3 slk_set.3 \
783	curs_slk.3 slk_touch.3 \
784	curs_termattrs.3 baudrate.3 \
785	curs_termattrs.3 erasechar.3 \
786	curs_termattrs.3 erasewchar.3 \
787	curs_termattrs.3 has_ic.3 \
788	curs_termattrs.3 has_il.3 \
789	curs_termattrs.3 killchar.3 \
790	curs_termattrs.3 killwchar.3 \
791	curs_termattrs.3 longname.3 \
792	curs_termattrs.3 term_attrs.3 \
793	curs_termattrs.3 termattrs.3 \
794	curs_termattrs.3 termname.3 \
795	curs_termcap.3 termcap.3 \
796	curs_termcap.3 tgetent.3 \
797	curs_termcap.3 tgetflag.3 \
798	curs_termcap.3 tgetnum.3 \
799	curs_termcap.3 tgetstr.3 \
800	curs_termcap.3 tgoto.3 \
801	curs_termcap.3 tputs.3 \
802	curs_terminfo.3 del_curterm.3 \
803	curs_terminfo.3 mvcur.3 \
804	curs_terminfo.3 putp.3 \
805	curs_terminfo.3 restartterm.3 \
806	curs_terminfo.3 set_curterm.3 \
807	curs_terminfo.3 setterm.3 \
808	curs_terminfo.3 setupterm.3 \
809	curs_terminfo.3 tigetflag.3 \
810	curs_terminfo.3 tigetnum.3 \
811	curs_terminfo.3 tigetstr.3 \
812	curs_terminfo.3 tparm.3 \
813	curs_terminfo.3 tputs.3 \
814	curs_terminfo.3 vid_attr.3 \
815	curs_terminfo.3 vid_puts.3 \
816	curs_terminfo.3 vidattr.3 \
817	curs_terminfo.3 vidputs.3 \
818	curs_touch.3 is_linetouched.3 \
819	curs_touch.3 is_wintouched.3 \
820	curs_touch.3 touchline.3 \
821	curs_touch.3 touchwin.3 \
822	curs_touch.3 untouchwin.3 \
823	curs_touch.3 wtouchln.3 \
824	curs_trace.3 _nc_tracebits.3 \
825	curs_trace.3 _traceattr.3 \
826	curs_trace.3 _traceattr2.3 \
827	curs_trace.3 _tracechar.3 \
828	curs_trace.3 _tracechtype.3 \
829	curs_trace.3 _tracechtype2.3 \
830	curs_trace.3 _tracedump.3 \
831	curs_trace.3 _tracef.3 \
832	curs_trace.3 _tracemouse.3 \
833	curs_trace.3 trace.3 \
834	curs_util.3 delay_output.3 \
835	curs_util.3 filter.3 \
836	curs_util.3 flushinp.3 \
837	curs_util.3 getwin.3 \
838	curs_util.3 key_name.3 \
839	curs_util.3 keyname.3 \
840	curs_util.3 nofilter.3 \
841	curs_util.3 putwin.3 \
842	curs_util.3 unctrl.3 \
843	curs_util.3 use_env.3 \
844	curs_util.3 wunctrl.3 \
845	curs_window.3 delwin.3 \
846	curs_window.3 derwin.3 \
847	curs_window.3 dupwin.3 \
848	curs_window.3 mvderwin.3 \
849	curs_window.3 mvwin.3 \
850	curs_window.3 newwin.3 \
851	curs_window.3 subwin.3 \
852	curs_window.3 syncok.3 \
853	curs_window.3 wcursyncup.3 \
854	curs_window.3 wsyncdown.3 \
855	curs_window.3 wsyncup.3 \
856	default_colors.3 assume_default_colors.3 \
857	default_colors.3 use_default_colors.3 \
858	legacy_coding.3 use_legacy_coding.3 \
859	resizeterm.3 is_term_resized.3 \
860	resizeterm.3 resize_term.3
861
862.if defined(ENABLE_WIDEC)
863MLINKS+=curs_add_wch.3 add_wch.3 \
864	curs_add_wch.3 echo_wchar.3 \
865	curs_add_wch.3 mvadd_wch.3 \
866	curs_add_wch.3 mvwadd_wch.3 \
867	curs_add_wch.3 wadd_wch.3 \
868	curs_add_wch.3 wecho_wchar.3 \
869	curs_add_wchstr.3 add_wchnstr.3 \
870	curs_add_wchstr.3 add_wchstr.3 \
871	curs_add_wchstr.3 mvadd_wchnstr.3 \
872	curs_add_wchstr.3 mvadd_wchstr.3 \
873	curs_add_wchstr.3 mvwadd_wchnstr.3 \
874	curs_add_wchstr.3 mvwadd_wchstr.3 \
875	curs_add_wchstr.3 wadd_wchnstr.3 \
876	curs_add_wchstr.3 wadd_wchstr.3 \
877	curs_addwstr.3 addnwstr.3 \
878	curs_addwstr.3 addwstr.3 \
879	curs_addwstr.3 mvaddnwstr.3 \
880	curs_addwstr.3 mvaddwstr.3 \
881	curs_addwstr.3 mvwaddnwstr.3 \
882	curs_addwstr.3 mvwaddwstr.3 \
883	curs_addwstr.3 waddnwstr.3 \
884	curs_addwstr.3 waddwstr.3 \
885	curs_get_wch.3 get_wch.3 \
886	curs_get_wch.3 mvget_wch.3 \
887	curs_get_wch.3 mvwget_wch.3 \
888	curs_get_wch.3 unget_wch.3 \
889	curs_get_wch.3 wget_wch.3 \
890	curs_get_wstr.3 get_wstr.3 \
891	curs_get_wstr.3 getn_wstr.3 \
892	curs_get_wstr.3 mvget_wstr.3 \
893	curs_get_wstr.3 mvgetn_wstr.3 \
894	curs_get_wstr.3 mvwget_wstr.3 \
895	curs_get_wstr.3 mvwgetn_wstr.3 \
896	curs_get_wstr.3 wget_wstr.3 \
897	curs_get_wstr.3 wgetn_wstr.3 \
898	curs_in_wch.3 in_wch.3 \
899	curs_in_wch.3 mvin_wch.3 \
900	curs_in_wch.3 mvwin_wch.3 \
901	curs_in_wch.3 win_wch.3 \
902	curs_in_wchstr.3 in_wchnstr.3 \
903	curs_in_wchstr.3 in_wchstr.3 \
904	curs_in_wchstr.3 mvin_wchnstr.3 \
905	curs_in_wchstr.3 mvin_wchstr.3 \
906	curs_in_wchstr.3 mvwin_wchnstr.3 \
907	curs_in_wchstr.3 mvwin_wchstr.3 \
908	curs_in_wchstr.3 win_wchnstr.3 \
909	curs_in_wchstr.3 win_wchstr.3 \
910	curs_ins_wch.3 ins_wch.3 \
911	curs_ins_wch.3 mvins_wch.3 \
912	curs_ins_wch.3 mvwins_wch.3 \
913	curs_ins_wch.3 wins_wch.3 \
914	curs_ins_wstr.3 ins_nwstr.3 \
915	curs_ins_wstr.3 ins_wstr.3 \
916	curs_ins_wstr.3 mvins_nwstr.3 \
917	curs_ins_wstr.3 mvins_wstr.3 \
918	curs_ins_wstr.3 mvwins_nwstr.3 \
919	curs_ins_wstr.3 mvwins_wstr.3 \
920	curs_ins_wstr.3 wins_nwstr.3 \
921	curs_ins_wstr.3 wins_wstr.3 \
922	curs_inwstr.3 innwstr.3 \
923	curs_inwstr.3 inwstr.3 \
924	curs_inwstr.3 mvinnwstr.3 \
925	curs_inwstr.3 mvinwstr.3 \
926	curs_inwstr.3 mvwinnwstr.3 \
927	curs_inwstr.3 mvwinwstr.3 \
928	curs_inwstr.3 winnwstr.3 \
929	curs_inwstr.3 winwstr.3 \
930	curs_printw.3 mvprintw.3 \
931	curs_printw.3 mvwprintw.3 \
932	curs_printw.3 printw.3 \
933	curs_printw.3 vw_printw.3 \
934	curs_printw.3 vwprintw.3 \
935	curs_printw.3 wprintw.3 \
936	curs_scanw.3 mvscanw.3 \
937	curs_scanw.3 mvwscanw.3 \
938	curs_scanw.3 scanw.3 \
939	curs_scanw.3 vw_scanw.3 \
940	curs_scanw.3 vwscanw.3 \
941	curs_scanw.3 wscanw.3
942.endif
943
944
945.include <bsd.lib.mk>
946
947# Keep the .SUFFIXES line after the include of bsd.lib.mk
948.SUFFIXES: .3 .3x
949.3x.3:
950	cat ${.IMPSRC} > ${.TARGET}
951