commit 661e133

chld  ·  2026-04-14 01:08:33 +0000 UTC
parent 208f9d5
working state, the feature is implemented
1 files changed,  +8, -9
+8, -9
 1@@ -217,7 +217,6 @@ main(int argc, char **argv)
 2 	int dump_ast;
 3 	int dump_dot;
 4 	int dump_graph;
 5-	int have_path;
 6 	int i;
 7 	struct Ast ast;
 8 	struct Ast out;
 9@@ -243,9 +242,6 @@ main(int argc, char **argv)
10 		} else if (argv[i][0] == '-') {
11 			usage(stderr, argv[0]);
12 			return 1;
13-		} else if (have_path) {
14-			usage(stderr, argv[0]);
15-			return 1;
16 		} else {
17 		  // stub fn
18 		}
19@@ -262,11 +258,8 @@ main(int argc, char **argv)
20 	  char* mks[]={
21 	    "makefile",
22 	    "GNUmakefile",
23-	    "gnumakefile",
24 	    NULL
25-
26-	    /* https://www.gnu.org/software/make/manual/html_node/Makefile-Names.html */
27-	  }
28+	  };
29 
30 	    for(size_t mk=0; mks[mk]!=NULL; ++mk)
31 	      {
32@@ -274,13 +267,19 @@ main(int argc, char **argv)
33 		src=readfile(path);
34 
35 		if(src) break;
36-		// error later
37+		
38+		if(mks[mk+1]==NULL && !src)
39+		  {
40+		    fprintf(stderr, "could not find a makefile\n");
41+		    exit(1);
42+		  }
43 	      }
44 	}
45 	if (parse(path, src, &ast) < 0) {
46 		fprintf(stderr, "parse error in %s\n", path);
47 		free(src);
48 		return 1;
49+		
50 	}
51 	if (eval(&ast, &out) < 0) {
52 		fprintf(stderr, "eval error in %s\n", path);