freebsd-dev/contrib/ncurses/Makefile.glibc

402 lines
9.0 KiB
Makefile

# Copyright (C) 1997,1998 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Makefile for ncurses part.
#
subdir := ncurses
ncurses-version = 4.2
form-version = $(ncurses-version)
menu-version = $(ncurses-version)
panel-version = $(ncurses-version)
extras := form menu ncurses panel
extra-libs = $(extras:%=lib%)
# These libraries will be built in the `others' pass rather than
# the `lib' pass, because they depend on libc.so being built already.
extra-libs-others = $(extra-libs)
# The sources are found in the appropriate subdir.
subdir-dirs = $(extras) progs test
vpath %.c $(subdir-dirs)
vpath %.h $(subdir-dirs)
libform-routines = \
fld_arg \
fld_attr \
fld_current \
fld_def \
fld_dup \
fld_ftchoice \
fld_ftlink \
fld_info \
fld_just \
fld_link \
fld_max \
fld_move \
fld_newftyp \
fld_opts \
fld_pad \
fld_page \
fld_stat \
fld_type \
fld_user \
frm_cursor \
frm_data \
frm_def \
frm_driver \
frm_hook \
frm_opts \
frm_page \
frm_post \
frm_req_name \
frm_scale \
frm_sub \
frm_user \
frm_win \
fty_alnum \
fty_alpha \
fty_enum \
fty_int \
fty_ipv4 \
fty_num \
fty_regex
libncurses-routines = \
base/define_key \
base/keybound \
base/keyok \
base/lib_addch \
base/lib_addstr \
base/lib_beep \
base/lib_bkgd \
base/lib_box \
base/lib_chgat \
base/lib_clear \
base/lib_clearok \
base/lib_clrbot \
base/lib_clreol \
base/lib_color \
base/lib_colorset \
base/lib_delch \
base/lib_delwin \
base/lib_dft_fgbg \
base/lib_echo \
base/lib_endwin \
base/lib_erase \
base/lib_flash \
base/lib_freeall \
base/lib_getch \
base/lib_getstr \
base/lib_hline \
base/lib_immedok \
base/lib_inchstr \
base/lib_initscr \
base/lib_insch \
base/lib_insdel \
base/lib_insstr \
base/lib_instr \
base/lib_isendwin \
base/lib_leaveok \
base/lib_mouse \
base/lib_move \
base/lib_mvwin \
base/lib_newterm \
base/lib_newwin \
base/lib_nl \
base/lib_overlay \
base/lib_pad \
base/lib_printw \
base/lib_redrawln \
base/lib_refresh \
base/lib_restart \
base/lib_scanw \
base/lib_screen \
base/lib_scroll \
base/lib_scrollok \
base/lib_scrreg \
base/lib_set_term \
base/lib_slk \
base/lib_slkatr_set \
base/lib_slkatrof \
base/lib_slkatron \
base/lib_slkatrset \
base/lib_slkattr \
base/lib_slkclear \
base/lib_slkcolor \
base/lib_slkinit \
base/lib_slklab \
base/lib_slkrefr \
base/lib_slkset \
base/lib_slktouch \
base/lib_touch \
base/lib_ungetch \
base/lib_vline \
base/lib_wattroff \
base/lib_wattron \
base/lib_winch \
base/lib_window \
base/memmove \
base/nc_panel \
base/resizeterm \
base/safe_sprintf \
base/sigaction \
base/tries \
base/version \
base/vsscanf \
base/wresize \
codes \
comp_captab \
expanded \
fallback \
lib_gen \
lib_keyname \
names \
tinfo/access \
tinfo/add_tries \
tinfo/alloc_entry \
tinfo/alloc_ttype \
tinfo/captoinfo \
tinfo/comp_error \
tinfo/comp_expand \
tinfo/comp_hash \
tinfo/comp_parse \
tinfo/comp_scan \
tinfo/doalloc \
tinfo/free_ttype \
tinfo/getenv_num \
tinfo/home_terminfo \
tinfo/init_keytry \
tinfo/lib_acs \
tinfo/lib_baudrate \
tinfo/lib_cur_term \
tinfo/lib_data \
tinfo/lib_has_cap \
tinfo/lib_kernel \
tinfo/lib_longname \
tinfo/lib_napms \
tinfo/lib_options \
tinfo/lib_print \
tinfo/lib_raw \
tinfo/lib_setup \
tinfo/lib_termcap \
tinfo/lib_termname \
tinfo/lib_ti \
tinfo/lib_tparm \
tinfo/lib_tputs \
tinfo/lib_ttyflags \
tinfo/name_match \
tinfo/parse_entry \
tinfo/read_entry \
tinfo/read_termcap \
tinfo/setbuf \
tinfo/write_entry \
trace/lib_trace \
trace/lib_traceatr \
trace/lib_tracebits \
trace/lib_tracechr \
trace/lib_tracedmp \
trace/lib_tracemse \
trace/trace_buf \
trace/trace_tries \
trace/trace_xnames \
tty/hardscroll \
tty/hashmap \
tty/lib_mvcur \
tty/lib_tstp \
tty/lib_vidattr \
tty/lib_twait \
tty/tty_update \
unctrl
libmenu-routines = \
m_attribs \
m_cursor \
m_driver \
m_format \
m_global \
m_hook \
m_item_cur \
m_item_nam \
m_item_new \
m_item_opt \
m_item_top \
m_item_use \
m_item_val \
m_item_vis \
m_items \
m_new \
m_opts \
m_pad \
m_pattern \
m_post \
m_req_name \
m_scale \
m_spacing \
m_sub \
m_userptr \
m_win
libpanel-routines = \
panel \
p_above \
p_below \
p_bottom \
p_delete \
p_hide \
p_hidden \
p_move \
p_new \
p_replace \
p_show \
p_top \
p_update \
p_user \
p_win
headers = curses.h eti.h form.h menu.h panel.h term.h termcap.h \
unctrl.h
others = clear infocmp tic toe tput tset
install-bin = $(others)
clear-objs = clear.o
infocmp-objs = infocmp.o dump_entry.o
tic-objs = tic.o dump_entry.o
toe-objs = toe.o dump_entry.o
tput-objs = tput.o
tset-objs = tset.o dump_entry.o
extra-objs = $(tic-objs) $(toe-objs) $(infocmp-objs) $(clear-objs) \
$(tput-objs) $(tset-objs)
test-srcs = blue bs cardfile ditto firework firstlast gdc hanoi hashtest knight \
lrtest ncurses newdemo rain tclock testaddch testcurs \
testscanw view worm xmas
include ../Rules
ifndef tabsetdir
tabsetdir = $(datadir)/tabset
endif
ifndef inst_tabsetdir
inst_tabsetdir = $(install_root)/$(tabsetdir)
endif
ifndef terminfodir
terminfodir = $(datadir)/terminfo
endif
ifndef inst_terminfodir
inst_terminfodir = $(install_root)/$(terminfodir)
endif
ifndef mandir
mandir = $(prefix)/man
endif
ifndef inst_mandir
inst_mandir = $(install_root)/$(mandir)
endif
CPPFLAGS += -DTERMINFO='"$(terminfodir)"' -Iinclude -Iform -Incurses \
-Imenu -Ipanel -Iprogs -Itest
ifneq ($(strip $(objpfx)),)
CPPFLAGS += -I$(objpfx)
endif
LDLIBS-tclock = math/libm
tests: $(test-srcs:%=$(objpfx)%)
$(objpfx)clear: $(addprefix $(objpfx),$(clear-objs))
$(objpfx)infocmp: $(addprefix $(objpfx),$(infocmp-objs))
$(objpfx)tic: $(addprefix $(objpfx),$(tic-objs))
$(objpfx)toe: $(addprefix $(objpfx),$(toe-objs))
$(objpfx)tput: $(addprefix $(objpfx),$(tput-objs))
$(objpfx)tset: $(addprefix $(objpfx),$(tset-objs))
ifeq ($(build-shared),yes)
$(others:%=$(objpfx)%): $(objpfx)libncurses.so
else
$(others:%=$(objpfx)%): $(objpfx)libncurses.a
endif
$(test-srcs:%=$(objpfx)%): $(objpfx)libform.a $(objpfx)libmenu.a \
$(objpfx)libpanel.a $(objpfx)libncurses.a
# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
$(extras:%=$(objpfx)lib%.so): $(common-objpfx)libc.so
subdir_install: $(inst_libdir)/libtermcap.a $(inst_libdir)/libcurses.a \
$(inst_bindir)/reset $(inst_bindir)/captoinfo
$(inst_libdir)/libtermcap.a $(inst_libdir)/libcurses.a: \
$(inst_libdir)/libncurses.a
$(make-link)
$(inst_bindir)/reset: $(inst_bindir)/tset
$(make-link)
$(inst_bindir)/captoinfo: $(inst_bindir)/tic
$(make-link)
ifeq (yes,$(build-shared))
subdir_install: $(inst_libdir)/libtermcap.so $(inst_libdir)/libcurses.so
$(inst_libdir)/libtermcap.so $(inst_libdir)/libcurses.so: \
$(inst_libdir)/libncurses.so
$(make-link)
endif
subdir_install: $(inst_mandir)/man5/terminfo.5
$(inst_mandir)/man5/terminfo.5: $(objpfx)terminfo.5 $(wildcard man/*.[0-9]*)
$(make-target-directory)
sh $(edit_man-sh) $(prefix) $(inst_mandir) $(edit_man-sed) $^
subdir_install: $(inst_tabsetdir)/std
$(inst_tabsetdir)/std: \
$(filter-out misc/tabset/CVS, $(wildcard misc/tabset/*))
$(make-target-directory)
for f in $^; do \
echo installing $$f; \
$(INSTALL_DATA) $$f $(inst_tabsetdir); \
done
ifeq (no,$(cross-compiling))
subdir_install: $(inst_terminfodir)/v/vt100
$(inst_terminfodir)/v/vt100: misc/terminfo.src $(objpfx)tic
$(make-target-directory)
sh $(run_tic-sh) $(common-objpfx) misc $(terminfodir) \
$(install_root)
endif
subdir_distclean subdir_realclean:
-rm -f $(addprefix $(objpfx), MKterm.h.awk codes.c \
comp_captab.c confdefs.h config.log curses.h \
expanded.c fallback.c hashsize.h keys.tries \
lib_gen.c lib_keyname.c names.c ncurses_cfg.h \
nomacros.h parametrized.h term.h termcap.h \
terminfo.5 termsort.c unctrl.c unctrl.h)