|
12 | 12 | FLINT_DIR:=. |
13 | 13 | SRC_DIR:=src |
14 | 14 | BUILD_DIR:=build |
| 15 | +TUNE_DIR:=src/tune |
15 | 16 | ABS_FLINT_DIR:='$(patsubst %/,%, $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))' |
16 | 17 | ABS_SRC_DIR:=$(ABS_FLINT_DIR)/$(SRC_DIR) |
17 | 18 | ABS_BUILD_DIR:=$(ABS_FLINT_DIR)/$(SRC_DIR) |
| 19 | +ABS_TUNE_DIR:=$(ABS_FLINT_DIR)/$(TUNE_DIR) |
18 | 20 |
|
19 | 21 | FLINT_VERSION:=@FLINT_VERSION_FULL@ |
20 | 22 | FLINT_MAJOR_SO:=@FLINT_MAJOR_SO@ |
@@ -81,6 +83,7 @@ CFLAGS:=@CFLAGS@ |
81 | 83 | TESTCFLAGS:=@TESTCFLAGS@ |
82 | 84 | CPPFLAGS:=@CPPFLAGS@ -DBUILDING_FLINT |
83 | 85 | CPPFLAGS2:=-L$(FLINT_DIR) $(CPPFLAGS) |
| 86 | +CPPFLAGS3:=-I$(TUNE_DIR) $(CPPFLAGS2) |
84 | 87 | LIB_CPPFLAGS:=@LIB_CPPFLAGS@ |
85 | 88 | CXXFLAGS:=@CXXFLAGS@ |
86 | 89 | LIBS:=@LIBS@ |
@@ -218,8 +221,15 @@ TEMPLATE_DIRS := \ |
218 | 221 | fq_poly_templates fq_poly_factor_templates \ |
219 | 222 | fq_embed_templates fq_templates |
220 | 223 |
|
| 224 | +_TUNE_DIRS := \ |
| 225 | + ulong_extras |
| 226 | + |
| 227 | +TUNE_DIRS := $(patsubst %, $(TUNE_DIR)/%, $(_TUNE_DIRS)) |
| 228 | +TUNE_BUILD_DIRS := $(patsubst %, $(BUILD_DIR)/tune/%, $(_TUNE_DIRS)) |
| 229 | + |
221 | 230 | BUILD_DIRS := \ |
222 | 231 | $(BUILD_DIR) \ |
| 232 | + $(TUNE_BUILD_DIRS) \ |
223 | 233 | $(patsubst %, $(BUILD_DIR)/%, $(DIRS)) \ |
224 | 234 | $(patsubst %, $(BUILD_DIR)/%/profile, $(DIRS)) \ |
225 | 235 | $(patsubst %, $(BUILD_DIR)/%/test, $(DIRS)) \ |
@@ -299,12 +309,12 @@ ifneq ($(WANT_NTL), 0) |
299 | 309 | interfaces_TEST_SOURCES := $(SRC_DIR)/interfaces/test/t-NTL-interface.cpp |
300 | 310 | endif |
301 | 311 |
|
302 | | -define xxx_TUNE_SOURCES |
303 | | -$(1)_TUNE_SOURCES := $(wildcard $(SRC_DIR)/$(1)/tune/*.c) |
| 312 | +define xxx_OLD_TUNE_SOURCES |
| 313 | +$(1)_OLD_TUNE_SOURCES := $(wildcard $(SRC_DIR)/$(1)/tune/*.c) |
304 | 314 | endef |
305 | | -_TUNE_SOURCES := $(wildcard $(SRC_DIR)/tune/*.c) |
306 | | -$(foreach dir, $(DIRS), $(eval $(call xxx_TUNE_SOURCES,$(dir)))) |
307 | | -TUNE_SOURCES := $(foreach dir,$(DIRS),$($(dir)_TUNE_SOURCES)) $(_TUNE_SOURCES) |
| 315 | +_OLD_TUNE_SOURCES := $(wildcard $(SRC_DIR)/tune/*.c) |
| 316 | +$(foreach dir, $(DIRS), $(eval $(call xxx_OLD_TUNE_SOURCES,$(dir)))) |
| 317 | +OLD_TUNE_SOURCES := $(foreach dir,$(DIRS),$($(dir)_OLD_TUNE_SOURCES)) $(_OLD_TUNE_SOURCES) |
308 | 318 |
|
309 | 319 | EXMP_SOURCES := $(wildcard $(FLINT_DIR)/examples/*.c) |
310 | 320 |
|
@@ -359,12 +369,12 @@ interfaces_TESTS := $(BUILD_DIR)/interfaces/test/t-NTL-interface$(EXEEXT) |
359 | 369 | endif |
360 | 370 | TESTS := $(_TESTS) $(foreach dir,$(DIRS),$($(dir)_TESTS)) $(interfaces_TESTS) |
361 | 371 |
|
362 | | -define xxx_TUNES |
363 | | -$(1)_TUNES := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%$(EXEEXT),$($(1)_TUNE_SOURCES)) |
| 372 | +define xxx_OLD_TUNES |
| 373 | +$(1)_OLD_TUNES := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%$(EXEEXT),$($(1)_OLD_TUNE_SOURCES)) |
364 | 374 | endef |
365 | | -_TUNES := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%$(EXEEXT),$(_TUNE_SOURCES)) |
366 | | -$(foreach dir, $(DIRS), $(eval $(call xxx_TUNES,$(dir)))) |
367 | | -TUNES := $(foreach dir,$(DIRS),$($(dir)_TUNES)) $(_TUNES) |
| 375 | +_OLD_TUNES := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%$(EXEEXT),$(_OLD_TUNE_SOURCES)) |
| 376 | +$(foreach dir, $(DIRS), $(eval $(call xxx_OLD_TUNES,$(dir)))) |
| 377 | +OLD_TUNES := $(foreach dir,$(DIRS),$($(dir)_OLD_TUNES)) $(_OLD_TUNES) |
368 | 378 |
|
369 | 379 | EXMPS := $(patsubst $(FLINT_DIR)/%.c,$(BUILD_DIR)/%$(EXEEXT),$(EXMP_SOURCES)) |
370 | 380 |
|
@@ -675,30 +685,20 @@ endif |
675 | 685 | endif |
676 | 686 |
|
677 | 687 | ifeq ($(SHARED), 0) |
678 | | -$(BUILD_DIR)/tune/%$(EXEEXT): $(SRC_DIR)/tune/%.c $(FLINT_DIR)/$(FLINT_LIB_STATIC) | $(BUILD_DIR)/tune |
679 | | - @echo " CC $(<:$(SRC_DIR)/%=%)" |
680 | | - @$(CC) $(TESTCFLAGS) $(CPPFLAGS2) $< -o $@ $(EXE_LDFLAGS) $(LIBS2) $(DEPFLAGS) |
681 | | -else |
682 | | -$(BUILD_DIR)/tune/%$(EXEEXT): $(SRC_DIR)/tune/%.c | $(FLINT_DIR)/$(FLINT_LIB_FULL) $(BUILD_DIR)/tune |
683 | | - @echo " CC $(<:$(SRC_DIR)/%=%)" |
684 | | - @$(CC) $(TESTCFLAGS) $(CPPFLAGS2) $< -o $@ $(EXE_LDFLAGS) $(LIBS2) $(DEPFLAGS) |
685 | | -endif |
686 | | - |
687 | | -ifeq ($(SHARED), 0) |
688 | | -define xxx_TUNES_rule |
| 688 | +define xxx_OLD_TUNES_rule |
689 | 689 | $(BUILD_DIR)/$(1)/tune/%$(EXEEXT): $(SRC_DIR)/$(1)/tune/%.c $(FLINT_DIR)/$(FLINT_LIB_STATIC) | $(BUILD_DIR)/$(1)/tune |
690 | 690 | @echo " CC $$(<:$(SRC_DIR)/%=%)" |
691 | 691 | @$(CC) $(TESTCFLAGS) $(CPPFLAGS2) $$< -o $$@ $(EXE_LDFLAGS) $(LIBS2) $$(DEPFLAGS) |
692 | 692 | endef |
693 | 693 | else |
694 | | -define xxx_TUNES_rule |
| 694 | +define xxx_OLD_TUNES_rule |
695 | 695 | $(BUILD_DIR)/$(1)/tune/%$(EXEEXT): $(SRC_DIR)/$(1)/tune/%.c | $(FLINT_DIR)/$(FLINT_LIB_FULL) $(BUILD_DIR)/$(1)/tune |
696 | 696 | @echo " CC $$(<:$(SRC_DIR)/%=%)" |
697 | 697 | @$(CC) $(TESTCFLAGS) $(CPPFLAGS2) $$< -o $$@ $(EXE_LDFLAGS) $(LIBS2) $$(DEPFLAGS) |
698 | 698 | endef |
699 | 699 | endif |
700 | 700 |
|
701 | | -$(foreach dir, $(DIRS), $(eval $(call xxx_TUNES_rule,$(dir)))) |
| 701 | +$(foreach dir, $(DIRS), $(eval $(call xxx_OLD_TUNES_rule,$(dir)))) |
702 | 702 |
|
703 | 703 | ifeq ($(SHARED), 0) |
704 | 704 | $(BUILD_DIR)/examples/%$(EXEEXT): $(FLINT_DIR)/examples/%.c $(FLINT_DIR)/$(FLINT_LIB_STATIC) | $(BUILD_DIR)/examples $(BUILD_DIR)/include |
@@ -834,7 +834,35 @@ endif |
834 | 834 | # tuning |
835 | 835 | ################################################################################ |
836 | 836 |
|
837 | | -tune: library $(TUNES) |
| 837 | +# Only old tunes, i.e. under src/MOD/tune/ |
| 838 | +old_tune: library $(OLD_TUNES) |
| 839 | + |
| 840 | +TUNE_SOURCE:=$(TUNE_DIR)/tune.c |
| 841 | +TUNE_DEPS_SOURCES:=$(foreach dir,$(TUNE_DIRS),$(wildcard $(dir)/*.c)) |
| 842 | + |
| 843 | +_TUNE_HEADERS:=tune.h clock.h |
| 844 | +TUNE_HEADERS:=$(patsubst %,$(TUNE_DIR)/%,$(_TUNE_HEADERS)) |
| 845 | + |
| 846 | +TUNE_DEPS_OBJS:=$(patsubst $(TUNE_DIR)/%.c,$(BUILD_DIR)/tune/%.o,$(TUNE_DEPS_SOURCES)) |
| 847 | + |
| 848 | +TUNE_EXE:=$(BUILD_DIR)/tuneup$(EXEEXT) |
| 849 | + |
| 850 | +# Sloppy to say that all TUNE_BUILD_DIRS have to be built. |
| 851 | +$(BUILD_DIR)/tune/%.o: $(TUNE_DIR)/%.c $(TUNE_HEADERS) | $(TUNE_BUILD_DIRS) |
| 852 | + @echo " CC $(<:$(SRC_DIR)/%=%)" |
| 853 | + @$(CC) $(CFLAGS) $(CPPFLAGS3) $(LIB_CPPFLAGS) -c $< -o $@ $(DEPFLAGS) |
| 854 | + |
| 855 | +ifeq ($(SHARED), 0) |
| 856 | +$(TUNE_EXE): $(TUNE_SOURCE) $(TUNE_DEPS_OBJS) $(TUNE_HEADERS) $(FLINT_DIR)/$(FLINT_LIB_STATIC) | $(BUILD_DIR) |
| 857 | + @echo " CC $(<:$(SRC_DIR)/%=%)" |
| 858 | + @$(CC) $(CFLAGS) $(CPPFLAGS3) $(LIB_CPPFLAGS) $(TUNE_DEPS_OBJS) $< -o $@ $(EXE_LDFLAGS) $(LIBS2) $(DEPFLAGS) |
| 859 | +else |
| 860 | +$(TUNE_EXE): $(TUNE_SOURCE) $(TUNE_DEPS_OBJS) $(TUNE_HEADERS) | $(FLINT_DIR)/$(FLINT_LIB_FULL) $(BUILD_DIR) |
| 861 | + @echo " CC $(<:$(SRC_DIR)/%=%)" |
| 862 | + @$(CC) $(CFLAGS) $(CPPFLAGS3) $(LIB_CPPFLAGS) $(TUNE_DEPS_OBJS) $< -o $@ $(EXE_LDFLAGS) $(LIBS2) $(DEPFLAGS) |
| 863 | +endif |
| 864 | + |
| 865 | +tune: $(TUNE_EXE) |
838 | 866 |
|
839 | 867 | ################################################################################ |
840 | 868 | # valgrind |
@@ -988,5 +1016,5 @@ dist: |
988 | 1016 | print-%: |
989 | 1017 | @echo "$*=$($*)" |
990 | 1018 |
|
991 | | -.PHONY: all library shared static examples checkexamples profile tests check tune valgrind clean distclean install uninstall dist %_TEST_RUN %_TEST_RUN_% %_TEST_DGB_RUN_ARGS %_VALGRIND_RUN print-% coverage coverage_html debug |
| 1019 | +.PHONY: all library shared static examples checkexamples profile tests check tune old_tune valgrind clean distclean install uninstall dist %_TEST_RUN %_TEST_RUN_% %_TEST_DGB_RUN_ARGS %_VALGRIND_RUN print-% coverage coverage_html debug |
992 | 1020 | .PRECIOUS: $(mpn_extras_PIC_S_SOURCES) $(mpn_extras_S_SOURCES) |
0 commit comments