Skip to content

Commit

Permalink
Simplify arguments to precompute and use make pattern
Browse files Browse the repository at this point in the history
  • Loading branch information
sipa committed Dec 16, 2021
1 parent 598a4be commit cf38e94
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 31 deletions.
16 changes: 2 additions & 14 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -152,21 +152,9 @@ precompute_LDADD = $(SECP_LIBS) $(COMMON_LIB)
# build by a normal user) depends on mtimes, and thus is very fragile.
# This means that rebuilds of the prebuilt files always need to be
# forced by deleting them, e.g., by invoking `make clean-precomp`.
src/precomputed_ecmult.h:
src/precomputed_%:
$(MAKE) $(AM_MAKEFLAGS) precompute$(EXEEXT)
./precompute$(EXEEXT) ecmult_h

src/precomputed_ecmult.c:
$(MAKE) $(AM_MAKEFLAGS) precompute$(EXEEXT)
./precompute$(EXEEXT) ecmult_c

src/precomputed_ecmult_gen.h:
$(MAKE) $(AM_MAKEFLAGS) precompute$(EXEEXT)
./precompute$(EXEEXT) ecmult_gen_h

src/precomputed_ecmult_gen.c:
$(MAKE) $(AM_MAKEFLAGS) precompute$(EXEEXT)
./precompute$(EXEEXT) ecmult_gen_c
./precompute$(EXEEXT) $@

PRECOMP = src/precomputed_ecmult_gen.h src/precomputed_ecmult_gen.c src/precomputed_ecmult.h src/precomputed_ecmult.c
noinst_HEADERS += $(PRECOMP)
Expand Down
29 changes: 12 additions & 17 deletions src/precompute.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,7 @@ static void precompute_ecmult_print_two_tables(FILE *fp, int window_g, const sec
free(table_128);
}

static int precompute_ecmult(int h_file) {
static const char outfile_c[] = "src/precomputed_ecmult.c";
static const char outfile_h[] = "src/precomputed_ecmult.h";
const char* outfile = h_file ? outfile_h : outfile_c;
static int precompute_ecmult(const char* outfile, int h_file) {
const secp256k1_ge g = SECP256K1_G;
const int window_g_13 = 4;
const int window_g_199 = 8;
Expand Down Expand Up @@ -134,10 +131,7 @@ static int precompute_ecmult(int h_file) {
return 0;
}

static int precompute_ecmult_gen(int h_file) {
static const char outfile_c[] = "src/precomputed_ecmult_gen.c";
static const char outfile_h[] = "src/precomputed_ecmult_gen.h";
const char* outfile = h_file ? outfile_h : outfile_c;
static int precompute_ecmult_gen(const char* outfile, int h_file) {
FILE *fp;
int bits;

Expand Down Expand Up @@ -225,16 +219,17 @@ static int precompute_ecmult_gen(int h_file) {
}

int main(int argc, char** argv) {
if (argc == 2 && !strcmp(argv[1], "ecmult_c")) {
return precompute_ecmult(0);
} else if (argc == 2 && !strcmp(argv[1], "ecmult_h")) {
return precompute_ecmult(1);
} else if (argc == 2 && !strcmp(argv[1], "ecmult_gen_c")) {
return precompute_ecmult_gen(0);
} else if (argc == 2 && !strcmp(argv[1], "ecmult_gen_h")) {
return precompute_ecmult_gen(1);
if (argc == 2 && strlen(argv[1]) >= 8 && !strcmp(argv[1] + strlen(argv[1]) - 8, "ecmult.c")) {
return precompute_ecmult(argv[1], 0);
} else if (argc == 2 && strlen(argv[1]) >= 8 && !strcmp(argv[1] + strlen(argv[1]) - 8, "ecmult.h")) {
return precompute_ecmult(argv[1], 1);
} else if (argc == 2 && strlen(argv[1]) >= 12 && !strcmp(argv[1] + strlen(argv[1]) - 12, "ecmult_gen.c")) {
return precompute_ecmult_gen(argv[1], 0);
} else if (argc == 2 && strlen(argv[1]) >= 12 && !strcmp(argv[1] + strlen(argv[1]) - 12, "ecmult_gen.h")) {
return precompute_ecmult_gen(argv[1], 1);
} else {
fprintf(stderr, "Usage: ./precompute [ecmult_c|ecmult_h|ecmult_gen_c|ecmult_gen_h]\n");
fprintf(stderr, "Usage: ./precompute FILE\n");
fprintf(stderr, "Where FILE ends in ecmult.c, ecmult.h, ecmult_gen.c, or ecmult_gen.h\n");
return 1;
}
}

0 comments on commit cf38e94

Please sign in to comment.