Stop hardcoding filenames inside pat2inc, use commandline parameters.
authorYann Dirson <ydirson@free.fr>
Tue, 17 Dec 2013 20:47:28 +0000 (21:47 +0100)
committerYann Dirson <ydirson@free.fr>
Sun, 12 Jan 2014 14:31:22 +0000 (15:31 +0100)
gnushogi/Makefile.in
gnushogi/makepattern.c
gnushogi/pat2inc.c

index f0c8684..3d5de97 100644 (file)
@@ -94,7 +94,6 @@ BINBOOK    = -DBINBOOK=\"$(LIBDIR)/$(PROGNAME).bbk\"
 # patterns may be described in order to support the correct order of moves.
 
 PATTERNFILE=$(ROOT)/misc/$(PROGNAME).pat
-PATTERN    = -DPATTERNFILE=\"$(PATTERNFILE)\"
 
 
 all:
@@ -186,7 +185,7 @@ main.o: main.c
 # pattern textfile must be used.
 
 makepattern.o: makepattern.c
-       $(CC) $(CFLAGS) $(PATTERN) -c $<
+       $(CC) $(CFLAGS) -c $<
 
 pattern.o: pattern.c
        $(CC)  $(CFLAGS) -c $<
@@ -216,7 +215,7 @@ sizetest.o: sizetest.c
        $(CC) $(CFLAGS) -c $<
 
 pattern.inc: $(PATTERNFILE) pat2inc
-       ./pat2inc
+       ./pat2inc $< $@
 
 #
 # Other targets.
index 947c4bc..e24cfcd 100644 (file)
@@ -36,7 +36,6 @@
 #define MAX_OPENING_SEQUENCE 20
 #define MAX_PATTERN          200
 
-static char *patternfile = PATTERNFILE;
 small_short pattern_data[MAX_PATTERN_DATA];
 
 /* minimal ShowMessage to avoid dependency on extraneous display code */
@@ -191,7 +190,7 @@ ScanPattern (char *s, short *pindex)
 
 
 void
-ReadOpeningSequences (short *pindex)
+ReadOpeningSequences (short *pindex, const char* patternfile)
 {
     FILE *fd;
     char s[256];
@@ -250,14 +249,14 @@ ReadOpeningSequences (short *pindex)
 
 
 void
-WriteOpeningSequences (short pindex)
+WriteOpeningSequences (short pindex, const char* patternincfile)
 {
     FILE *fd;
     short n = 0;
     short max_pattern = 0;
     short max_opening_sequence = 0;
 
-    fd = fopen ("pattern.inc", "w");
+    fd = fopen (patternincfile, "w");
     fprintf(fd, "#define MAX_PATTERN_DATA %d\n\n", pindex);
     fprintf(fd, "small_short pattern_data[MAX_PATTERN_DATA] =\n{\n");
 
index 0d464cf..24147fb 100644 (file)
@@ -35,8 +35,8 @@
 #include "pattern.h"
 
 
-extern void ReadOpeningSequences(short *pindex);
-extern void WriteOpeningSequences(short pindex);
+extern void ReadOpeningSequences(short *pindex, const char* patternfile);
+extern void WriteOpeningSequences(short pindex, const char* patternincfile);
 
 small_short board[NO_SQUARES];
 small_short color[NO_SQUARES];
@@ -46,6 +46,13 @@ main(int argc, char **argv)
 {
     short sq, side, max_pattern_data;
 
+    if (argc != 3) {
+        fprintf(stderr, "Usage: %s gnushogi.pat pattern.inc\n", argv[0]);
+        exit(1);
+    }
+    char* patternfile = argv[1];
+    char* patternincfile = argv[2];
+
 #ifdef TEST_DISTANCE
     short d;
     char  s[80];
@@ -83,8 +90,8 @@ main(int argc, char **argv)
 
 #endif
 
-    ReadOpeningSequences(&max_pattern_data);
-    WriteOpeningSequences(max_pattern_data);
+    ReadOpeningSequences(&max_pattern_data, patternfile);
+    WriteOpeningSequences(max_pattern_data, patternincfile);
 
     return 0;
 }