- When I introduce wide character enabled ncurses into base, all headers are installed twice (once in non-widec version, onec in widec version). Headers with widec enabled are compatible with non-widec version for libraries. However, if you do a repeat build/install, the curses.h is always overwritten. The reason is that headers and statics libraries are installed with -S option to preserve their mtime if no actual changes, which saves time when doing incremental builds. The curses.h is installed by non-widec ncurses first, then by widec ncurses. So next time, it happens again. You see something like this:
- pwd /usr/src/lib/ncurses
- make -s installincludes INSTALL="install -v" ===> ncurses (installincludes) install: curses.h -> /usr/include/curses.h ===> ncursesw (installincludes) install: curses.h -> /usr/include/curses.h
- make -s installincludes INSTALL="install -v" ===> ncurses (installincludes) install: curses.h -> /usr/include/curses.h ===> ncursesw (installincludes) install: curses.h -> /usr/include/curses.h
The solution is to disable installing headers in non-widec version. Now you see this: - pwd /usr/src/lib/ncurses
- make -s installincludes INSTALL="install -v" ===> ncurses (installincludes) ===> ncursesw (installincludes)
- make -s installincludes INSTALL="install -v" ===> ncurses (installincludes) ===> ncursesw (installincludes)
For form/panel/menu libraries, the headers are the same for both version. To be consistent with ncurses, I also disable the installation in non-widec version.
Reported by: des
Reviewed by: ru
Thanks to: ru
Approved by: delphij (mentor)
MFC after: 2 weeks