summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2006-10-19 22:14:58 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2006-10-19 22:14:58 +0000
commit9fa9950784a0399b03473281de0109214552dbdf (patch)
tree51abcccf0c91efea2a07b70ffe6a9aecd86b21a2
parentb560577cb27a4a15a5e1a77d3ac720d2151d3d60 (diff)
build system: check for ENABLE_, USE_ and SKIP_ (not only for CONFIG_)
-rw-r--r--include/bb_config.h3
-rw-r--r--scripts/basic/fixdep.c36
2 files changed, 24 insertions, 15 deletions
diff --git a/include/bb_config.h b/include/bb_config.h
index 1f96026fd..152eb13e6 100644
--- a/include/bb_config.h
+++ b/include/bb_config.h
@@ -2,6 +2,9 @@
* which depend on other symbols, which themself are off.
* Provide them here by hand. Need a better idea. */
+/* This is especially bad because it forces rebuild of
+ * everything whenever any of these options change */
+
#ifndef ENABLE_FEATURE_GUNZIP_UNCOMPRESS
#define ENABLE_FEATURE_GUNZIP_UNCOMPRESS 0
#define USE_FEATURE_GUNZIP_UNCOMPRESS(...)
diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
index cc2c6541b..df3446e35 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -114,10 +114,12 @@
#include <ctype.h>
#include <arpa/inet.h>
+/* bbox: not needed
#define INT_CONF ntohl(0x434f4e46)
#define INT_ONFI ntohl(0x4f4e4649)
#define INT_NFIG ntohl(0x4e464947)
#define INT_FIG_ ntohl(0x4649475f)
+*/
char *target;
char *depfile;
@@ -222,30 +224,32 @@ void use_config(char *m, int slen)
void parse_config_file(char *map, size_t len)
{
- int *end = (int *) (map + len);
- /* start at +1, so that p can never be < map */
- int *m = (int *) map + 1;
- char *p, *q;
-
- for (; m < end; m++) {
- if (*m == INT_CONF) { p = (char *) m ; goto conf; }
- if (*m == INT_ONFI) { p = (char *) m-1; goto conf; }
- if (*m == INT_NFIG) { p = (char *) m-2; goto conf; }
- if (*m == INT_FIG_) { p = (char *) m-3; goto conf; }
+ /* modified for bbox */
+ char *end = map + len;
+ char *p = map;
+ char *q;
+ int off;
+
+ for (; p < end; p++) {
+ if (!memcmp(p, "CONFIG_", 7)) goto conf7;
+ if (!memcmp(p, "ENABLE_", 7)) goto conf7;
+ if (!memcmp(p, "USE_", 4)) goto conf4;
+ if (!memcmp(p, "SKIP_", 5)) goto conf5;
continue;
+ conf4: off = 4; goto conf;
+ conf5: off = 5; goto conf;
+ conf7: off = 7;
conf:
- if (p > map + len - 7)
+ if (p > map + len - off)
continue;
- if (memcmp(p, "CONFIG_", 7))
- continue;
- for (q = p + 7; q < map + len; q++) {
+ for (q = p + off; q < map + len; q++) {
if (!(isalnum(*q) || *q == '_'))
goto found;
}
continue;
found:
- use_config(p+7, q-p-7);
+ use_config(p+off, q-p-off);
}
}
@@ -366,6 +370,7 @@ void print_deps(void)
void traps(void)
{
+/* bbox: not needed
static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
if (*(int *)test != INT_CONF) {
@@ -373,6 +378,7 @@ void traps(void)
*(int *)test);
exit(2);
}
+*/
}
int main(int argc, char *argv[])