# This file is autogenerated by ./configure -- do not edit! SHELL=/bin/sh FLINT_STATIC=1 FLINT_SHARED=0 FLINT_LIB=libflint.so EXEEXT= PREFIX=/usr WANT_NTL=0 FLINT_CPIMPORT_DIR=/usr/share/flint FLINT_CPIMPORT=/usr/share/flint/CPimport.txt INCS=-I$(CURDIR) -I/usr/include -I/usr/include LIBS=-L$(CURDIR) -L/usr/lib -L/usr/lib -lflint -lpthread -lmpfr -lgmp -lm LIBS2=-L$(CURDIR) -L/usr/lib -L/usr/lib -lpthread -lmpfr -lgmp -lm CC=gcc CXX=g++ AR=ar CFLAGS=-ansi -pedantic -Wall -O2 -funroll-loops -g -mpopcnt -DFLINT_CPIMPORT=\"/usr/share/flint/CPimport.txt\" ABI_FLAG= PIC_FLAG=-fPIC EXTRA_SHARED_FLAGS= DLPATH=LD_LIBRARY_PATH DLPATH_ADD=$(CURDIR):/usr/lib:/usr/lib EXTENSIONS= EXTRA_BUILD_DIRS= ifdef $(DLPATH) $(DLPATH):=$($(DLPATH)):$(DLPATH_ADD) else $(DLPATH):=$(DLPATH_ADD) endif QUIET_CC = @echo ' ' CC ' ' $@; QUIET_CXX = @echo ' ' CXX ' ' $@; QUIET_AR = @echo ' ' AR ' ' $@; AT=@ BUILD_DIRS = ulong_extras long_extras perm fmpz fmpz_vec fmpz_poly \ fmpq_poly fmpz_mat mpfr_vec mpfr_mat nmod_vec nmod_poly \ nmod_poly_factor arith mpn_extras nmod_mat fmpq fmpq_mat padic \ fmpz_poly_q fmpz_poly_mat nmod_poly_mat fmpz_mod_poly \ fmpz_mod_poly_factor fmpz_factor fmpz_poly_factor fft qsieve \ double_extras padic_poly padic_mat qadic \ fq fq_vec fq_mat fq_poly fq_poly_factor\ fq_nmod fq_nmod_vec fq_nmod_mat fq_nmod_poly fq_nmod_poly_factor \ fq_zech fq_zech_vec fq_zech_mat fq_zech_poly fq_zech_poly_factor \ $(EXTRA_BUILD_DIRS) TEMPLATE_DIRS = fq_vec_templates fq_mat_templates fq_poly_templates \ fq_poly_factor_templates export SOURCES = printf.c fprintf.c sprintf.c scanf.c fscanf.c sscanf.c clz_tab.c memory_manager.c version.c profiler.c thread_support.c LIB_SOURCES = $(wildcard $(patsubst %, %/*.c, $(BUILD_DIRS))) $(patsubst %, %/*.c, $(TEMPLATE_DIRS)) HEADERS = $(patsubst %, %.h, $(BUILD_DIRS)) NTL-interface.h flint.h longlong.h config.h gmpcompat.h fft_tuning.h fmpz-conversions.h profiler.h templates.h $(patsubst %, %.h, $(TEMPLATE_DIRS)) OBJS = $(patsubst %.c, build/%.o, $(SOURCES)) LIB_OBJS = $(patsubst %, build/%/*.o, $(BUILD_DIRS)) LOBJS = $(patsubst %.c, build/%.lo, $(SOURCES)) LIB_LOBJS = $(patsubst %, build/%/*.lo, $(BUILD_DIRS)) MOD_LOBJS = $(patsubst %, build/%.lo, $(BUILD_DIRS)) EXMP_SOURCES = $(wildcard examples/*.c) EXMPS = $(patsubst %.c, %, $(EXMP_SOURCES)) TEST_SOURCES = $(wildcard test/*.c) TESTS = $(patsubst %.c, build/%$(EXEEXT), $(TEST_SOURCES)) PROF_SOURCES = $(wildcard profile/*.c) PROFS = $(patsubst %.c, %$(EXEEXT), $(PROF_SOURCES)) TUNE_SOURCES = $(wildcard tune/*.c) TUNE = $(patsubst %.c, %$(EXEEXT), $(TUNE_SOURCES)) EXT_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/*.c))) EXT_TEST_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/test/t-*.c))) EXT_TUNE_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/tune/*.c))) EXT_PROF_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/profile/p-*.c))) EXT_OBJS = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), build/$(dir).lo)) EXT_HEADERS = $(foreach ext, $(EXTENSIONS), $(wildcard $(ext)/*.h)) all: library quiet: library verbose: $(MAKE) AT= QUIET_CC= QUIET_CXX= QUIET_AR= clean: $(AT)$(foreach dir, $(BUILD_DIRS), BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) clean || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) clean || exit $$?;)) rm -rf test_helpers.o profiler.o rm -f $(OBJS) $(LOBJS) $(TESTS) $(PROFS) $(EXMPS) $(FLINT_LIB) libflint.a rm -rf build distclean: clean rm -f config.h fft_tuning.h fmpz-conversions.h Makefile fmpz/fmpz.c dist: git archive --format tar --prefix flint-2.4.2/ flint-2.4 > ../flint-2.4.2.tar; gzip ../flint-2.4.2.tar profile: library $(PROF_SOURCES) $(EXT_PROF_SOURCES) build/profiler.o mkdir -p build/profile ifndef MOD $(AT)$(foreach prog, $(PROFS), $(CC) $(ABI_FLAG) -std=c99 -O2 -g $(INCS) $(prog).c build/profiler.o -o build/$(prog) $(LIBS) || exit $$?;) $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/profile; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) profile || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/profile; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) profile || exit $$?;)) else $(AT)$(foreach dir, $(MOD), mkdir -p build/$(dir)/profile; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) profile || exit $$?;) endif tune: library $(TUNE_SOURCES) $(EXT_TUNE_SOURCES) mkdir -p build/tune $(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS) || exit $$?;) $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/tune; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) tune || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/tune; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) tune || exit $$?;)) examples: library $(EXMP_SOURCES) mkdir -p build/examples $(AT)$(foreach prog, $(EXMPS), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS) || exit $$?;) $(FLINT_LIB): $(LOBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) shared || exit $$?;)) $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir); BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) shared || exit $$?;) $(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \ $(MAKE) build/interfaces/NTL-interface.lo; \ $(CXX) $(ABI_FLAG) -shared $(EXTRA_SHARED_FLAGS) build/interfaces/NTL-interface.lo $(LOBJS) $(MOD_LOBJS) $(EXT_OBJS) $(LIBS2) -o $(FLINT_LIB); \ fi $(AT)if [ "$(WANT_NTL)" -ne "1" ]; then \ $(CC) $(ABI_FLAG) -shared $(EXTRA_SHARED_FLAGS) $(LOBJS) $(MOD_LOBJS) $(EXT_OBJS) $(LIBS2) -o $(FLINT_LIB); \ fi libflint.a: $(OBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) static || exit $$?;)) $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir); BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) static || exit $$?;) $(AT)if [ "$(FLINT_SHARED)" -eq "0" ]; then \ touch test/t-*.c; \ $(foreach dir, $(BUILD_DIRS), touch $(dir)/test/t-*.c;) \ $(foreach ext, $(EXTENSIONS), $(foreach mod, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), touch $(ext)/$(mod)/test/t-*.c;)) \ fi $(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \ $(MAKE) build/interfaces/NTL-interface.o; \ $(AR) rcs libflint.a build/interfaces/NTL-interface.o; \ fi $(QUIET_AR) $(AR) rcs libflint.a $(OBJS); $(AT)$(foreach mod, $(BUILD_DIRS), $(AR) rcs libflint.a build/$(mod)/*.o || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach mod, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(AR) rcs libflint.a build/$(mod)/*.o || exit $$?;)) library: $(AT)if [ "$(FLINT_SHARED)" -eq "1" ]; then \ $(MAKE) shared; \ fi $(AT)if [ "$(FLINT_STATIC)" -eq "1" ]; then \ $(MAKE) static; \ fi shared: $(FLINT_LIB) static: libflint.a tests: library test_helpers.o $(TESTS) $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) tests || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) tests || exit $$?;)) mkdir -p build/interfaces/test $(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \ $(MAKE) build/interfaces/test/t-NTL-interface; \ fi check: library test_helpers.o ifndef MOD $(AT)$(MAKE) $(TESTS) $(AT)$(foreach prog, $(TESTS), $(prog) || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) check || exit $$?;)) $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) check || exit $$?;) mkdir -p build/interfaces/test $(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \ $(MAKE) build/interfaces/test/t-NTL-interface; \ build/interfaces/test/t-NTL-interface; \ fi else $(AT)$(foreach dir, $(MOD), test ! -d $(dir) || mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; test ! -d $(dir) || $(MAKE) -f ../Makefile.subdirs -C $(dir) check || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(AT)$(foreach dir, $(MOD), MOD_DIR=$(dir); export MOD_DIR; test ! -d $(ext)/$(dir) || mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; test ! -d $(ext)/$(dir) || $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) check || exit $$?;)) endif valgrind: library ifndef MOD $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) valgrind || exit $$?;) $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) valgrind || exit $$?;)) else $(AT)$(foreach dir, $(MOD), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) valgrind || exit $$?;) endif install: library mkdir -p $(DESTDIR)$(PREFIX)/lib mkdir -p $(DESTDIR)$(PREFIX)/include/flint $(AT)if [ "$(FLINT_SHARED)" -eq "1" ]; then \ cp $(FLINT_LIB) $(DESTDIR)$(PREFIX)/lib; \ fi $(AT)if [ "$(FLINT_STATIC)" -eq "1" ]; then \ cp libflint.a $(DESTDIR)$(PREFIX)/lib; \ fi cp $(HEADERS) $(DESTDIR)$(PREFIX)/include/flint $(AT)if [ ! -z $(EXT_HEADERS) ]; then \ cp $(EXT_HEADERS) $(DESTDIR)$(PREFIX)/include/flint; \ fi mkdir -p $(DESTDIR)$(FLINT_CPIMPORT_DIR) cp qadic/CPimport.txt $(DESTDIR)$(FLINT_CPIMPORT_DIR) mkdir -p $(DESTDIR)$(PREFIX)/include/flint/flintxx cp flintxx/*.h $(DESTDIR)$(PREFIX)/include/flint/flintxx cp *xx.h $(DESTDIR)$(PREFIX)/include/flint build: mkdir -p build build/%.lo: %.c $(HEADERS) | build $(QUIET_CC) $(CC) $(PIC_FLAG) $(CFLAGS) $(INCS) -c $< -o $@; build/%.o: %.c $(HEADERS) | build $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@; build/test/%$(EXEEXT): test/%.c $(HEADERS) | build/test $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< -o $@ $(LIBS) build/test: mkdir -p build/test build/interfaces: mkdir -p build/interfaces build/interfaces/NTL-interface.lo: interfaces/NTL-interface.cpp NTL-interface.h $(QUIET_CXX) $(CXX) $(PIC_FLAG) $(CFLAGS) $(INCS) -c $< -o $@; build/interfaces/NTL-interface.o: interfaces/NTL-interface.cpp NTL-interface.h $(QUIET_CXX) $(CXX) $(CFLAGS) $(INCS) -c $< -o $@; build/interfaces/test/t-NTL-interface$(EXEEXT): interfaces/test/t-NTL-interface.cpp $(QUIET_CXX) $(CXX) $(CFLAGS) $(INCS) $< build/interfaces/NTL-interface.o -o $@ $(LIBS); print-%: @echo '$*=$($*)' .PHONY: profile library shared static clean examples tune check tests distclean dist install all valgrind