]> pd.if.org Git - zpackage/blobdiff - elf/elftype.c
add elf dependency tracking
[zpackage] / elf / elftype.c
index 94e68b9306f17bff1bce062c8d2c4a8972d666d5..d9b253a2249458208fb82e642d489610eb82a285 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <elf.h>
+#include "elf.h"
 
 #define RELOCATABLE 0x1
 #define EXECUTABLE  0x2
@@ -48,7 +48,6 @@ int main(int ac, char **av) {
                        case '0': zeroterm = 1; break;
                        case 'f':
                                  if (optarg[0] == '-' && optarg[1] == 0) {
-                                         fprintf(stderr, "opening stdin\n");
                                          list = stdin;
                                  } else {
                                          list = fopen(optarg, "r");
@@ -63,11 +62,25 @@ int main(int ac, char **av) {
        if (!want) want = (RELOCATABLE|EXECUTABLE|DYNAMIC|CORE);
 
        if (list) {
+               int type;
                quiet = 2;
                perr = 0;
                while (readline(list, fn)) {
-                       fprintf(stderr, "checking %s\n", fn);
-                       if (checkfile(fn, want,perr,quiet)) {
+                       if ((type = checkfile(fn, want,perr,quiet)) & want) {
+                               if (printtype) {
+                                       switch (type) {
+                                               case RELOCATABLE:
+                                                       printf("relocatable "); break;
+                                               case EXECUTABLE:
+                                                       printf("executable "); break;
+                                               case DYNAMIC:
+                                                       printf("dynamic "); break;
+                                               case CORE:
+                                                       printf("core "); break;
+                                               default:
+                                                       printf("notelf "); break;
+                                       }
+                               }
                                printf("%s\n", fn);
                        }
                }