diff options
author | Patrick Georgi <pgeorgi@google.com> | 2019-11-22 16:55:58 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2021-07-13 20:28:14 +0000 |
commit | 53ea1d44f0435ca419de04e275e08b1bd296922c (patch) | |
tree | c1a3a39c36e9b53d0129f0e24a9a032bfea066ca /util/kconfig/Makefile | |
parent | 8585eabc5d5b516f46b2980a40b25f49eef5e056 (diff) |
util/kconfig: Uprev to Linux 5.13's kconfig
This was originally several commits that had to be squashed into one
because the intermediate states weren't able to build coreboot:
- one to remove everything that wasn't our own code, leaving only
regex.[ch], toada.c, description.md and Makefile.inc.
- one to copy in Linux 5.13's scripts/kconfig and adapt Makefile.inc
to make the original Makefile work again.
- adapt abuild to use olddefconfig, simplifying matters.
- apply patches in util/kconfig/patches.
- Some more adaptations to the libpayload build system.
The patches are now in util/kconfig/patches/, reverse applying them
should lead to a util/kconfig/ tree that contains exactly the Linux
version + our own 5 files.
Change-Id: Ia0e8fe4e9022b278f34ab113a433ef4d45e5c355
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37152
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Diffstat (limited to 'util/kconfig/Makefile')
-rw-r--r-- | util/kconfig/Makefile | 496 |
1 files changed, 166 insertions, 330 deletions
diff --git a/util/kconfig/Makefile b/util/kconfig/Makefile index 1713b8d0eb..5a215880b2 100644 --- a/util/kconfig/Makefile +++ b/util/kconfig/Makefile @@ -1,377 +1,213 @@ +# SPDX-License-Identifier: GPL-2.0 # =========================================================================== # Kernel configuration targets # These targets are used from top-level makefile -export LC_ALL=C -export LANG=C - -DEFCONFIG?=defconfig +ifdef KBUILD_KCONFIG +Kconfig := $(KBUILD_KCONFIG) +else +Kconfig := Kconfig +endif -PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \ - localmodconfig localyesconfig +ifndef KBUILD_DEFCONFIG +KBUILD_DEFCONFIG := defconfig +endif -xconfig: $(objk)/qconf - $< $(Kconfig) +ifeq ($(quiet),silent_) +silent := -s +endif -gconfig: $(objk)/gconf - cp -f $(srck)/gconf.glade $(objk)/gconf.glade - $< $(Kconfig) +export KCONFIG_DEFCONFIG_LIST := +ifndef cross_compiling +kernel-release := $(shell uname -r) +KCONFIG_DEFCONFIG_LIST += \ + /lib/modules/$(kernel-release)/.config \ + /etc/kernel-config \ + /boot/config-$(kernel-release) +endif +KCONFIG_DEFCONFIG_LIST += arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) + +# We need this, in case the user has it in its environment +unexport CONFIG_ + +config-prog := conf +menuconfig-prog := mconf +nconfig-prog := nconf +gconfig-prog := gconf +xconfig-prog := qconf + +define config_rule +PHONY += $(1) +$(1): $(obj)/$($(1)-prog) + $(Q)$$< $(silent) $(Kconfig) + +PHONY += build_$(1) +build_$(1): $(obj)/$($(1)-prog) +endef + +$(foreach c, config menuconfig nconfig gconfig xconfig, $(eval $(call config_rule,$(c)))) + +PHONY += localmodconfig localyesconfig +localyesconfig localmodconfig: $(obj)/conf + $(Q)$(PERL) $(srctree)/$(src)/streamline_config.pl --$@ $(srctree) $(Kconfig) > .tmp.config + $(Q)if [ -f .config ]; then \ + cmp -s .tmp.config .config || \ + (mv -f .config .config.old.1; \ + mv -f .tmp.config .config; \ + $< $(silent) --oldconfig $(Kconfig); \ + mv -f .config.old.1 .config.old) \ + else \ + mv -f .tmp.config .config; \ + $< $(silent) --oldconfig $(Kconfig); \ + fi + $(Q)rm -f .tmp.config -menuconfig: $(objk)/mconf - $< $(Kconfig) +# These targets map 1:1 to the commandline options of 'conf' +# +# Note: +# syncconfig has become an internal implementation detail and is now +# deprecated for external use +simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \ + alldefconfig randconfig listnewconfig olddefconfig syncconfig \ + helpnewconfig yes2modconfig mod2yesconfig -config: $(objk)/conf - $< --oldaskconfig $(Kconfig) +PHONY += $(simple-targets) -nconfig: $(objk)/nconf - $< $(Kconfig) +$(simple-targets): $(obj)/conf + $(Q)$< $(silent) --$@ $(Kconfig) -# Disable strict mode because oldconfig is typically used to clean up -# templates and the like. The second invocation should already have sane data. -oldconfig: $(objk)/conf - KCONFIG_STRICT= $< --$@ $(Kconfig) - $< --silentoldconfig $(Kconfig) +PHONY += savedefconfig defconfig -silentoldconfig: $(objk)/conf - $< --$@ $(Kconfig) +savedefconfig: $(obj)/conf + $(Q)$< $(silent) --$@=defconfig $(Kconfig) -# --- UNUSED, ignore ---------------------------------------------------------- -localyesconfig localmodconfig: $(obj)/streamline_config.pl $(obj)/conf - $(Q)mkdir -p include/generated - $(Q)perl $< --$@ $(srctree) $(Kconfig) > .tmp.config - $(Q)if [ -f .config ]; then \ - cmp -s .tmp.config .config || \ - (mv -f .config .config.old.1; \ - mv -f .tmp.config .config; \ - $(obj)/conf --silentoldconfig $(Kconfig); \ - mv -f .config.old.1 .config.old) \ - else \ - mv -f .tmp.config .config; \ - $(obj)/conf --silentoldconfig $(Kconfig); \ - fi - $(Q)rm -f .tmp.config - -# Create new linux.pot file -# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files -update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h - $(Q)echo " GEN config.pot" - $(Q)xgettext --default-domain=linux \ - --add-comments --keyword=_ --keyword=N_ \ - --from-code=UTF-8 \ - --files-from=$(srctree)/scripts/kconfig/POTFILES.in \ - --directory=$(srctree) --directory=$(objtree) \ - --output $(obj)/config.pot - $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot - $(Q)(for i in `ls $(srctree)/arch/*/Kconfig \ - $(srctree)/arch/*/um/Kconfig`; \ - do \ - echo " GEN $$i"; \ - $(obj)/kxgettext $$i \ - >> $(obj)/config.pot; \ - done ) - $(Q)echo " GEN linux.pot" - $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \ - --output $(obj)/linux.pot - $(Q)rm -f $(obj)/config.pot -# --- UNUSED, ignore ---------------------------------------------------------- - -PHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig savedefconfig - -allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(objk)/conf - $< --$@ $(Kconfig) - -savedefconfig: $(objk)/conf - $< --$@=$(DEFCONFIG) $(Kconfig) - -defconfig: $(objk)/conf -ifeq ($(KBUILD_DEFCONFIG),) - $< --defconfig $(Kconfig) +defconfig: $(obj)/conf +ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),) + @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" + $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig) else - @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" - $< --defconfig=$(KBUILD_DEFCONFIG) $(Kconfig) + @$(kecho) "*** Default configuration is based on target '$(KBUILD_DEFCONFIG)'" + $(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG) endif -olddefconfig: $(objk)/conf - $< --olddefconfig $(Kconfig) +%_defconfig: $(obj)/conf + $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig) + +configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@) + +%.config: $(obj)/conf + $(if $(call configfiles),, $(error No configuration exists for this target on this architecture)) + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles) + $(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig -%_defconfig: $(objk)/conf - $< --defconfig=configs/$@ $(Kconfig) +PHONY += tinyconfig +tinyconfig: + $(Q)KCONFIG_ALLCONFIG=kernel/configs/tiny-base.config $(MAKE) -f $(srctree)/Makefile allnoconfig + $(Q)$(MAKE) -f $(srctree)/Makefile tiny.config + +# CHECK: -o cache_dir=<path> working? +PHONY += testconfig +testconfig: $(obj)/conf + $(Q)$(PYTHON3) -B -m pytest $(srctree)/$(src)/tests \ + -o cache_dir=$(abspath $(obj)/tests/.cache) \ + $(if $(findstring 1,$(KBUILD_VERBOSE)),--capture=no) +clean-files += tests/.cache # Help text used by make help -help_kconfig help:: - @echo '*** Kconfig Targets ***' +help: @echo ' config - Update current config utilising a line-oriented program' @echo ' nconfig - Update current config utilising a ncurses menu based program' @echo ' menuconfig - Update current config utilising a menu based program' - @echo ' xconfig - Update current config utilising a QT based front-end' - @echo ' gconfig - Update current config utilising a GTK based front-end' + @echo ' xconfig - Update current config utilising a Qt based front-end' + @echo ' gconfig - Update current config utilising a GTK+ based front-end' @echo ' oldconfig - Update current config utilising a provided .config as base' - @echo ' olddefconfig - Same as oldconfig, but with default answer to all new options' - #@echo ' localmodconfig - Update current config disabling modules not loaded' - #@echo ' localyesconfig - Update current config converting local mods to core' - @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps' - @echo ' defconfig - New config with default answer to all options' + @echo ' localmodconfig - Update current config disabling modules not loaded' + @echo ' except those preserved by LMC_KEEP environment variable' + @echo ' localyesconfig - Update current config converting local mods to core' + @echo ' except those preserved by LMC_KEEP environment variable' + @echo ' defconfig - New config with default from ARCH supplied defconfig' @echo ' savedefconfig - Save current config as ./defconfig (minimal config)' - #@echo ' allnoconfig - New config where all options are answered with no' - #@echo ' allyesconfig - New config where all options are accepted with yes' - #@echo ' allmodconfig - New config selecting modules when possible' - #@echo ' randconfig - New config with random answer to all options' - @echo - -# lxdialog stuff -check-lxdialog := $(srck)/lxdialog/check-lxdialog.sh - -# Use recursively expanded variables so we do not call gcc unless -# we really need to do so. (Do not call gcc as part of make mrproper) -HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \ - -DLOCALE -HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) \ - -ldflags $(HOSTCC)) -ltinfo - + @echo ' allnoconfig - New config where all options are answered with no' + @echo ' allyesconfig - New config where all options are accepted with yes' + @echo ' allmodconfig - New config selecting modules when possible' + @echo ' alldefconfig - New config with all symbols set to default' + @echo ' randconfig - New config with random answer to all options' + @echo ' yes2modconfig - Change answers from yes to mod if possible' + @echo ' mod2yesconfig - Change answers from mod to yes if possible' + @echo ' listnewconfig - List new options' + @echo ' helpnewconfig - List new options and help text' + @echo ' olddefconfig - Same as oldconfig but sets new symbols to their' + @echo ' default value without prompting' + @echo ' tinyconfig - Configure the tiniest possible kernel' + @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)' # =========================================================================== -# Shared Makefile for the various kconfig executables: -# conf: Used for defconfig, oldconfig and related targets -# nconf: Used for the nconfig target. -# Utilizes ncurses -# mconf: Used for the menuconfig target -# Utilizes the lxdialog package -# qconf: Used for the xconfig target -# Based on QT which needs to be installed to compile it -# gconf: Used for the gconfig target -# Based on GTK which needs to be installed to compile it # object files used by all kconfig flavours +common-objs := confdata.o expr.o lexer.lex.o menu.o parser.tab.o \ + preprocess.o symbol.o util.o -lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o -lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o +$(obj)/lexer.lex.o: $(obj)/parser.tab.h +HOSTCFLAGS_lexer.lex.o := -I $(srctree)/$(src) +HOSTCFLAGS_parser.tab.o := -I $(srctree)/$(src) -conf-objs := conf.o zconf.tab.o $(regex-objs) -mconf-objs := mconf.o zconf.tab.o $(lxdialog) $(regex-objs) -nconf-objs := nconf.o zconf.tab.o nconf.gui.o -kxgettext-objs := kxgettext.o zconf.tab.o -qconf-cxxobjs := qconf.o -qconf-objs := zconf.tab.o -gconf-objs := gconf.o zconf.tab.o +# conf: Used for defconfig, oldconfig and related targets +hostprogs += conf +conf-objs := conf.o $(common-objs) -hostprogs-y := conf +# nconf: Used for the nconfig target based on ncurses +hostprogs += nconf +nconf-objs := nconf.o nconf.gui.o $(common-objs) -ifeq ($(MAKECMDGOALS),nconfig) - hostprogs-y += nconf -endif +HOSTLDLIBS_nconf = $(shell . $(obj)/nconf-cfg && echo $$libs) +HOSTCFLAGS_nconf.o = $(shell . $(obj)/nconf-cfg && echo $$cflags) +HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/nconf-cfg && echo $$cflags) -ifeq ($(MAKECMDGOALS),menuconfig) - hostprogs-y += mconf -endif +$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg -ifeq ($(MAKECMDGOALS),update-po-config) - hostprogs-y += kxgettext -endif - -ifeq ($(MAKECMDGOALS),xconfig) - qconf-target := 1 -endif -ifeq ($(MAKECMDGOALS),gconfig) - gconf-target := 1 -endif - - -ifeq ($(qconf-target),1) - hostprogs-y += qconf -endif - -ifeq ($(gconf-target),1) - hostprogs-y += gconf -endif +# mconf: Used for the menuconfig target based on lxdialog +hostprogs += mconf +lxdialog := $(addprefix lxdialog/, \ + checklist.o inputbox.o menubox.o textbox.o util.o yesno.o) +mconf-objs := mconf.o $(lxdialog) $(common-objs) -clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck -clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h -clean-files += mconf qconf gconf nconf -clean-files += config.pot linux.pot - -# Check that we have the required ncurses stuff installed for lxdialog (menuconfig) -PHONY += $(objk)/dochecklxdialog -$(addprefix $(obj)/,$(lxdialog)): $(objk)/dochecklxdialog -$(objk)/dochecklxdialog: - $(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES) - -always := dochecklxdialog - -# Add environment specific flags -HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srck)/check.sh $(HOSTCC) $(HOSTCFLAGS)) - -# generated files seem to need this to find local include files -HOSTCFLAGS_zconf.lex.o := -I$(src) -HOSTCFLAGS_zconf.tab.o := -I$(src) - -LEX_PREFIX_zconf := zconf -YACC_PREFIX_zconf := zconf - -HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl -HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) - -HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` -HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \ - -Wno-missing-prototypes - -HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC)) - -HOSTLOADLIBES_nconf = $(shell \ - pkg-config --libs menu panel ncurses 2>/dev/null \ - || echo "-lmenu -lpanel -lncurses" ) - -$(objk)/qconf.o: $(objk)/.tmp_qtcheck - -ifeq ($(qconf-target),1) -$(objk)/.tmp_qtcheck: $(srck)/Makefile --include $(objk)/.tmp_qtcheck - -# QT needs some extra effort... -$(objk)/.tmp_qtcheck: - @set -e; echo " CHECK qt"; dir=""; pkg=""; \ - if pkg-config --exists Qt5Core; then \ - cflags="-std=c++11 -fPIC `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets`"; \ - libs=`pkg-config --libs Qt5Core Qt5Gui Qt5Widgets`; \ - moc=`pkg-config --variable=host_bins Qt5Core`/moc; \ - elif pkg-config --exists QtCore; then \ - cflags=`pkg-config --cflags QtCore QtGui`; \ - libs=`pkg-config --libs QtCore QtGui`; \ - moc=`pkg-config --variable=moc_location QtCore`; \ - else \ - echo >&2 "*"; \ - echo >&2 "* Could not find Qt via pkg-config."; \ - echo >&2 "* Please install either Qt 4.8 or 5.x. and make sure it's in PKG_CONFIG_PATH"; \ - echo >&2 "*"; \ - exit 1; \ - fi; \ - echo "KC_QT_CFLAGS=$$cflags" > $@; \ - echo "KC_QT_LIBS=$$libs" >> $@; \ - echo "KC_QT_MOC=$$moc" >> $@ -endif +HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs) +$(foreach f, mconf.o $(lxdialog), \ + $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags))) -$(objk)/gconf.o: $(objk)/.tmp_gtkcheck - -ifeq ($(gconf-target),1) --include $(objk)/.tmp_gtkcheck - -# GTK needs some extra effort, too... -$(objk)/.tmp_gtkcheck: - @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \ - if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \ - touch $@; \ - else \ - echo >&2 "*"; \ - echo >&2 "* GTK+ is present but version >= 2.0.0 is required."; \ - echo >&2 "*"; \ - false; \ - fi \ - else \ - echo >&2 "*"; \ - echo >&2 "* Unable to find the GTK+ installation. Please make sure that"; \ - echo >&2 "* the GTK+ 2.0 development package is correctly installed..."; \ - echo >&2 "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \ - echo >&2 "*"; \ - false; \ - fi -endif +$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg -# --- UNUSED, ignore ---------------------------------------------------------- -ifdef UNUSED -$(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c +# qconf: Used for the xconfig target based on Qt +hostprogs += qconf +qconf-cxxobjs := qconf.o qconf-moc.o +qconf-objs := images.o $(common-objs) -$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h +HOSTLDLIBS_qconf = $(shell . $(obj)/qconf-cfg && echo $$libs) +HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/qconf-cfg && echo $$cflags) +HOSTCXXFLAGS_qconf-moc.o = $(shell . $(obj)/qconf-cfg && echo $$cflags) -$(obj)/gconf.o: $(obj)/lkc_defs.h +$(obj)/qconf.o: $(obj)/qconf-cfg -$(obj)/%.moc: $(srck)/%.h - $(KC_QT_MOC) -i $< -o $@ +quiet_cmd_moc = MOC $@ + cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) $< -o $@ -$(obj)/lkc_defs.h: $(src)/lkc_proto.h - sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' - -# Extract gconf menu items for I18N support -$(obj)/gconf.glade.h: $(obj)/gconf.glade - intltool-extract --type=gettext/glade $(obj)/gconf.glade -endif -# --- UNUSED, ignore ---------------------------------------------------------- +$(obj)/qconf-moc.cc: $(src)/qconf.h $(obj)/qconf-cfg FORCE + $(call if_changed,moc) -### -# The following requires flex/bison/gperf -# By default we use the _shipped versions, uncomment the following line if -# you are modifying the flex/bison src. -# LKC_GENPARSER := 1 +targets += qconf-moc.cc -ifdef LKC_GENPARSER +# gconf: Used for the gconfig target based on GTK+ +hostprogs += gconf +gconf-objs := gconf.o images.o $(common-objs) -# --- UNUSED, ignore ---------------------------------------------------------- -$(obj)/zconf.tab.c: $(src)/zconf.y -$(obj)/zconf.lex.c: $(src)/zconf.l -$(obj)/zconf.hash.c: $(src)/zconf.gperf +HOSTLDLIBS_gconf = $(shell . $(obj)/gconf-cfg && echo $$libs) +HOSTCFLAGS_gconf.o = $(shell . $(obj)/gconf-cfg && echo $$cflags) -%.tab.c: %.y - bison -t -l -b $* -p $(notdir $*) $< +$(obj)/gconf.o: $(obj)/gconf-cfg -%.tab.c_shipped: %.tab.c - cp $< $@ +# check if necessary packages are available, and configure build flags +filechk_conf_cfg = $(CONFIG_SHELL) $< -%.lex.c: %.l - flex -L -P$(notdir $*) -o$@ $< - -%.lex.c_shipped: %.lex.c - cp $< $@ - -%.hash.c: %.gperf - gperf < $< > $@ - cp $@ $@_shipped -# --- UNUSED, ignore ---------------------------------------------------------- - -endif +$(obj)/%conf-cfg: $(src)/%conf-cfg.sh FORCE + $(call filechk,conf_cfg) -$(objk)/qconf: $(patsubst %,$(objk)/%,$(qconf-cxxobjs)) \ - $(patsubst %,$(objk)/%,$(qconf-objs)) - $(HOSTCXX) $(HOSTCXXFLAGS) -o $@ $^ $(HOSTLOADLIBES_qconf) -$(objk)/gconf: $(patsubst %,$(objk)/%,$(gconf-objs)) - $(HOSTCC) $(HOSTCFLAGS) -o $@ $^ $(HOSTLOADLIBES_gconf) -$(objk)/mconf: $(patsubst %,$(objk)/%,$(mconf-objs)) - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $^ -o $@ $(HOST_LOADLIBES) -$(objk)/nconf: $(patsubst %,$(objk)/%,$(nconf-objs)) - $(HOSTCC) $(HOSTCFLAGS) -o $@ $^ $(HOSTLOADLIBES_nconf) -$(objk)/conf: $(patsubst %,$(objk)/%,$(conf-objs)) - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -o $@ $^ - -$(objk)/mconf.o: $(srck)/mconf.c - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $< -$(objk)/nconf.o: $(srck)/nconf.c - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $< -$(objk)/nconf.gui.o: $(srck)/nconf.gui.c - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $< -$(objk)/conf.o: $(srck)/conf.c - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $< - -$(objk)/zconf.tab.o: $(objk)/zconf.tab.c $(objk)/zconf.lex.c \ - $(objk)/zconf.hash.c - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $(objk)/zconf.tab.c -$(objk)/qconf.o: $(srck)/qconf.cc $(objk)/qconf.moc $(objk)/lkc_defs.h - $(HOSTCXX) $(HOSTCXXFLAGS) $(HOSTCXXFLAGS_qconf.o) -c -o $@ $< -$(objk)/gconf.o: $(srck)/gconf.c $(objk)/lkc_defs.h - $(HOSTCC) $(HOSTCFLAGS) $(HOSTCFLAGS_gconf.o) -c -o $@ $< -$(objk)/%.moc: $(srck)/%.h - $(KC_QT_MOC) -i $< -o $@ -$(objk)/lkc_defs.h: $(srck)/lkc_proto.h - sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' - -$(objk)/zconf.lex.c: $(srck)/zconf.lex.c_shipped - cp $< $@ -$(objk)/zconf.hash.c: $(srck)/zconf.hash.c_shipped - cp $< $@ -$(objk)/zconf.tab.c: $(srck)/zconf.tab.c_shipped - cp $< $@ - -$(objk)/lxdialog/lxdialog: $(objk)/dochecklxdialog \ - $(patsubst %,$(objk)/lxdialog/%,$(lxdialog)) - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \ - $(patsubst %,$(objk)/lxdialog/%,$(lxdialog)) $(HOST_LOADLIBES) -o $@ -$(objk)/lxdialog/%.o: $(srck)/lxdialog/%.c - $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $^ -c -o $@ - -$(objk)/%.o: HOSTCFLAGS+=-I$(srck) -I$(objk) -$(objk)/%.o: HOSTCXXFLAGS+=-I$(srck) -I$(objk) +clean-files += *conf-cfg |