mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Add --warn-undefined-variables to MAKEFLAGS
Fix warnings where undefined vars are used. Make Kconfig emit "FOO=" for unset bool options To ensure make variables are always defined, even if empty. When writing auto.conf, include symbols disabled by dependency to make sure all make variables are always defined. Fixes espressif/esp-idf#137 Cherry-picked from https://github.com/espressif/esp-idf/pull/138
This commit is contained in:
parent
11a87ca811
commit
9903ea1c11
@ -8,7 +8,7 @@ COMPONENT_ADD_INCLUDEDIRS := include
|
||||
|
||||
COMPONENT_ADD_LDFLAGS := -lapp_trace
|
||||
|
||||
ifdef CONFIG_SYSVIEW_ENABLE
|
||||
ifeq ("$(CONFIG_SYSVIEW_ENABLE)","y")
|
||||
#COMPONENT_EXTRA_INCLUDES := freertos
|
||||
|
||||
COMPONENT_ADD_INCLUDEDIRS += \
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Component Makefile
|
||||
#
|
||||
|
||||
ifdef CONFIG_AWS_IOT_SDK
|
||||
ifeq ("$(CONFIG_AWS_IOT_SDK)","y")
|
||||
|
||||
COMPONENT_ADD_INCLUDEDIRS := include aws-iot-device-sdk-embedded-C/include
|
||||
|
||||
|
@ -13,6 +13,7 @@ BOOTLOADER_BUILD_DIR=$(abspath $(BUILD_DIR_BASE)/bootloader)
|
||||
BOOTLOADER_BIN=$(BOOTLOADER_BUILD_DIR)/bootloader.bin
|
||||
|
||||
# signing key path is resolved relative to the project directory
|
||||
CONFIG_SECURE_BOOT_SIGNING_KEY ?=
|
||||
SECURE_BOOT_SIGNING_KEY=$(abspath $(call dequote,$(CONFIG_SECURE_BOOT_SIGNING_KEY)))
|
||||
export SECURE_BOOT_SIGNING_KEY # used by bootloader_support component
|
||||
|
||||
@ -107,7 +108,7 @@ $(BOOTLOADER_DIGEST_BIN): $(BOOTLOADER_BIN) $(SECURE_BOOTLOADER_KEY)
|
||||
@echo "DIGEST $(notdir $@)"
|
||||
$(Q) $(ESPSECUREPY) digest_secure_bootloader -k $(SECURE_BOOTLOADER_KEY) -o $@ $<
|
||||
|
||||
else
|
||||
else # CONFIG_SECURE_BOOT_ENABLED && !CONFIG_SECURE_BOOTLOADER_REFLASHABLE && !CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH
|
||||
bootloader:
|
||||
@echo "Invalid bootloader target: bad sdkconfig?"
|
||||
@exit 1
|
||||
|
@ -12,7 +12,7 @@ LINKER_SCRIPTS := \
|
||||
$(IDF_PATH)/components/esp32/ld/esp32.peripherals.ld \
|
||||
esp32.bootloader.rom.ld
|
||||
|
||||
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
|
||||
ifneq ("$(CONFIG_SPI_FLASH_ROM_DRIVER_PATCH)","y")
|
||||
LINKER_SCRIPTS += $(IDF_PATH)/components/esp32/ld/esp32.rom.spiflash.ld
|
||||
endif
|
||||
|
||||
|
@ -12,12 +12,12 @@ COMPONENT_SRCDIRS := src
|
||||
#
|
||||
# Secure boot signing key support
|
||||
#
|
||||
ifdef CONFIG_SECURE_BOOT_ENABLED
|
||||
ifneq ("$(CONFIG_SECURE_BOOT_ENABLED)","")
|
||||
|
||||
# this path is created relative to the component build directory
|
||||
SECURE_BOOT_VERIFICATION_KEY := $(abspath signature_verification_key.bin)
|
||||
|
||||
ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
|
||||
ifneq ("$(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)","")
|
||||
# verification key derived from signing key.
|
||||
$(SECURE_BOOT_VERIFICATION_KEY): $(SECURE_BOOT_SIGNING_KEY) $(SDKCONFIG_MAKEFILE)
|
||||
$(ESPSECUREPY) extract_public_key --keyfile $< $@
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Component Makefile
|
||||
#
|
||||
ifdef CONFIG_BT_ENABLED
|
||||
ifneq ("$(CONFIG_BT_ENABLED)","")
|
||||
|
||||
COMPONENT_SRCDIRS := .
|
||||
|
||||
@ -20,7 +20,7 @@ COMPONENT_SUBMODULES += lib
|
||||
endif
|
||||
|
||||
|
||||
ifdef CONFIG_BLUEDROID_ENABLED
|
||||
ifeq ("$(CONFIG_BLUEDROID_ENABLED)","y")
|
||||
|
||||
COMPONENT_ADD_INCLUDEDIRS += bluedroid/bta/include \
|
||||
bluedroid/bta/sys/include \
|
||||
|
@ -846,7 +846,7 @@ config ESP32_WIFI_NVS_ENABLED
|
||||
|
||||
endmenu # Wi-Fi
|
||||
|
||||
menu Phy
|
||||
menu PHY
|
||||
|
||||
config ESP32_PHY_CALIBRATION_AND_DATA_STORAGE
|
||||
bool "Do phy calibration and store calibration data in NVS"
|
||||
|
@ -3,8 +3,9 @@
|
||||
#
|
||||
|
||||
COMPONENT_SRCDIRS := . hwcrypto
|
||||
ifndef CONFIG_NO_BLOBS
|
||||
LIBS := core rtc net80211 pp wpa smartconfig coexist wps wpa2 phy
|
||||
LIBS ?=
|
||||
ifneq ("$(CONFIG_NO_BLOBS)","y")
|
||||
LIBS += core rtc net80211 pp wpa smartconfig coexist wps wpa2 phy
|
||||
endif
|
||||
|
||||
#Linker scripts used to link the final application.
|
||||
@ -22,7 +23,7 @@ ifeq ("$(CONFIG_NEWLIB_NANO_FORMAT)","y")
|
||||
LINKER_SCRIPTS += esp32.rom.nanofmt.ld
|
||||
endif
|
||||
|
||||
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
|
||||
ifneq ("$(CONFIG_SPI_FLASH_ROM_DRIVER_PATCH)","y")
|
||||
LINKER_SCRIPTS += esp32.rom.spiflash.ld
|
||||
endif
|
||||
|
||||
|
@ -6,6 +6,8 @@ ESPFLASHMODE ?= $(CONFIG_ESPTOOLPY_FLASHMODE)
|
||||
ESPFLASHFREQ ?= $(CONFIG_ESPTOOLPY_FLASHFREQ)
|
||||
ESPFLASHSIZE ?= $(CONFIG_ESPTOOLPY_FLASHSIZE)
|
||||
|
||||
CONFIG_ESPTOOLPY_COMPRESSED ?=
|
||||
|
||||
PYTHON ?= $(call dequote,$(CONFIG_PYTHON))
|
||||
|
||||
# two commands that can be used from other components
|
||||
|
@ -6,6 +6,6 @@ COMPONENT_ADD_LDFLAGS += -Wl,--undefined=uxTopUsedPriority
|
||||
COMPONENT_ADD_INCLUDEDIRS := include
|
||||
COMPONENT_PRIV_INCLUDEDIRS := include/freertos
|
||||
|
||||
#ifdef CONFIG_SYSVIEW_ENABLE
|
||||
#ifeq ("$(CONFIG_SYSVIEW_ENABLE)","y")
|
||||
#COMPONENT_ADD_INCLUDEDIRS += app_trace
|
||||
#endif
|
||||
|
@ -8,8 +8,10 @@ COMPONENT_ADD_INCLUDEDIRS := \
|
||||
include/lwip/posix \
|
||||
apps/ping
|
||||
|
||||
ifdef CONFIG_PPP_SUPPORT
|
||||
ifeq ("$(CONFIG_PPP_SUPPORT)","y")
|
||||
LWIP_PPP_DIRS := netif/ppp/polarssl netif/ppp
|
||||
else
|
||||
LWIP_PPP_DIRS :=
|
||||
endif
|
||||
|
||||
COMPONENT_SRCDIRS := \
|
||||
|
@ -1,5 +1,4 @@
|
||||
|
||||
|
||||
ifeq ("$(CONFIG_SPIRAM_CACHE_WORKAROUND)","y")
|
||||
LIBC_PATH := $(COMPONENT_PATH)/lib/libc-psram-workaround.a
|
||||
LIBM_PATH := $(COMPONENT_PATH)/lib/libm-psram-workaround.a
|
||||
@ -14,7 +13,7 @@ endif
|
||||
|
||||
LIBM_PATH := $(COMPONENT_PATH)/lib/libm.a
|
||||
|
||||
endif
|
||||
endif # CONFIG_SPIRAM_CACHE_WORKAROUND
|
||||
|
||||
COMPONENT_ADD_LDFLAGS := $(LIBC_PATH) $(LIBM_PATH) -lnewlib
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Main Makefile. This is basically the same as a component makefile.
|
||||
#
|
||||
|
||||
ifdef CONFIG_EXAMPLE_EMBEDDED_CERTS
|
||||
ifeq ("$(CONFIG_EXAMPLE_EMBEDDED_CERTS)","y")
|
||||
# Certificate files. certificate.pem.crt & private.pem.key must be downloaded
|
||||
# from AWS, see README for details.
|
||||
COMPONENT_EMBED_TXTFILES := certs/aws-root-ca.pem certs/certificate.pem.crt certs/private.pem.key
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Main Makefile. This is basically the same as a component makefile.
|
||||
#
|
||||
|
||||
ifdef CONFIG_EXAMPLE_EMBEDDED_CERTS
|
||||
ifeq ("$(CONFIG_EXAMPLE_EMBEDDED_CERTS)","y")
|
||||
# Certificate files. certificate.pem.crt & private.pem.key must be downloaded
|
||||
# from AWS, see README for details.
|
||||
COMPONENT_EMBED_TXTFILES := certs/aws-root-ca.pem certs/certificate.pem.crt certs/private.pem.key
|
||||
|
@ -19,6 +19,7 @@ endif
|
||||
#
|
||||
# if V=1, $(summary) does nothing and $(details) will echo extra details
|
||||
# if V is unset or not 1, $(summary) echoes a summary and $(details) does nothing
|
||||
VERBOSE ?=
|
||||
V ?= $(VERBOSE)
|
||||
ifeq ("$(V)","1")
|
||||
summary := @true
|
||||
@ -28,7 +29,7 @@ summary := @echo
|
||||
details := @true
|
||||
|
||||
# disable echoing of commands, directory names
|
||||
MAKEFLAGS += --silent
|
||||
MAKEFLAGS += --silent --warn-undefined-variables
|
||||
endif
|
||||
|
||||
# General make utilities
|
||||
|
@ -63,6 +63,13 @@ define compile_only_if_not
|
||||
$(eval $(if $(1), $(call compile_exclude, $(2)), $(call compile_include, $(2))))
|
||||
endef
|
||||
|
||||
COMPONENT_ADD_LINKER_DEPS ?=
|
||||
COMPONENT_DEPENDS ?=
|
||||
COMPONENT_EXTRA_CLEAN ?=
|
||||
COMPONENT_EXTRA_INCLUDES ?=
|
||||
COMPONENT_OBJEXCLUDE ?=
|
||||
COMPONENT_OBJINCLUDE ?=
|
||||
COMPONENT_SUBMODULES ?=
|
||||
|
||||
################################################################################
|
||||
# 2) Include the component.mk for the specific component (COMPONENT_MAKEFILE) to
|
||||
@ -105,6 +112,7 @@ COMPONENT_EMBED_OBJS ?= $(addsuffix .bin.o,$(notdir $(COMPONENT_EMBED_FILES))) $
|
||||
# variable with all the include dirs from all the components in random order. This
|
||||
# means we can accidentally grab a header from another component before grabbing our own.
|
||||
# To make sure that does not happen, re-order the includes so ours come first.
|
||||
COMPONENT_PRIV_INCLUDEDIRS ?=
|
||||
OWN_INCLUDES:=$(abspath $(addprefix $(COMPONENT_PATH)/,$(COMPONENT_PRIV_INCLUDEDIRS) $(COMPONENT_ADD_INCLUDEDIRS)))
|
||||
COMPONENT_INCLUDES := $(OWN_INCLUDES) $(filter-out $(OWN_INCLUDES),$(COMPONENT_INCLUDES))
|
||||
|
||||
@ -139,7 +147,7 @@ endef
|
||||
# component-specific feature, please don't! What you want is a
|
||||
# Makefile.projbuild for your component (see docs/build-system.rst for
|
||||
# more.)
|
||||
component_project_vars.mk::
|
||||
component_project_vars.mk:
|
||||
$(details) "Building component project variables list $(abspath $@)"
|
||||
@echo '# Automatically generated build file. Do not edit.' > $@
|
||||
@echo 'COMPONENT_INCLUDES += $(call MakeVariablePath,$(addprefix $(COMPONENT_PATH)/,$(COMPONENT_ADD_INCLUDEDIRS)))' >> $@
|
||||
@ -178,6 +186,8 @@ clean:
|
||||
rm -f $(CLEAN_FILES)
|
||||
endif
|
||||
|
||||
DEBUG_FLAGS ?= -ggdb
|
||||
|
||||
# Include all dependency files already generated
|
||||
-include $(COMPONENT_OBJS:.o=.d)
|
||||
|
||||
|
@ -56,6 +56,7 @@ $(error esp-idf build system doesn't support running 'clean' targets along with
|
||||
endif
|
||||
endif
|
||||
|
||||
OS ?=
|
||||
|
||||
# make IDF_PATH a "real" absolute path
|
||||
# * works around the case where a shell character is embedded in the environment variable value.
|
||||
@ -113,6 +114,7 @@ export BUILD_DIR_BASE
|
||||
# or the directory contains subdirectories which are components.)
|
||||
# The project Makefile can override these component dirs, or add extras via EXTRA_COMPONENT_DIRS
|
||||
ifndef COMPONENT_DIRS
|
||||
EXTRA_COMPONENT_DIRS ?=
|
||||
COMPONENT_DIRS := $(PROJECT_PATH)/components $(EXTRA_COMPONENT_DIRS) $(IDF_PATH)/components $(PROJECT_PATH)/main
|
||||
endif
|
||||
export COMPONENT_DIRS
|
||||
@ -146,15 +148,18 @@ export COMPONENTS
|
||||
COMPONENT_PATHS := $(foreach comp,$(COMPONENTS),$(firstword $(foreach cd,$(COMPONENT_DIRS),$(wildcard $(dir $(cd))$(comp) $(cd)/$(comp)))))
|
||||
|
||||
# If TESTS_ALL set to 1, set TEST_COMPONENTS_LIST to all components
|
||||
ifdef TESTS_ALL
|
||||
ifeq ($(TESTS_ALL),1)
|
||||
TEST_COMPONENTS_LIST := $(COMPONENTS)
|
||||
else
|
||||
# otherwise, use TEST_COMPONENTS
|
||||
TEST_COMPONENTS_LIST := $(TEST_COMPONENTS)
|
||||
endif
|
||||
else
|
||||
TEST_COMPONENTS_LIST :=
|
||||
endif
|
||||
TEST_COMPONENT_PATHS := $(foreach comp,$(TEST_COMPONENTS_LIST),$(firstword $(foreach dir,$(COMPONENT_DIRS),$(wildcard $(dir)/$(comp)/test))))
|
||||
TEST_COMPONENT_NAMES := $(foreach comp,$(TEST_COMPONENT_PATHS),$(lastword $(subst /, ,$(dir $(comp))))_test)
|
||||
|
||||
TEST_COMPONENT_NAMES := $(foreach comp,$(TEST_COMPONENT_PATHS),$(lastword $(subst /, ,$(dir $(comp))))_test)
|
||||
|
||||
# Initialise project-wide variables which can be added to by
|
||||
# each component.
|
||||
@ -189,9 +194,9 @@ export COMPONENT_INCLUDES
|
||||
include $(IDF_PATH)/make/common.mk
|
||||
|
||||
all:
|
||||
ifdef CONFIG_SECURE_BOOT_ENABLED
|
||||
ifneq ("$(CONFIG_SECURE_BOOT_ENABLED)","")
|
||||
@echo "(Secure boot enabled, so bootloader not flashed automatically. See 'make bootloader' output)"
|
||||
ifndef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
|
||||
ifeq ("$(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)","")
|
||||
@echo "App built but not signed. Sign app & partition data before flashing, via espsecure.py:"
|
||||
@echo "espsecure.py sign_data --keyfile KEYFILE $(APP_BIN)"
|
||||
@echo "espsecure.py sign_data --keyfile KEYFILE $(PARTITION_TABLE_BIN)"
|
||||
@ -206,6 +211,7 @@ endif
|
||||
IDF_VER := $(shell cd ${IDF_PATH} && git describe --always --tags --dirty)
|
||||
|
||||
# Set default LDFLAGS
|
||||
EXTRA_LDFLAGS ?=
|
||||
LDFLAGS ?= -nostdlib \
|
||||
-u call_user_start_cpu0 \
|
||||
$(EXTRA_LDFLAGS) \
|
||||
@ -228,6 +234,8 @@ LDFLAGS ?= -nostdlib \
|
||||
|
||||
# CPPFLAGS used by C preprocessor
|
||||
# If any flags are defined in application Makefile, add them at the end.
|
||||
CPPFLAGS ?=
|
||||
EXTRA_CPPFLAGS ?=
|
||||
CPPFLAGS := -DESP_PLATFORM -D IDF_VER=\"$(IDF_VER)\" -MMD -MP $(CPPFLAGS) $(EXTRA_CPPFLAGS)
|
||||
|
||||
# Warnings-related flags relevant both for C and C++
|
||||
@ -263,6 +271,8 @@ DEBUG_FLAGS ?= -ggdb
|
||||
|
||||
# List of flags to pass to C compiler
|
||||
# If any flags are defined in application Makefile, add them at the end.
|
||||
CFLAGS ?=
|
||||
EXTRA_CFLAGS ?=
|
||||
CFLAGS := $(strip \
|
||||
-std=gnu99 \
|
||||
$(OPTIMIZATION_FLAGS) $(DEBUG_FLAGS) \
|
||||
@ -273,6 +283,8 @@ CFLAGS := $(strip \
|
||||
|
||||
# List of flags to pass to C++ compiler
|
||||
# If any flags are defined in application Makefile, add them at the end.
|
||||
CXXFLAGS ?=
|
||||
EXTRA_CXXFLAGS ?=
|
||||
CXXFLAGS := $(strip \
|
||||
-std=gnu++11 \
|
||||
-fno-exceptions \
|
||||
@ -289,8 +301,16 @@ export CFLAGS CPPFLAGS CXXFLAGS
|
||||
HOSTCC := $(CC)
|
||||
HOSTLD := $(LD)
|
||||
HOSTAR := $(AR)
|
||||
ifdef OBJCOPY
|
||||
HOSTOBJCOPY := $(OBJCOPY)
|
||||
else
|
||||
HOSTOBJCOPY := objcopy
|
||||
endif
|
||||
ifdef SIZE
|
||||
HOSTSIZE := $(SIZE)
|
||||
else
|
||||
HOSTSIZE := size
|
||||
endif
|
||||
export HOSTCC HOSTLD HOSTAR HOSTOBJCOPY SIZE
|
||||
|
||||
# Set target compiler. Defaults to whatever the user has
|
||||
@ -333,6 +353,7 @@ endif
|
||||
#
|
||||
# also depends on additional dependencies (linker scripts & binary libraries)
|
||||
# stored in COMPONENT_LINKER_DEPS, built via component.mk files' COMPONENT_ADD_LINKER_DEPS variable
|
||||
COMPONENT_LINKER_DEPS ?=
|
||||
$(APP_ELF): $(foreach libcomp,$(COMPONENT_LIBRARIES),$(BUILD_DIR_BASE)/$(libcomp)/lib$(libcomp).a) $(COMPONENT_LINKER_DEPS) $(COMPONENT_PROJECT_VARS)
|
||||
$(summary) LD $(patsubst $(PWD)/%,%,$@)
|
||||
$(CC) $(LDFLAGS) -o $@ -Wl,-Map=$(APP_MAP)
|
||||
@ -434,7 +455,7 @@ check-submodules: $(IDF_PATH)/$(1)/.git
|
||||
$(IDF_PATH)/$(1)/.git:
|
||||
@echo "WARNING: Missing submodule $(1)..."
|
||||
[ -e ${IDF_PATH}/.git ] || ( echo "ERROR: esp-idf must be cloned from git to work."; exit 1)
|
||||
[ -x $(which git) ] || ( echo "ERROR: Need to run 'git submodule init $(1)' in esp-idf root directory."; exit 1)
|
||||
[ -x $$(which git) ] || ( echo "ERROR: Need to run 'git submodule init $(1)' in esp-idf root directory."; exit 1)
|
||||
@echo "Attempting 'git submodule update --init $(1)' in esp-idf root directory..."
|
||||
cd ${IDF_PATH} && git submodule update --init $(1)
|
||||
|
||||
|
@ -16,8 +16,8 @@ SDKCONFIG ?= $(PROJECT_PATH)/sdkconfig
|
||||
SDKCONFIG_DEFAULTS ?= $(PROJECT_PATH)/sdkconfig.defaults
|
||||
|
||||
# reset MAKEFLAGS as the menuconfig makefile uses implicit compile rules
|
||||
$(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf:
|
||||
MAKEFLAGS=$(ORIGINAL_MAKEFLAGS) CC=$(HOSTCC) LD=$(HOSTLD) \
|
||||
$(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf: $(wildcard $(KCONFIG_TOOL_DIR)/*.c)
|
||||
MAKEFLAGS="" CC=$(HOSTCC) LD=$(HOSTLD) \
|
||||
$(MAKE) -C $(KCONFIG_TOOL_DIR)
|
||||
|
||||
ifeq ("$(wildcard $(SDKCONFIG))","")
|
||||
@ -42,7 +42,7 @@ define RunConf
|
||||
$(KCONFIG_TOOL_DIR)/$1 $(IDF_PATH)/Kconfig
|
||||
endef
|
||||
|
||||
ifeq ("$(MAKE_RESTARTS)","")
|
||||
ifndef MAKE_RESTARTS
|
||||
# menuconfig, defconfig and "GENCONFIG" configuration generation only
|
||||
# ever run on the first make pass, subsequent passes don't run these
|
||||
# (make often wants to re-run them as the conf tool can regenerate the
|
||||
@ -92,6 +92,6 @@ endif
|
||||
|
||||
.PHONY: config-clean defconfig menuconfig
|
||||
config-clean:
|
||||
$(summary RM CONFIG)
|
||||
$(MAKE) -C $(KCONFIG_TOOL_DIR) clean
|
||||
$(summary) RM CONFIG
|
||||
MAKEFLAGS="" $(MAKE) -C $(KCONFIG_TOOL_DIR) clean
|
||||
rm -rf $(BUILD_DIR_BASE)/include/config $(BUILD_DIR_BASE)/include/sdkconfig.h
|
||||
|
1
tools/kconfig/.gitignore
vendored
1
tools/kconfig/.gitignore
vendored
@ -2,6 +2,7 @@
|
||||
# Generated files
|
||||
#
|
||||
config*
|
||||
*.d
|
||||
*.lex.c
|
||||
*.tab.c
|
||||
*.tab.h
|
||||
|
@ -145,7 +145,7 @@ check-lxdialog := 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)
|
||||
CFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
|
||||
-DLOCALE
|
||||
-DLOCALE -MD
|
||||
|
||||
# ===========================================================================
|
||||
# Shared Makefile for the various kconfig executables:
|
||||
@ -173,7 +173,7 @@ gconf-objs := gconf.o zconf.tab.o
|
||||
|
||||
hostprogs-y := conf nconf mconf kxgettext qconf gconf
|
||||
|
||||
clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck
|
||||
clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck *.d
|
||||
clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
|
||||
clean-files += $(conf-objs) $(mconf-objs) conf mconf $(lxdialog)
|
||||
|
||||
@ -309,3 +309,6 @@ zconf.tab.c: zconf.y
|
||||
|
||||
clean:
|
||||
rm -f $(clean-files)
|
||||
|
||||
-include $(wildcard *.d)
|
||||
-include $(wildcard lxdialog/*.d)
|
||||
|
@ -141,7 +141,7 @@ static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
|
||||
sym->flags |= def_flags;
|
||||
break;
|
||||
}
|
||||
if (p[0] == 'n') {
|
||||
if (p[0] == 'n' || p[0] == '\0') {
|
||||
sym->def[def].tri = no;
|
||||
sym->flags |= def_flags;
|
||||
break;
|
||||
@ -490,12 +490,7 @@ kconfig_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
|
||||
case S_BOOLEAN:
|
||||
case S_TRISTATE:
|
||||
if (*value == 'n') {
|
||||
bool skip_unset = (arg != NULL);
|
||||
|
||||
if (!skip_unset)
|
||||
fprintf(fp, "# %s%s is not set\n",
|
||||
CONFIG_, sym->name);
|
||||
return;
|
||||
value = "";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -986,17 +981,21 @@ int conf_write_autoconf(void)
|
||||
|
||||
conf_write_heading(out_h, &header_printer_cb, NULL);
|
||||
|
||||
/* write symbols to auto.conf, tristate and header files */
|
||||
for_all_symbols(i, sym) {
|
||||
sym_calc_value(sym);
|
||||
if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
|
||||
continue;
|
||||
|
||||
/* write symbol to auto.conf, tristate and header files */
|
||||
conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1);
|
||||
|
||||
conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1);
|
||||
|
||||
conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
|
||||
if (!sym->name) continue;
|
||||
if ((sym->flags & SYMBOL_WRITE) ||
|
||||
/*
|
||||
* If the symbol is disabled by dependency we still want it in auto.conf
|
||||
* so that all possible variables are always defined.
|
||||
*/
|
||||
(sym->dir_dep.expr != NULL && sym->dir_dep.tri == no)) {
|
||||
conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
|
||||
}
|
||||
if (sym->flags & SYMBOL_WRITE) {
|
||||
conf_write_symbol(tristate, sym, &tristate_printer_cb, NULL);
|
||||
conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
|
||||
}
|
||||
}
|
||||
fclose(out);
|
||||
fclose(tristate);
|
||||
|
Loading…
Reference in New Issue
Block a user