diff --git a/GNUmakefile b/GNUmakefile index fc76411..3a50e7d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -38,12 +38,14 @@ endif ifneq (,$(findstring -static,$(LDFLAGS))) #LDFLAGS contains -static, so the user wants to build static binaries STATIC_BINS=1 +LINKLIB=libcurses.a else STATIC_BINS=0 +LINKLIB=libcurses$(SO_SUFFIX) endif CFLAGS+=-Werror-implicit-function-declaration -CPPFLAGS+= -I. -I./libterminfo +CPPFLAGS+= -I. -I./libterminfo -I./libcurses TOOL_NBPERF= nbperf/nbperf NBPERF_SRCS= nbperf/nbperf.c @@ -69,8 +71,6 @@ TI_SRCS+=libterminfo/cdbr.c TI_SRCS+=libterminfo/mi_vector_hash.c # Build in termcap emulation TI_SRCS+=libterminfo/termcap.c -TI_LIBA=libterminfo/libterminfo.a -TI_LIBSO=libterminfo/libterminfo$(SO_SUFFIX) TI_OBJS=$(TI_SRCS:.c=.o) TI_LOBJS=$(TI_SRCS:.c=.lo) TI_MAN =$(sort $(wildcard libterminfo/*.3)) @@ -105,8 +105,6 @@ endif CU_SRCS=$(patsubst %,libcurses/%,$(CU_SRCS_)) CU_INCS=libcurses/curses.h libcurses/unctrl.h CU_OBJS=$(CU_SRCS:.c=.o) -CU_LIBA=libcurses/libcurses.a -CU_LIBSO=libcurses/libcurses$(SO_SUFFIX) CU_LOBJS=$(CU_SRCS:.c=.lo) CU_MAN =$(sort $(wildcard libcurses/*.3)) @@ -116,8 +114,6 @@ PA_SRCS_+= update.c window.c PA_SRCS=$(patsubst %,libpanel/%,$(PA_SRCS_)) PA_INCS=libpanel/panel.h PA_OBJS=$(PA_SRCS:.c=.o) -PA_LIBA=libpanel/libpanel.a -PA_LIBSO=libpanel/libpanel$(SO_SUFFIX) PA_LOBJS=$(PA_SRCS:.c=.lo) PA_MAN =$(sort $(wildcard libpanel/*.3)) @@ -126,8 +122,6 @@ ME_MAN = $(sort $(wildcard libmenu/*.3)) ME_SRCS=$(patsubst %,libmenu/%,$(ME_SRCS_)) ME_INCS=libmenu/menu.h libmenu/eti.h ME_OBJS=$(ME_SRCS:.c=.o) -ME_LIBA=libmenu/libmenu.a -ME_LIBSO=libmenu/libmenu$(SO_SUFFIX) ME_LOBJS=$(ME_SRCS:.c=.lo) FO_SRCS_=driver.c field_types.c internals.c field.c form.c post.c type_alnum.c \ @@ -137,8 +131,6 @@ FO_MAN= $(sort $(wildcard libform/*.3)) FO_SRCS=$(patsubst %,libform/%,$(FO_SRCS_)) FO_INCS=libform/form.h FO_OBJS=$(FO_SRCS:.c=.o) -FO_LIBA=libform/libform.a -FO_LIBSO=libform/libform$(SO_SUFFIX) FO_LOBJS=$(FO_SRCS:.c=.lo) TS_SRCS_=map.c misc.c set.c term.c tset.c @@ -158,21 +150,25 @@ TA_SRCS=tabs/tabs.c TA_OBJS=tabs/tabs.o TA_MAN =$(sort $(wildcard tabs/*.1)) -STALIBS=$(TI_LIBA) $(CU_LIBA) $(PA_LIBA) $(ME_LIBA) $(FO_LIBA) -DYNLIBS=$(TI_LIBSO) $(CU_LIBSO) $(PA_LIBSO) $(ME_LIBSO) $(FO_LIBSO) PROGS=$(TOOL_TTIC) tset/tset tput/tput infocmp/infocmp tabs/tabs -ifeq ($(STATIC_BINS),0) -TI_LINKLIB=$(TI_LIBSO) -else -TI_LINKLIB=$(TI_LIBA) -endif +STAOBJS=$(TI_OBJS) $(CU_OBJS) $(PA_OBJS) $(ME_OBJS) $(FO_OBJS) +DYNOBJS=$(TI_LOBJS) $(CU_LOBJS) $(PA_LOBJS) $(ME_LOBJS) $(FO_LOBJS) + +all: $(STAOBJS) $(DYNOBJS) $(PROGS) + +all-static: $(STAOBJS) $(PROGS) libcurses.a -all: $(STALIBS) $(DYNLIBS) $(PROGS) +libcurses.a: $(STAOBJS) + rm -f libcurses.a + $(AR) crs libcurses.a $(CU_OBJS) $(FO_OBJS) $(ME_OBJS) $(PA_OBJS) $(TI_OBJS) + $(RANLIB) libcurses.a -all-static: $(STALIBS) $(PROGS) +all-dynamic: $(DYNOBJS) $(PROGS) libcurses$(SO_SUFFIX) + +libcurses$(SO_SUFFIX): $(DYNOBJS) + ${CC} -o libcurses$(SO_SUFFIX) -shared $(CU_LOBJS) $(FO_LOBJS) $(ME_LOBJS) $(PA_LOBJS) $(TI_LOBJS) -all-dynamic: $(DYNLIBS) $(PROGS) install-tic: $(TOOL_TTIC) $(INSTALL) -Dm 755 $(TOOL_TTIC) $(DESTDIR)$(BINDIR)/tic @@ -214,51 +210,32 @@ install-headers-form: libform/form.h install-headers: install-headers-terminfo install-headers-curses install-headers-panel install-headers-menu install-headers-form -install-stalib-curses: $(CU_LIBA) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/libncurses.a - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/libncursesw.a - -install-stalib-terminfo: $(TI_LIBA) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/libtermcap.a - -install-stalib-panel: $(PA_LIBA) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/$(basename $(notdir $<))w.a - -install-stalib-menu: $(ME_LIBA) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/$(basename $(notdir $<))w.a - -install-stalib-form: $(FO_LIBA) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/$(basename $(notdir $<))w.a - -install-stalibs: install-stalib-terminfo install-stalib-curses install-stalib-panel install-stalib-menu install-stalib-form - -install-dynlib-curses: $(CU_LIBSO) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/libncurses$(SO_SUFFIX) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/libncursesw$(SO_SUFFIX) - -install-dynlib-terminfo: $(TI_LIBSO) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/libtermcap$(SO_SUFFIX) - -install-dynlib-panel: $(PA_LIBSO) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/$(basename $(notdir $<))w$(SO_SUFFIX) +install-stalibs: libcurses.a + $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$< + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libncurses.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libncursesw.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libterminfo.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libtermcap.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libpanel.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libpanelw.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libmenu.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libmenuw.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libform.a + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libformw.a + +install-dynlibs: libcurses$(SO_SUFFIX) + $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$< + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libncurses$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libncursesw$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libterminfo$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libtermcap$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libpanel$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libpanelw$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libmenu$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libmenuw$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libform$(SO_SUFFIX) + $(LN) -sf $< $(DESTDIR)$(LIBDIR)/libformw$(SO_SUFFIX) -install-dynlib-menu: $(ME_LIBSO) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/$(basename $(notdir $<))w$(SO_SUFFIX) - -install-dynlib-form: $(FO_LIBSO) - $(INSTALL) -Dm 644 $< $(DESTDIR)$(LIBDIR)/$(notdir $<) - $(LN) -sf $(notdir $<) $(DESTDIR)$(LIBDIR)/$(basename $(notdir $<))w$(SO_SUFFIX) - -install-dynlibs: install-dynlib-terminfo install-dynlib-curses install-dynlib-panel install-dynlib-menu install-dynlib-form install-libs: install-stalibs install-dynlibs install-pc-dir: @@ -334,38 +311,37 @@ install-manpages: install-prog-manpages install-lib-manpages install: install-headers install-libs install-progs install-pcs install-manpages install-static: install-headers install-progs install-pcs install-stalibs -install-dynamic: TI_LINKLIB=$(TI_LIBSO) install-dynamic: install-headers install-progs install-pcs install-dynlibs # TODO: gen (if necessary) and install manpages clean: rm -f $(NBPERF_OBJS) $(TOOL_NBPERF) $(TIC_OBJS) $(TIC_HOBJS) \ - $(TOOL_TTIC) $(TOOL_TIC) $(CLEANFILES) $(TI_LIBA) \ - $(CU_LIBA) $(TI_OBJS) $(CU_OBJS) $(CU_LOBJS) $(TI_LOBJS) \ - $(CU_LIBSO) $(TI_LIBSO) \ - $(PA_LIBA) $(PA_LIBSO) $(PA_OBJS) $(PA_LOBJS) \ - $(ME_LIBA) $(ME_LIBSO) $(ME_OBJS) $(ME_LOBJS) \ - $(FO_LIBA) $(FO_LIBSO) $(FO_OBJS) $(FO_LOBJS) \ + $(TOOL_TTIC) $(TOOL_TIC) $(CLEANFILES) \ + $(TI_OBJS) $(CU_OBJS) $(CU_LOBJS) $(TI_LOBJS) \ + $(PA_OBJS) $(PA_LOBJS) \ + $(ME_OBJS) $(ME_LOBJS) \ + $(FO_OBJS) $(FO_LOBJS) \ $(TS_OBJS) tset/tset $(TP_OBJS) tput/tput \ - $(IC_OBJS) infocmp/infocmp $(TA_OBJS) tabs/tabs + $(IC_OBJS) infocmp/infocmp $(TA_OBJS) tabs/tabs \ + libcurses$(SO_SUFFIX) libcurses.a $(TOOL_NBPERF): $(NBPERF_OBJS) $(HOSTCC) $(LDFLAGS_HOST) $^ -o $@ -tset/tset: $(TI_LINKLIB) +tset/tset: $(LINKLIB) tset/tset: $(TS_OBJS) $(CC) -o $@ $^ $(LDFLAGS) -tput/tput: $(TI_LINKLIB) +tput/tput: $(LINKLIB) tput/tput: $(TP_OBJS) $(CC) -o $@ $^ $(LDFLAGS) -infocmp/infocmp: $(TI_LINKLIB) +infocmp/infocmp: $(LINKLIB) infocmp/infocmp: $(IC_OBJS) $(CC) -o $@ $^ $(LDFLAGS) -tabs/tabs: $(TI_LINKLIB) +tabs/tabs: $(LINKLIB) tabs/tabs: $(TA_OBJS) $(CC) -o $@ $^ $(LDFLAGS) @@ -461,14 +437,6 @@ SCRIPT_ENV= \ TOOL_SORT=sort \ TOOL_TIC=$(TOOL_TIC) -$(TI_LIBA): $(TI_OBJS) - rm -f $@ - $(AR) crs $@ $^ - $(RANLIB) $@ - -$(TI_LIBSO): $(TI_LOBJS) - $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) - libterminfo/hash.c: libterminfo/genhash libterminfo/term.h @echo "Generating terminfo hash" $(SCRIPT_ENV) $(HOST_SH) $^ > $@ @@ -497,45 +465,9 @@ CLEANFILES+=libterminfo/hash.c libterminfo/termcap_hash.c \ # @echo "Generating terminfo man pages" # ${SCRIPT_ENV} ${HOST_SH} $^ > $@ -$(CU_LIBA): $(CU_OBJS) - rm -f $@ - $(AR) crs $@ $^ - $(RANLIB) $@ - -$(CU_LIBSO): $(TI_LIBSO) -$(CU_LIBSO): $(CU_LOBJS) - $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) - libcurses/fileio.h: libcurses/shlib_version libcurses/genfileioh.awk $(AWK) -f ./genfileioh.awk < ./shlib_version > ./fileio.h -$(PA_LIBA): $(PA_OBJS) - rm -f $@ - $(AR) crs $@ $^ - $(RANLIB) $@ - -$(PA_LIBSO): $(CU_LIBSO) -$(PA_LIBSO): $(PA_LOBJS) - $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) - -$(ME_LIBA): $(ME_OBJS) - rm -f $@ - $(AR) crs $@ $^ - $(RANLIB) $@ - -$(ME_LIBSO): $(CU_LIBSO) -$(ME_LIBSO): $(ME_LOBJS) - $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) - -$(FO_LIBA): $(FO_OBJS) - rm -f $@ - $(AR) crs $@ $^ - $(RANLIB) $@ - -$(FO_LIBSO): $(CU_LIBSO) -$(FO_LIBSO): $(FO_LOBJS) - $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) - # Allow terminfo descriptions to be compiled into libterminfo ${TERMINFODIR}/terminfo.cdb: $(TOOL_TIC) ${TERMINFODIR}/terminfo @echo "Generating compiled terminfo database"