Diffstat (limited to 'scripts/kconfig/Makefile.kernel') (more/less context) (ignore whitespace changes)
-rw-r--r-- | scripts/kconfig/Makefile.kernel | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/scripts/kconfig/Makefile.kernel b/scripts/kconfig/Makefile.kernel new file mode 100644 index 0000000..beb4dcf --- a/dev/null +++ b/scripts/kconfig/Makefile.kernel @@ -0,0 +1,85 @@ +################# +# +# Shared Makefile for the various lkc executables: +# conf: Used for defconfig, oldconfig and related targets +# mconf: Used for the mconfig target. +# Utilizes the lxdialog package +# qconf: Used for the xconfig target +# Based on QT which needs to be installed to compile it +# + +# object files used by all lkc flavours +libkconfig-objs := zconf.tab.o + +host-progs := conf mconf qconf +conf-objs := conf.o libkconfig.so +mconf-objs := mconf.o libkconfig.so + +qconf-objs := kconfig_load.o +qconf-cxxobjs := qconf.o + +clean-files := libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \ + zconf.tab.c zconf.tab.h lex.zconf.c + +include $(TOPDIR)/Rules.make + +# QT needs some extra effort... +ifndef QTDIR +QTDIR := /usr/share/qt +endif + +# Executable to generate the .moc file +MOC=$(wildcard $(QTDIR)/bin/moc) + +# generated files seem to need this to find local include files +HOSTCFLAGS_lex.zconf.o := -I$(src) +HOSTCFLAGS_zconf.tab.o := -I$(src) + +HOSTLOADLIBES_qconf := -L$(QTDIR)/lib -Wl,-rpath,$(QTDIR)/lib -lqt -ldl +HOSTCXXFLAGS_qconf.o := -I$(QTDIR)/include + +$(obj)/conf.o $(obj)/mconf.o $(obj)/qconf.o: $(obj)/zconf.tab.h + +$(obj)/qconf.o: $(obj)/.tmp_qtcheck + +$(obj)/.tmp_qtcheck: +ifeq ($(MOC),) + @echo Unable to find the QT installation. Please make sure that the + @echo QT development package is correctly installed and the QTDIR + @echo environment variable is set to the correct location. + @false +else + @touch $@ +endif + +$(obj)/zconf.tab.o: $(obj)/lex.zconf.c + +$(obj)/kconfig_load.o: $(obj)/lkc_defs.h + +$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h + +$(obj)/%.moc: $(src)/%.h + $(MOC) -i $< -o $@ + +$(obj)/lkc_defs.h: $(src)/lkc_proto.h + sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' + + +### +# The following requires flex/bison +# By default we use the _shipped versions, uncomment the following line if +# you are modifying the flex/bison src. +# LKC_GENPARSER := 1 + +ifdef LKC_GENPARSER + +$(obj)/zconf.tab.c: $(obj)/zconf.y +$(obj)/zconf.tab.h: $(obj)/zconf.tab.c + +%.tab.c: %.y + bison -t -d -v -b $* -p $(notdir $*) $< + +lex.%.c: %.l + flex -P$(notdir $*) -o$@ $< + +endif |