From 929f718b237bbc9193ad9be1d18457ac12c23905 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 13 Dec 2002 22:43:38 +0000 Subject: Only build the ncurses stuff when it is needed, based on a patch from Stefan Allius (though the extra/config/Makefile rework is mine), -Erik --- Makefile | 22 ++++++++++++---------- Rules.mak | 1 - extra/Configs/Config.in | 3 +++ extra/config/Makefile | 47 +++++++++++++++++++++++------------------------ 4 files changed, 38 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index df041cbd5..e57b6b1ec 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ include Rules.mak DIRS = extra ldso libc libcrypt libresolv libnsl libutil libm libpthread -ifdef include_config +ifeq ($(strip $(HAVE_DOT_CONFIG)),y) all: headers subdirs shared utils finished @@ -80,7 +80,7 @@ endif include/bits/uClibc_config.h: .config @if [ ! -x ./extra/config/conf ] ; then \ - make -C extra/config; \ + make -C extra/config conf; \ fi; rm -rf include/bits mkdir -p include/bits @@ -290,18 +290,21 @@ finished2: @echo Finished installing... @echo -else # ifdef include_config +else # ifeq ($(strip $(HAVE_DOT_CONFIG)),y) all: menuconfig -ifeq ($(filter-out $(noconfig_targets),$(MAKECMDGOALS)),) -# Targets which don't need .config - # configuration # --------------------------------------------------------------------------- -extra/config/conf extra/config/mconf: - make -C extra/config +extra/config/conf: + make -C extra/config conf + -@if [ ! -f .config ] ; then \ + cp extra/Configs/Config.$(TARGET_ARCH).default .config; \ + fi + +extra/config/mconf: + make -C extra/config ncurses conf mconf -@if [ ! -f .config ] ; then \ cp extra/Configs/Config.$(TARGET_ARCH).default .config; \ fi @@ -384,8 +387,7 @@ release: distclean \ tar -cvzf uClibc-$(VERSION).tar.gz --exclude CVS uClibc-$(VERSION)/; -endif # ifeq ($(filter-out $(noconfig_targets),$(MAKECMDGOALS)),) -endif # ifdef include_config +endif # ifeq ($(strip $(HAVE_DOT_CONFIG)),y) .PHONY: dummy subdirs release distclean clean config oldconfig menuconfig diff --git a/Rules.mak b/Rules.mak index ec8ed7a84..333f370e7 100644 --- a/Rules.mak +++ b/Rules.mak @@ -66,7 +66,6 @@ LIBC:=$(TOPDIR)libc/$(LIBNAME) # Pull in the user's uClibc configuration ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include_config := 1 -include $(TOPDIR).config endif diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 2945a94ba..6dd0c4e20 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -2,6 +2,9 @@ # For a description of the syntax of this configuration file, # see extra/config/Kconfig-language.txt # +config HAVE_DOT_CONFIG + bool + default y menu "General Library Settings" diff --git a/extra/config/Makefile b/extra/config/Makefile index 50d9ac096..442fbfbed 100644 --- a/extra/config/Makefile +++ b/extra/config/Makefile @@ -19,51 +19,44 @@ TOPDIR=../../ include $(TOPDIR)Rules.mak - all: ncurses conf mconf LIBS = -lncurses ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) - HOSTCFLAGS += -I/usr/include/ncurses -DCURSES_LOC="" + HOSTNCURSES += -I/usr/include/ncurses -DCURSES_LOC="" else ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h)) - HOSTCFLAGS += -I/usr/include/ncurses -DCURSES_LOC="" + HOSTNCURSES += -I/usr/include/ncurses -DCURSES_LOC="" else ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h)) - HOSTCFLAGS += -DCURSES_LOC="" + HOSTNCURSES += -DCURSES_LOC="" else - HOSTCFLAGS += -DCURSES_LOC="" + HOSTNCURSES += -DCURSES_LOC="" endif endif endif -CONF_SRC =conf.c zconf.tab.c -MCONF_SRC =mconf.c zconf.tab.c -LXDLG_SRC =checklist.c menubox.c textbox.c yesno.c inputbox.c util.c msgbox.c +CONF_SRC =conf.c +MCONF_SRC =mconf.c checklist.c menubox.c textbox.c yesno.c inputbox.c util.c msgbox.c +SHARED_SRC=zconf.tab.c +SHARED_DEPS:=lkc.h lkc_proto.h lkc_defs.h expr.h zconf.tab.h CONF_OBJS =$(patsubst %.c,%.o, $(CONF_SRC)) MCONF_OBJS=$(patsubst %.c,%.o, $(MCONF_SRC)) -LXDLG_OBJS=$(patsubst %.c,%.o, $(LXDLG_SRC)) - -conf: $(CONF_OBJS) - $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $^ -o $@ - -mconf: $(MCONF_OBJS) $(LXDLG_OBJS) - $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS) - -lkc_deps:=lkc.h lkc_proto.h lkc_defs.h expr.h zconf.tab.h - -conf.o: conf.c $(lkc_deps) - -mconf.o: mconf.c $(lkc_deps) +SHARED_OBJS=$(patsubst %.c,%.o, $(SHARED_SRC)) -zconf.tab.o: zconf.tab.c lex.zconf.c confdata.c expr.c symbol.c menu.c $(lkc_deps) +conf: $(CONF_OBJS) $(SHARED_OBJS) + $(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ -lex.zconf.o: lex.zconf.c $(lkc_deps) +mconf: $(MCONF_OBJS) $(SHARED_OBJS) + $(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS) -%.o : %.c +$(CONF_OBJS): %.o : %.c $(SHARED_DEPS) $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@ +$(MCONF_OBJS): %.o : %.c $(SHARED_DEPS) + $(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@ + lkc_defs.h: lkc_proto.h @sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' @@ -82,9 +75,15 @@ lex.%.c: %.l flex -P$(notdir $*) -o$@ $< else +lex.zconf.o: lex.zconf.c $(SHARED_DEPS) + $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@ + lex.zconf.c: lex.zconf.c_shipped cp lex.zconf.c_shipped lex.zconf.c +zconf.tab.o: zconf.tab.c lex.zconf.c confdata.c expr.c symbol.c menu.c $(SHARED_DEPS) + $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@ + zconf.tab.c: zconf.tab.c_shipped cp zconf.tab.c_shipped zconf.tab.c -- cgit v1.2.3