# patterns may be described in order to support the correct order of moves.
PATTERNFILE=$(ROOT)/misc/$(PROGNAME).pat
-PATTERN = -DPATTERNFILE=\"$(PATTERNFILE)\"
all:
# pattern textfile must be used.
makepattern.o: makepattern.c
- $(CC) $(CFLAGS) $(PATTERN) -c $<
+ $(CC) $(CFLAGS) -c $<
pattern.o: pattern.c
$(CC) $(CFLAGS) -c $<
$(CC) $(CFLAGS) -c $<
pattern.inc: $(PATTERNFILE) pat2inc
- ./pat2inc
+ ./pat2inc $< $@
#
# Other targets.
#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 */
void
-ReadOpeningSequences (short *pindex)
+ReadOpeningSequences (short *pindex, const char* patternfile)
{
FILE *fd;
char s[256];
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");
#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];
{
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];
#endif
- ReadOpeningSequences(&max_pattern_data);
- WriteOpeningSequences(max_pattern_data);
+ ReadOpeningSequences(&max_pattern_data, patternfile);
+ WriteOpeningSequences(max_pattern_data, patternincfile);
return 0;
}