From ad84afc206e2bd1516fd2f07a2595f7dea310405 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Tue, 24 Jul 2007 11:35:00 +0000 Subject: [PATCH] Fixed a bug where LOCAL_CONFIG_H colide with default CFLAGS. If LOCAL_CONFIG_H was used and no custum CFLAGS were assigned, default CFLAGS were not used. Also, if CFLAGS was set from make command line, LOCAL_CONFIG_H didn't work. darcs-hash:20070724113519-f2ef6-6291c69c95c7004552597e153b9b71b85ba9345d.gz --- rulesdef.py | 12 ++++++------ snippets/config_h | 4 +++- tests/headers/generated/lincan/configtest.c | 6 +++++- tests/headers/generated/runtest | 1 + tests/headers/generated/runtest-default-cflags | 8 ++++++++ 5 files changed, 23 insertions(+), 8 deletions(-) create mode 100755 tests/headers/generated/runtest-default-cflags diff --git a/rulesdef.py b/rulesdef.py index a952e65..9a84d46 100755 --- a/rulesdef.py +++ b/rulesdef.py @@ -1,10 +1,10 @@ #!/usr/bin/env python rules = { - 'sysless': [ 'sysless-setup', 'base', 'gcc', 'config_h', 'include', 'sysless', 'sources-list', 'localeval' ], - 'sysless-keil51': [ 'sysless-setup', 'base', 'keil51', 'config_h', 'include', 'sysless', 'sources-list', 'localeval' ], - 'sysless-keil16x': [ 'sysless-setup', 'base', 'keil16x', 'config_h', 'include', 'sysless', 'sources-list', 'localeval' ], - 'linux': [ 'linux-setup', 'base', 'config_h', 'include', 'linux', 'qt', 'sources-list' ], - 'rtems': [ 'rtems-setup', 'base', 'config_h', 'include', 'rtems', 'sources-list' ], - 'vxworks': [ 'vxworks-setup', 'base', 'config_h', 'include', 'vxworks', 'sources-list' ], + 'sysless': [ 'sysless-setup', 'base', 'gcc', 'include', 'sysless', 'config_h', 'sources-list', 'localeval' ], + 'sysless-keil51': [ 'sysless-setup', 'base', 'keil51', 'include', 'sysless', 'config_h', 'sources-list', 'localeval' ], + 'sysless-keil16x': [ 'sysless-setup', 'base', 'keil16x', 'include', 'sysless', 'config_h', 'sources-list', 'localeval' ], + 'linux': [ 'linux-setup', 'base', 'include', 'linux', 'config_h', 'qt', 'sources-list' ], + 'rtems': [ 'rtems-setup', 'base', 'include', 'rtems', 'config_h', 'sources-list' ], + 'vxworks': [ 'vxworks-setup', 'base', 'include', 'vxworks', 'config_h', 'sources-list' ], } diff --git a/snippets/config_h b/snippets/config_h index 212ed9e..b753be4 100644 --- a/snippets/config_h +++ b/snippets/config_h @@ -30,7 +30,9 @@ endef ifdef LOCAL_CONFIG_H -CFLAGS += -I. +# This must be declared after the default cflags are assigned! +# Override is used to override command line assignemnt. +override CFLAGS += -I. $(eval $(call BUILD_CONFIG_H_template,$(LOCAL_CONFIG_H),default_CONFIG,_LOCAL_CONFIG_H) ) endif diff --git a/tests/headers/generated/lincan/configtest.c b/tests/headers/generated/lincan/configtest.c index 5c5d3b9..166ab99 100644 --- a/tests/headers/generated/lincan/configtest.c +++ b/tests/headers/generated/lincan/configtest.c @@ -1,2 +1,6 @@ #include "lincan_config.h" -void main(void) {} + +int main(void) +{ + /* With default CFLAGS a warning should be produced: control reaches end of non-void function */ +} diff --git a/tests/headers/generated/runtest b/tests/headers/generated/runtest index 7778c7b..09f9b95 100755 --- a/tests/headers/generated/runtest +++ b/tests/headers/generated/runtest @@ -11,6 +11,7 @@ test -f "$GC" || canttest "Can't find the produced global config" grep -Fv "/* config file:" $GC | diff -u correct/global.h - || error "Global config differs" make || canttest "Can't run make to produce local config" +make CFLAGS=-Wall || canttest "Make failed with custom CFLAGS" LC=$(find _build -wholename '*/lincan/lincan_config.h') test -f "$LC" || canttest "Can't find the produced local config" grep -Fv "/* config file:" $LC | diff -u correct/lincan_config.h - || error "Local config differs" diff --git a/tests/headers/generated/runtest-default-cflags b/tests/headers/generated/runtest-default-cflags new file mode 100755 index 0000000..a62df03 --- /dev/null +++ b/tests/headers/generated/runtest-default-cflags @@ -0,0 +1,8 @@ +#!/bin/sh + +source ../../functions.sh + +make default-config || canttest + +make 2> stderr || canttest +grep "control reaches end of non-void function" stderr || error "Default CFLAGS are not applied" -- 2.39.2