buildworld - Fix parallel build race in ncurses
[dragonfly.git] / lib / libncurses / libncurses / Makefile
CommitLineData
15a56cb3 1# $DragonFly: src/lib/libncurses/libncurses/Makefile,v 1.11 2005/12/06 02:22:23 corecode Exp $
7d1ab061
EN
2
3LIB= ncurses
7d1ab061
EN
4
5.include "../Makefile.inc"
6
7NCURSESBASEDIR=${NCURSESDIR}/ncurses/base
8NCURSESSERIALDIR=${NCURSESDIR}/ncurses/tty
9NCURSESTINFODIR=${NCURSESDIR}/ncurses/tinfo
10NCURSESTRACEDIR=${NCURSESDIR}/ncurses/trace
cb012ea9 11NCURSESWCHARDIR=${NCURSESDIR}/ncurses/widechar
7d1ab061 12.PATH: ${NCURSESBASEDIR} ${NCURSESSERIALDIR} ${NCURSESTINFODIR} \
4f08a41c
SS
13 ${NCURSESTRACEDIR} ${NCURSESWCHARDIR} ${.OBJDIR} ${.CURDIR}/../include \
14 ${NCURSESDIR}/include/
7d1ab061 15
45152c97 16CFLAGS+= -I${NCURSESDIR}/ncurses/
7d1ab061
EN
17CFLAGS+= -DTRACE
18
19TERMINFO_CAPS= ${NCURSESDIR}/include/Caps
20ncurses_def.h:
15a56cb3 21 sh ${NCURSESDIR}/include/MKncurses_def.sh ${NCURSESDIR}/include/ncurses_defs > ${.TARGET}
946ecb11
JL
22curses.h: $(TERMINFO_CAPS) \
23 curses.head \
24 ${NCURSESDIR}/include/curses.tail \
25 ${NCURSESDIR}/include//MKkey_defs.sh
26 cat ${.CURDIR}/../include/curses.head >$@
27 AWK=awk sh ${NCURSESDIR}/include/MKkey_defs.sh $(TERMINFO_CAPS) >>$@
28 sh -c 'if test "cchar_t" = "cchar_t" ; then cat ${NCURSESDIR}/include/curses.wide >>$@ ; fi'
7d1ab061 29 cat ${NCURSESDIR}/include/curses.tail >>$@
946ecb11
JL
30
31#curses.h: curses.head curses.tail
32# cat ${.CURDIR}/../include/curses.head >$@
33# sh ${NCURSESDIR}/include/MKkey_defs.sh $(TERMINFO_CAPS) >>$@
34# cat ${NCURSESDIR}/include/curses.wide >>$@
35# cat ${NCURSESDIR}/include/curses.tail >>$@
4f08a41c 36term.h: MKterm.h.awk ncurses_cfg.h
7d1ab061 37 awk -f ${.CURDIR}/../include/MKterm.h.awk ${TERMINFO_CAPS} > $@
15a56cb3 38 sh ${NCURSESDIR}/include/edit_cfg.sh ${.CURDIR}/../include/ncurses_cfg.h $@
7d1ab061 39hashsize.h:
15a56cb3 40 sh ${NCURSESDIR}/include/MKhashsize.sh ${TERMINFO_CAPS} >$@
7d1ab061 41parametrized.h:
15a56cb3 42 sh ${NCURSESDIR}/include/MKparametrized.sh ${TERMINFO_CAPS} >$@
35b8840d
JS
43init_keytry.h: make_keys keys.list
44 ./make_keys keys.list > $@
45
2eca2696 46make_keys: ${NCURSESTINFODIR}/make_keys.c names.c ncurses_def.h
35b8840d 47 ${NXCC} ${NXCFLAGS} ${NXLDFLAGS} ${NCURSESTINFODIR}/make_keys.c ${NXLDLIBS} -o ${.TARGET}
35b8840d 48
7d1ab061 49keys.list:
15a56cb3 50 sh ${NCURSESTINFODIR}/MKkeys_list.sh ${TERMINFO_CAPS} | sort > $@
35b8840d 51
946ecb11
JL
52names.c: ${NCURSESTINFODIR}/MKnames.awk
53 awk -f ${NCURSESTINFODIR}/MKnames.awk bigstrings=$(USE_BIG_STRINGS) ${TERMINFO_CAPS} >$@
54 #cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >names.c
55 #cat namehdr boolcodes numcodes strcodes codeftr >codes.c
56codes.c: ${NCURSESTINFODIR}/MKcodes.awk
57 awk -f ${NCURSESTINFODIR}/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) ${TERMINFO_CAPS} >$@
7d1ab061 58comp_captab.c: make_hash
946ecb11 59 sh -e ${NCURSESTINFODIR}/MKcaptab.sh awk 0 ${NCURSESTINFODIR}/MKcaptab.awk ${TERMINFO_CAPS} > $@
35b8840d
JS
60
61make_hash: ${NCURSESTINFODIR}/comp_hash.c
62 ${NXCC} ${NXCFLAGS} ${NXLDFLAGS} -DMAIN_PROGRAM ${NXLDLIBS} -o ${.TARGET} ${NCURSESTINFODIR}/comp_hash.c
63
7d1ab061 64make_hash: hashsize.h ncurses_def.h curses.h
35b8840d 65
7d1ab061 66expanded.c:
1653254a 67 sh ${NCURSESSERIALDIR}/MKexpanded.sh "${CC}" -E ${CFLAGS} > $@
7d1ab061
EN
68fallback.c:
69 sh ${NCURSESTINFODIR}/MKfallback.sh /usr/share/terminfo ${NCURSESDIR}/misc/terminfo.src >$@
70lib_gen.c: curses.h
1653254a 71 sh ${NCURSESBASEDIR}/MKlib_gen.sh "${CC} -E ${CFLAGS}" awk generated <curses.h >$@
7d1ab061
EN
72lib_keyname.c: keys.list
73 awk -f ${NCURSESBASEDIR}/MKkeyname.awk keys.list > $@
74unctrl.c:
75 echo | awk -f ${NCURSESBASEDIR}/MKunctrl.awk >$@
76
77CLEANFILES= curses.h ncurses_def.h term.h hashsize.h parametrized.h comp_captab.c
78CLEANFILES+= namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr
79CLEANFILES+= codes.c init_keytry.h numcodes strcodes boolcodes codeftr make_keys names.c
80CLEANFILES+= make_hash expanded.c fallback.c lib_gen.c lib_keyname.c unctrl.c keys.list
81
82SRCS= \
83 curses.h \
84 ncurses_def.h \
85 term.h \
86 hashsize.h \
87 parametrized.h \
88 init_keytry.h
89
90# Base
91SRCS+= \
92 define_key.c \
93 key_defined.c \
94 keybound.c \
95 keyok.c \
946ecb11 96 legacy_coding.c \
7d1ab061
EN
97 lib_addch.c \
98 lib_addstr.c \
99 lib_beep.c \
100 lib_bkgd.c \
101 lib_box.c \
102 lib_chgat.c \
103 lib_clear.c \
104 lib_clearok.c \
105 lib_clrbot.c \
106 lib_clreol.c \
107 lib_color.c \
108 lib_colorset.c \
109 lib_delch.c \
110 lib_delwin.c \
111 lib_dft_fgbg.c \
112 lib_echo.c \
113 lib_endwin.c \
114 lib_erase.c \
115 lib_flash.c \
116 lib_freeall.c \
117 lib_getch.c \
118 lib_getstr.c \
119 lib_hline.c \
120 lib_immedok.c \
121 lib_inchstr.c \
122 lib_initscr.c \
123 lib_insch.c \
124 lib_insdel.c \
125 lib_instr.c \
946ecb11 126 lib_insnstr.c \
7d1ab061
EN
127 lib_isendwin.c \
128 lib_leaveok.c \
129 lib_mouse.c \
130 lib_move.c \
131 lib_mvwin.c \
132 lib_newterm.c \
133 lib_newwin.c \
134 lib_nl.c \
135 lib_overlay.c \
136 lib_pad.c \
137 lib_printw.c \
138 lib_redrawln.c \
139 lib_refresh.c \
140 lib_restart.c \
141 lib_scanw.c \
142 lib_screen.c \
143 lib_scroll.c \
144 lib_scrollok.c \
145 lib_scrreg.c \
146 lib_set_term.c \
147 lib_slk.c \
148 lib_slkatr_set.c \
149 lib_slkatrof.c \
150 lib_slkatron.c \
151 lib_slkatrset.c \
152 lib_slkattr.c \
153 lib_slkclear.c \
154 lib_slkcolor.c \
155 lib_slkinit.c \
156 lib_slklab.c \
157 lib_slkrefr.c \
158 lib_slkset.c \
159 lib_slktouch.c \
160 lib_touch.c \
161 lib_ungetch.c \
162 lib_vline.c \
163 lib_wattroff.c \
164 lib_wattron.c \
165 lib_winch.c \
166 lib_window.c \
167 memmove.c \
168 nc_panel.c \
169 resizeterm.c \
170 safe_sprintf.c \
171 tries.c \
946ecb11 172 use_window.c \
7d1ab061
EN
173 version.c \
174 vsscanf.c \
175 wresize.c
176
177# Serial
178SRCS+= \
179 hardscroll.c \
180 hashmap.c \
181 lib_mvcur.c \
182 lib_tstp.c \
183 lib_twait.c \
184 lib_vidattr.c \
185 tty_update.c
186
187# Tinfo
188SRCS+= \
189 access.c \
190 add_tries.c \
191 alloc_entry.c \
192 alloc_ttype.c \
193 captoinfo.c \
194 comp_error.c \
195 comp_expand.c \
196 comp_hash.c \
197 comp_parse.c \
198 comp_scan.c \
199 doalloc.c \
946ecb11
JL
200 db_iterator.c \
201 entries.c \
7d1ab061
EN
202 free_ttype.c \
203 getenv_num.c \
946ecb11 204 hashed_db.c \
7d1ab061
EN
205 home_terminfo.c \
206 init_keytry.c \
207 lib_acs.c \
208 lib_baudrate.c \
209 lib_cur_term.c \
210 lib_data.c \
211 lib_has_cap.c \
212 lib_kernel.c \
213 lib_longname.c \
214 lib_napms.c \
215 lib_options.c \
216 lib_print.c \
217 lib_raw.c \
218 lib_setup.c \
219 lib_termcap.c \
220 lib_termname.c \
221 lib_tgoto.c \
222 lib_ti.c \
223 lib_tparm.c \
224 lib_tputs.c \
225 lib_ttyflags.c \
226 name_match.c \
227 parse_entry.c \
228 read_entry.c \
229 setbuf.c \
230 strings.c \
946ecb11
JL
231 trim_sgr0.c \
232 use_screen.c \
7d1ab061
EN
233 write_entry.c
234
235# Trace
236SRCS+= \
237 lib_trace.c \
238 lib_traceatr.c \
239 lib_tracebits.c \
240 lib_tracechr.c \
241 lib_tracedmp.c \
242 lib_tracemse.c \
243 trace_buf.c \
244 trace_tries.c \
245 trace_xnames.c \
246 varargs.c \
247 visbuf.c \
248
cb012ea9
JR
249# Widechar
250SRCS+= \
251 charable.c \
252 lib_add_wch.c \
253 lib_box_set.c \
254 lib_cchar.c \
255 lib_erasewchar.c \
256 lib_get_wch.c \
257 lib_get_wstr.c \
258 lib_hline_set.c \
259 lib_in_wch.c \
260 lib_in_wchnstr.c \
261 lib_ins_wch.c \
262 lib_inwstr.c \
946ecb11 263 lib_key_name.c \
cb012ea9
JR
264 lib_pecho_wchar.c \
265 lib_slk_wset.c \
266 lib_unget_wch.c \
267 lib_vid_attr.c \
268 lib_vline_set.c \
269 lib_wacs.c \
270 lib_wunctrl.c
271
7d1ab061
EN
272# Generated
273SRCS+= \
274 codes.c \
275 comp_captab.c \
276 expanded.c \
277 fallback.c \
278 lib_gen.c \
279 lib_keyname.c \
280 names.c \
281 unctrl.c
282
283# Use instead of read_termcap.c.
284# From our old libtermcap.
285SRCS+= termcap.c
286
287SYMLINKS+=libncurses.a ${LIBDIR}/libcurses.a
288SYMLINKS+=libncurses.a ${LIBDIR}/libtinfo.a
289SYMLINKS+=libncurses.a ${LIBDIR}/libmytinfo.a
290SYMLINKS+=libncurses.a ${LIBDIR}/libtermlib.a
291SYMLINKS+=libncurses.a ${LIBDIR}/libtermcap.a
292.if !defined(NOPIC)
293# no need for major at all, it's an ld-time redirection only
294SYMLINKS+=libncurses.so ${SHLIBDIR}/libcurses.so
295SYMLINKS+=libncurses.so ${SHLIBDIR}/libtermcap.so
296SYMLINKS+=libncurses.so ${SHLIBDIR}/libtermlib.so
297SYMLINKS+=libncurses.so ${SHLIBDIR}/libmytinfo.so
298SYMLINKS+=libncurses.so ${SHLIBDIR}/libtinfo.so
299.endif
300.if !defined(NOPROFILE)
c4c23d90
JS
301SYMLINKS+=libncurses.a ${PROFLIBDIR}/libcurses.a
302SYMLINKS+=libncurses.a ${PROFLIBDIR}/libtermcap.a
303SYMLINKS+=libncurses.a ${PROFLIBDIR}/libtermlib.a
304SYMLINKS+=libncurses.a ${PROFLIBDIR}/libmytinfo.a
305SYMLINKS+=libncurses.a ${PROFLIBDIR}/libtinfo.aa
7d1ab061
EN
306.endif
307
308INCS= term.h ${.CURDIR}/../include/termcap.h \
84ca66f9
HT
309 ${.CURDIR}/../include/unctrl.h curses.h \
310 ${NCURSESDIR}/include/ncurses_dll.h
7d1ab061
EN
311INCSLINKS=curses.h ${INCLUDEDIR}/ncurses.h
312
6e73105e
MD
313# Make the generated files depend on the headers, otherwise
314# the make depend step cannot run -j parallel due to not yet
315# knowing what the actual dependencies are.
316#
317codes.c: ${INCS}
318comp_captab.c: ${INCS}
319expanded.c: ${INCS}
320fallback.c: ${INCS}
321lib_gen.c: ${INCS}
322lib_keyname.c: ${INCS}
323names.c: ${INCS}
324unctrl.c: ${INCS}
325
7d1ab061 326.include <bsd.lib.mk>