]> granicus.if.org Git - libvpx/commitdiff
Ouput symbols as c header file.
authorTao Bai <michaelbai@chromium.org>
Mon, 27 Jan 2014 18:56:04 +0000 (10:56 -0800)
committerJohann <johannkoenig@google.com>
Mon, 27 Jan 2014 19:11:47 +0000 (11:11 -0800)
This is required by webrtc.

Change-Id: I32983597eb0f6797aeb0d93b65d8911989ba98ea

build/make/obj_int_extract.c

index 495e9d7fa7239e25b6fb945815949c350bb7afa2..dbd8c9ee21a0af342727459c0816d262869dbbf1 100644 (file)
@@ -21,6 +21,7 @@ typedef enum {
   OUTPUT_FMT_PLAIN,
   OUTPUT_FMT_RVDS,
   OUTPUT_FMT_GAS,
+  OUTPUT_FMT_C_HEADER,
 } output_fmt_t;
 
 int log_msg(const char *fmt, ...) {
@@ -46,6 +47,9 @@ int print_macho_equ(output_fmt_t mode, uint8_t* name, int val) {
     case  OUTPUT_FMT_GAS:
       printf(".set %-40s, %5d\n", name, val);
       return 0;
+    case OUTPUT_C_HEADER:
+      printf("#define %-40s %5d\n", name, val);
+      return 0;
     default:
       log_msg("Unsupported mode: %d", mode);
       return 1;
@@ -491,6 +495,13 @@ int parse_elf(uint8_t *buf, size_t sz, output_fmt_t mode) {
                                               sym.st_name),
                        val);
                 break;
+              case OUTPUT_FMT_C_HEADER:
+                printf("#define %-40s %5d\n",
+                       parse_elf_string_table(&elf,
+                                              shdr.sh_link,
+                                              sym.st_name),
+                       val);
+                break;
               default:
                 printf("%s = %d\n",
                        parse_elf_string_table(&elf,
@@ -762,6 +773,7 @@ int main(int argc, char **argv) {
     fprintf(stderr, "Output Formats:\n");
     fprintf(stderr, "  gas  - compatible with GNU assembler\n");
     fprintf(stderr, "  rvds - compatible with armasm\n");
+    fprintf(stderr, "  cheader - c/c++ header file\n");
     goto bail;
   }
 
@@ -771,6 +783,8 @@ int main(int argc, char **argv) {
     mode = OUTPUT_FMT_RVDS;
   else if (!strcmp(argv[1], "gas"))
     mode = OUTPUT_FMT_GAS;
+  else if (!strcmp(argv[1], "cheader"))
+    mode = OUTPUT_FMT_C_HEADER;
   else
     f = argv[1];