linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / scripts / basic / fixdep.c
index 8bd6442..679124b 100644 (file)
  * (Note: it'd be easy to port over the complete mkdep state machine,
  *  but I don't think the added complexity is worth it)
  */
+/*
+ * Note 2: if somebody writes HELLO_CONFIG_BOOM in a file, it will depend onto
+ * CONFIG_BOOM. This could seem a bug (not too hard to fix), but please do not
+ * fix it! Some UserModeLinux files (look at arch/um/) call CONFIG_BOOM as
+ * UML_CONFIG_BOOM, to avoid conflicts with /usr/include/linux/autoconf.h,
+ * through arch/um/include/uml-config.h; this fixdep "bug" makes sure that
+ * those files will have correct dependencies.
+ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
 #include <limits.h>
 #include <ctype.h>
-#include <netinet/in.h>
+#include <arpa/inet.h>
 
 #define INT_CONF ntohl(0x434f4e46)
 #define INT_ONFI ntohl(0x4f4e4649)
@@ -122,9 +130,22 @@ void usage(void)
        exit(1);
 }
 
+/*
+ * Print out the commandline prefixed with cmd_<target filename> :=
+ * If commandline contains '#' escape with '\' so make to not see
+ * the '#' as a start-of-comment symbol
+ **/
 void print_cmdline(void)
 {
-       printf("cmd_%s := %s\n\n", target, cmdline);
+       char *p = cmdline;
+
+       printf("cmd_%s := ", target);
+       for (; *p; p++) {
+               if (*p == '#')
+                       printf("\\");
+               printf("%c", *p);
+       }
+       printf("\n\n");
 }
 
 char * str_config  = NULL;
@@ -204,7 +225,7 @@ void use_config(char *m, int slen)
                if (*p == '_')
                        *p = '/';
                else
-                       *p = tolower((unsigned char)*p);
+                       *p = tolower((int)*p);
        }
        printf("    $(wildcard include/config/%s.h) \\\n", s);
 }
@@ -310,6 +331,7 @@ void parse_dep_file(void *map, size_t len)
                }
                memcpy(s, m, p-m); s[p-m] = 0;
                if (strrcmp(s, "include/linux/autoconf.h") &&
+                   strrcmp(s, "arch/um/include/uml-config.h") &&
                    strrcmp(s, ".ver")) {
                        printf("  %s \\\n", s);
                        do_config_file(s);