Raw File
Makefile.am
#  This file is part of the gf2x library.
#
#  Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013
#  Richard Brent, Pierrick Gaudry, Emmanuel Thome', Paul Zimmermann
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of either:
#   - If the archive contains a file named toom-gpl.c (not a trivial
#     placeholder), the GNU General Public License as published by the
#     Free Software Foundation; either version 3 of the License, or (at
#     your option) any later version.
#   - If the archive contains a file named toom-gpl.c which is a trivial
#     placeholder, the GNU Lesser General Public License as published by
#     the Free Software Foundation; either version 2.1 of the License, or
#     (at your option) any later version.
#  
#  This program is distributed in the hope that it will be useful, but WITHOUT
#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#  FITNESS FOR A PARTICULAR PURPOSE.  See the license text for more details.
#  
#  You should have received a copy of the GNU General Public License as
#  well as the GNU Lesser General Public License along with this program;
#  see the files COPYING and COPYING.LIB.  If not, write to the Free
#  Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
#  02110-1301, USA.


# This impacts the storage class of the functions in the inlines files.
AUTOMAKE_OPTIONS=subdir-objects
# note that most automatic targets have their own CPPFLAGS, which
# override this one.
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/fft
AM_LDFLAGS = -no-install

EXTRA_PROGRAMS=
TESTS =
check_PROGRAMS=
EXTRA_DIST=
EXTRA_DIST+=generate-test-list.pl
EXTRA_DIST+=tuneup_pre.c
EXTRA_DIST+=tuning_undef_wrapper.h
EXTRA_DIST+=tuning_undefs_pre.h


# We've got a lot of per-target cfiles here, but it's rather silly to
# have automake produce separate .o files for the files which fo _not_
# change in this regard. So we resort to having lots of silly libraries,
# as a workaround.

EXTRA_LTLIBRARIES=libtiming.la
libtiming_la_SOURCES=timing.c

LOWLEVEL=
CLEANFILES=
DISTCLEANFILES=
BUILT_SOURCES=

# EXTRA_PROGRAMS=gen_bb_mul_code
# gen_bb_mul_code_SOURCES=gen_bb_mul_code.c

gen_bb_mul_code$(EXEEXT_FOR_BUILD): ../lowlevel/gen_bb_mul_code.c
	$(CC_FOR_BUILD) `test -f '../lowlevel/gen_bb_mul_code.c' || echo '$(srcdir)/'`../lowlevel/gen_bb_mul_code.c -o gen_bb_mul_code$(EXEEXT_FOR_BUILD)
DISTCLEANFILES += gen_bb_mul_code$(EXEEXT_FOR_BUILD)
EXTRA_DIST += ../lowlevel/gen_bb_mul_code.c


# The stuff after "-- begin generated code --" following this comment
# block is auto-generated by a perl script, from the input data provided
# in this comment block in the ACTIVE COMMENTS below.
#
# After changing the set of functions to be tested below, use
#  perl -i ./generate-test-list.pl Makefile.am
# in order to regenerate the generated automake code (note that the
# generation is done in place)
#* test_sizes 1 2 3 4 5 6 7 8 9
#* if GF2X_32BIT_SOURCES
#*   test gen_mul1_w32k{2..6}
#* endif
#* if GF2X_64BIT_SOURCES
#*   test gen_mul1_w64k{2..6}
#* endif
#*   test mul2k
#*   test mul3k
#*   test mul3k2
#*   test mul4k
#*   test mul5k_a
#*   test mul5k_b
#*   test mul5k_c
#*   test mul5k_d
#*   test mul6k_a
#*   test mul6k_b
#*   test mul6k_c
#*   test mul7k
#*   test mul8k
#*   test mul9k
#*   test mul9k2
#* if GF2X_SSE2_AVAILABLE
#*   if GF2X_64BIT_SOURCES
#*     test mul2t
#*     test mul2t2
#*   endif
#*   if GF2X_32BIT_SOURCES
#*     test mul4t
#*     test mul3t
#*   endif
#* endif
#* if GF2X_PCLMUL_AVAILABLE
#*   test mul1cl
#*   test mul2cl
# mul2cl2 uses psrldq, which is slightly different.
#*   test mul2cl2
#*   test mul3cl
## (disabled)   test mul3k3
#*   test mul4cl1
#*   test mul4clk
#*   test mul5clk_c
#*   test mul5k3
#*   test mul5clk2
#*   test mul6clk2
#*   test mul7cl
#*   test mul7k3
#*   test mul9k3
#*   test mul9clk2
#*   test mul9cl
#* endif

# Autotools already use sed, so normally sed is not an extraordinary
# difficult dependency.

# -- begin generated code --
tuning_undefs_1.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/1/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_1.h
tuneup_1.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/1/g < $(srcdir)/tuneup_pre.c > tuneup_1.c
tuneup_1.$(OBJEXT): tuning_undefs_1.h
BUILT_SOURCES +=tuneup_1.c tuning_undefs_1.h
EXTRA_LTLIBRARIES+=libtuneup-s1.la
nodist_libtuneup_s1_la_SOURCES=tuneup_1.c tuning_undefs_1.h
libtuneup_s1_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_1.h
DISTCLEANFILES+=tuning_undefs_1.h

tuning_undefs_2.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/2/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_2.h
tuneup_2.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/2/g < $(srcdir)/tuneup_pre.c > tuneup_2.c
tuneup_2.$(OBJEXT): tuning_undefs_2.h
BUILT_SOURCES +=tuneup_2.c tuning_undefs_2.h
EXTRA_LTLIBRARIES+=libtuneup-s2.la
nodist_libtuneup_s2_la_SOURCES=tuneup_2.c tuning_undefs_2.h
libtuneup_s2_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_2.h
DISTCLEANFILES+=tuning_undefs_2.h

tuning_undefs_3.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/3/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_3.h
tuneup_3.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/3/g < $(srcdir)/tuneup_pre.c > tuneup_3.c
tuneup_3.$(OBJEXT): tuning_undefs_3.h
BUILT_SOURCES +=tuneup_3.c tuning_undefs_3.h
EXTRA_LTLIBRARIES+=libtuneup-s3.la
nodist_libtuneup_s3_la_SOURCES=tuneup_3.c tuning_undefs_3.h
libtuneup_s3_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_3.h
DISTCLEANFILES+=tuning_undefs_3.h

tuning_undefs_4.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/4/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_4.h
tuneup_4.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/4/g < $(srcdir)/tuneup_pre.c > tuneup_4.c
tuneup_4.$(OBJEXT): tuning_undefs_4.h
BUILT_SOURCES +=tuneup_4.c tuning_undefs_4.h
EXTRA_LTLIBRARIES+=libtuneup-s4.la
nodist_libtuneup_s4_la_SOURCES=tuneup_4.c tuning_undefs_4.h
libtuneup_s4_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_4.h
DISTCLEANFILES+=tuning_undefs_4.h

tuning_undefs_5.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/5/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_5.h
tuneup_5.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/5/g < $(srcdir)/tuneup_pre.c > tuneup_5.c
tuneup_5.$(OBJEXT): tuning_undefs_5.h
BUILT_SOURCES +=tuneup_5.c tuning_undefs_5.h
EXTRA_LTLIBRARIES+=libtuneup-s5.la
nodist_libtuneup_s5_la_SOURCES=tuneup_5.c tuning_undefs_5.h
libtuneup_s5_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_5.h
DISTCLEANFILES+=tuning_undefs_5.h

tuning_undefs_6.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/6/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_6.h
tuneup_6.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/6/g < $(srcdir)/tuneup_pre.c > tuneup_6.c
tuneup_6.$(OBJEXT): tuning_undefs_6.h
BUILT_SOURCES +=tuneup_6.c tuning_undefs_6.h
EXTRA_LTLIBRARIES+=libtuneup-s6.la
nodist_libtuneup_s6_la_SOURCES=tuneup_6.c tuning_undefs_6.h
libtuneup_s6_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_6.h
DISTCLEANFILES+=tuning_undefs_6.h

tuning_undefs_7.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/7/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_7.h
tuneup_7.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/7/g < $(srcdir)/tuneup_pre.c > tuneup_7.c
tuneup_7.$(OBJEXT): tuning_undefs_7.h
BUILT_SOURCES +=tuneup_7.c tuning_undefs_7.h
EXTRA_LTLIBRARIES+=libtuneup-s7.la
nodist_libtuneup_s7_la_SOURCES=tuneup_7.c tuning_undefs_7.h
libtuneup_s7_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_7.h
DISTCLEANFILES+=tuning_undefs_7.h

tuning_undefs_8.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/8/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_8.h
tuneup_8.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/8/g < $(srcdir)/tuneup_pre.c > tuneup_8.c
tuneup_8.$(OBJEXT): tuning_undefs_8.h
BUILT_SOURCES +=tuneup_8.c tuning_undefs_8.h
EXTRA_LTLIBRARIES+=libtuneup-s8.la
nodist_libtuneup_s8_la_SOURCES=tuneup_8.c tuning_undefs_8.h
libtuneup_s8_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_8.h
DISTCLEANFILES+=tuning_undefs_8.h

tuning_undefs_9.h: $(srcdir)/tuning_undefs_pre.h ; sed -e s/@@SIZE@@/9/g < $(srcdir)/tuning_undefs_pre.h > tuning_undefs_9.h
tuneup_9.c: $(srcdir)/tuneup_pre.c ; sed -e s/@@SIZE@@/9/g < $(srcdir)/tuneup_pre.c > tuneup_9.c
tuneup_9.$(OBJEXT): tuning_undefs_9.h
BUILT_SOURCES +=tuneup_9.c tuning_undefs_9.h
EXTRA_LTLIBRARIES+=libtuneup-s9.la
nodist_libtuneup_s9_la_SOURCES=tuneup_9.c tuning_undefs_9.h
libtuneup_s9_la_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
CLEANFILES+=tuning_undefs_9.h
DISTCLEANFILES+=tuning_undefs_9.h

if GF2X_32BIT_SOURCES
LOWLEVEL+=tune_gen_mul1_w32k2$(EXEEXT)
tune_gen_mul1_w32k2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w32k2_SOURCES=gen_mul1_w32k2.c tuning_undefs_1.h
gen_mul1_w32k2.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w32k2_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w32k2.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 32 2 > $@
BUILT_SOURCES+=gen_mul1_w32k2.c


LOWLEVEL+=tune_gen_mul1_w32k3$(EXEEXT)
tune_gen_mul1_w32k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w32k3_SOURCES=gen_mul1_w32k3.c tuning_undefs_1.h
gen_mul1_w32k3.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w32k3_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w32k3.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 32 3 > $@
BUILT_SOURCES+=gen_mul1_w32k3.c


LOWLEVEL+=tune_gen_mul1_w32k4$(EXEEXT)
tune_gen_mul1_w32k4_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w32k4_SOURCES=gen_mul1_w32k4.c tuning_undefs_1.h
gen_mul1_w32k4.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w32k4_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w32k4.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 32 4 > $@
BUILT_SOURCES+=gen_mul1_w32k4.c


LOWLEVEL+=tune_gen_mul1_w32k5$(EXEEXT)
tune_gen_mul1_w32k5_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w32k5_SOURCES=gen_mul1_w32k5.c tuning_undefs_1.h
gen_mul1_w32k5.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w32k5_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w32k5.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 32 5 > $@
BUILT_SOURCES+=gen_mul1_w32k5.c


LOWLEVEL+=tune_gen_mul1_w32k6$(EXEEXT)
tune_gen_mul1_w32k6_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w32k6_SOURCES=gen_mul1_w32k6.c tuning_undefs_1.h
gen_mul1_w32k6.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w32k6_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w32k6.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 32 6 > $@
BUILT_SOURCES+=gen_mul1_w32k6.c


endif
if GF2X_64BIT_SOURCES
LOWLEVEL+=tune_gen_mul1_w64k2$(EXEEXT)
tune_gen_mul1_w64k2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w64k2_SOURCES=gen_mul1_w64k2.c tuning_undefs_1.h
gen_mul1_w64k2.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w64k2_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w64k2.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 64 2 > $@
BUILT_SOURCES+=gen_mul1_w64k2.c


LOWLEVEL+=tune_gen_mul1_w64k3$(EXEEXT)
tune_gen_mul1_w64k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w64k3_SOURCES=gen_mul1_w64k3.c tuning_undefs_1.h
gen_mul1_w64k3.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w64k3_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w64k3.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 64 3 > $@
BUILT_SOURCES+=gen_mul1_w64k3.c


LOWLEVEL+=tune_gen_mul1_w64k4$(EXEEXT)
tune_gen_mul1_w64k4_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w64k4_SOURCES=gen_mul1_w64k4.c tuning_undefs_1.h
gen_mul1_w64k4.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w64k4_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w64k4.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 64 4 > $@
BUILT_SOURCES+=gen_mul1_w64k4.c


LOWLEVEL+=tune_gen_mul1_w64k5$(EXEEXT)
tune_gen_mul1_w64k5_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w64k5_SOURCES=gen_mul1_w64k5.c tuning_undefs_1.h
gen_mul1_w64k5.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w64k5_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w64k5.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 64 5 > $@
BUILT_SOURCES+=gen_mul1_w64k5.c


LOWLEVEL+=tune_gen_mul1_w64k6$(EXEEXT)
tune_gen_mul1_w64k6_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
nodist_tune_gen_mul1_w64k6_SOURCES=gen_mul1_w64k6.c tuning_undefs_1.h
gen_mul1_w64k6.$(OBJEXT): tuning_undefs_1.h
tune_gen_mul1_w64k6_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
gen_mul1_w64k6.c: gen_bb_mul_code$(EXEEXT_FOR_BUILD) ; ./gen_bb_mul_code$(EXEEXT_FOR_BUILD) 64 6 > $@
BUILT_SOURCES+=gen_mul1_w64k6.c


endif
LOWLEVEL+=tune_mul2k$(EXEEXT)
tune_mul2k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=2
tune_mul2k_SOURCES=../lowlevel/mul2k.c
nodist_tune_mul2k_SOURCES=tuning_undefs_2.h
tune_mul2k_LDADD=libtuneup-s2.la libtiming.la ../libgf2x-local.a
mul2k.$(OBJEXT): tuning_undefs_2.h
check_PROGRAMS+=check_mul2k
TESTS += check_mul2k
check_mul2k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul2k.c\" -DTESTING_SIZE=2
check_mul2k_LDADD=../libgf2x-local.a
check_mul2k_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul3k$(EXEEXT)
tune_mul3k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=3
tune_mul3k_SOURCES=../lowlevel/mul3k.c
nodist_tune_mul3k_SOURCES=tuning_undefs_3.h
tune_mul3k_LDADD=libtuneup-s3.la libtiming.la ../libgf2x-local.a
mul3k.$(OBJEXT): tuning_undefs_3.h
check_PROGRAMS+=check_mul3k
TESTS += check_mul3k
check_mul3k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul3k.c\" -DTESTING_SIZE=3
check_mul3k_LDADD=../libgf2x-local.a
check_mul3k_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul3k2$(EXEEXT)
tune_mul3k2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=3
tune_mul3k2_SOURCES=../lowlevel/mul3k2.c
nodist_tune_mul3k2_SOURCES=tuning_undefs_3.h
tune_mul3k2_LDADD=libtuneup-s3.la libtiming.la ../libgf2x-local.a
mul3k2.$(OBJEXT): tuning_undefs_3.h
check_PROGRAMS+=check_mul3k2
TESTS += check_mul3k2
check_mul3k2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul3k2.c\" -DTESTING_SIZE=3
check_mul3k2_LDADD=../libgf2x-local.a
check_mul3k2_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul4k$(EXEEXT)
tune_mul4k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=4
tune_mul4k_SOURCES=../lowlevel/mul4k.c
nodist_tune_mul4k_SOURCES=tuning_undefs_4.h
tune_mul4k_LDADD=libtuneup-s4.la libtiming.la ../libgf2x-local.a
mul4k.$(OBJEXT): tuning_undefs_4.h
check_PROGRAMS+=check_mul4k
TESTS += check_mul4k
check_mul4k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul4k.c\" -DTESTING_SIZE=4
check_mul4k_LDADD=../libgf2x-local.a
check_mul4k_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5k_a$(EXEEXT)
tune_mul5k_a_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5k_a_SOURCES=../lowlevel/mul5k_a.c
nodist_tune_mul5k_a_SOURCES=tuning_undefs_5.h
tune_mul5k_a_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5k_a.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5k_a
TESTS += check_mul5k_a
check_mul5k_a_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5k_a.c\" -DTESTING_SIZE=5
check_mul5k_a_LDADD=../libgf2x-local.a
check_mul5k_a_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5k_b$(EXEEXT)
tune_mul5k_b_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5k_b_SOURCES=../lowlevel/mul5k_b.c
nodist_tune_mul5k_b_SOURCES=tuning_undefs_5.h
tune_mul5k_b_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5k_b.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5k_b
TESTS += check_mul5k_b
check_mul5k_b_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5k_b.c\" -DTESTING_SIZE=5
check_mul5k_b_LDADD=../libgf2x-local.a
check_mul5k_b_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5k_c$(EXEEXT)
tune_mul5k_c_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5k_c_SOURCES=../lowlevel/mul5k_c.c
nodist_tune_mul5k_c_SOURCES=tuning_undefs_5.h
tune_mul5k_c_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5k_c.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5k_c
TESTS += check_mul5k_c
check_mul5k_c_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5k_c.c\" -DTESTING_SIZE=5
check_mul5k_c_LDADD=../libgf2x-local.a
check_mul5k_c_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5k_d$(EXEEXT)
tune_mul5k_d_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5k_d_SOURCES=../lowlevel/mul5k_d.c
nodist_tune_mul5k_d_SOURCES=tuning_undefs_5.h
tune_mul5k_d_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5k_d.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5k_d
TESTS += check_mul5k_d
check_mul5k_d_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5k_d.c\" -DTESTING_SIZE=5
check_mul5k_d_LDADD=../libgf2x-local.a
check_mul5k_d_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul6k_a$(EXEEXT)
tune_mul6k_a_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=6
tune_mul6k_a_SOURCES=../lowlevel/mul6k_a.c
nodist_tune_mul6k_a_SOURCES=tuning_undefs_6.h
tune_mul6k_a_LDADD=libtuneup-s6.la libtiming.la ../libgf2x-local.a
mul6k_a.$(OBJEXT): tuning_undefs_6.h
check_PROGRAMS+=check_mul6k_a
TESTS += check_mul6k_a
check_mul6k_a_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul6k_a.c\" -DTESTING_SIZE=6
check_mul6k_a_LDADD=../libgf2x-local.a
check_mul6k_a_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul6k_b$(EXEEXT)
tune_mul6k_b_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=6
tune_mul6k_b_SOURCES=../lowlevel/mul6k_b.c
nodist_tune_mul6k_b_SOURCES=tuning_undefs_6.h
tune_mul6k_b_LDADD=libtuneup-s6.la libtiming.la ../libgf2x-local.a
mul6k_b.$(OBJEXT): tuning_undefs_6.h
check_PROGRAMS+=check_mul6k_b
TESTS += check_mul6k_b
check_mul6k_b_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul6k_b.c\" -DTESTING_SIZE=6
check_mul6k_b_LDADD=../libgf2x-local.a
check_mul6k_b_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul6k_c$(EXEEXT)
tune_mul6k_c_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=6
tune_mul6k_c_SOURCES=../lowlevel/mul6k_c.c
nodist_tune_mul6k_c_SOURCES=tuning_undefs_6.h
tune_mul6k_c_LDADD=libtuneup-s6.la libtiming.la ../libgf2x-local.a
mul6k_c.$(OBJEXT): tuning_undefs_6.h
check_PROGRAMS+=check_mul6k_c
TESTS += check_mul6k_c
check_mul6k_c_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul6k_c.c\" -DTESTING_SIZE=6
check_mul6k_c_LDADD=../libgf2x-local.a
check_mul6k_c_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul7k$(EXEEXT)
tune_mul7k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=7
tune_mul7k_SOURCES=../lowlevel/mul7k.c
nodist_tune_mul7k_SOURCES=tuning_undefs_7.h
tune_mul7k_LDADD=libtuneup-s7.la libtiming.la ../libgf2x-local.a
mul7k.$(OBJEXT): tuning_undefs_7.h
check_PROGRAMS+=check_mul7k
TESTS += check_mul7k
check_mul7k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul7k.c\" -DTESTING_SIZE=7
check_mul7k_LDADD=../libgf2x-local.a
check_mul7k_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul8k$(EXEEXT)
tune_mul8k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=8
tune_mul8k_SOURCES=../lowlevel/mul8k.c
nodist_tune_mul8k_SOURCES=tuning_undefs_8.h
tune_mul8k_LDADD=libtuneup-s8.la libtiming.la ../libgf2x-local.a
mul8k.$(OBJEXT): tuning_undefs_8.h
check_PROGRAMS+=check_mul8k
TESTS += check_mul8k
check_mul8k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul8k.c\" -DTESTING_SIZE=8
check_mul8k_LDADD=../libgf2x-local.a
check_mul8k_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul9k$(EXEEXT)
tune_mul9k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=9
tune_mul9k_SOURCES=../lowlevel/mul9k.c
nodist_tune_mul9k_SOURCES=tuning_undefs_9.h
tune_mul9k_LDADD=libtuneup-s9.la libtiming.la ../libgf2x-local.a
mul9k.$(OBJEXT): tuning_undefs_9.h
check_PROGRAMS+=check_mul9k
TESTS += check_mul9k
check_mul9k_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul9k.c\" -DTESTING_SIZE=9
check_mul9k_LDADD=../libgf2x-local.a
check_mul9k_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul9k2$(EXEEXT)
tune_mul9k2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=9
tune_mul9k2_SOURCES=../lowlevel/mul9k2.c
nodist_tune_mul9k2_SOURCES=tuning_undefs_9.h
tune_mul9k2_LDADD=libtuneup-s9.la libtiming.la ../libgf2x-local.a
mul9k2.$(OBJEXT): tuning_undefs_9.h
check_PROGRAMS+=check_mul9k2
TESTS += check_mul9k2
check_mul9k2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul9k2.c\" -DTESTING_SIZE=9
check_mul9k2_LDADD=../libgf2x-local.a
check_mul9k2_SOURCES=check_small_size.c


if GF2X_SSE2_AVAILABLE
if GF2X_64BIT_SOURCES
LOWLEVEL+=tune_mul2t$(EXEEXT)
tune_mul2t_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=2
tune_mul2t_SOURCES=../lowlevel/mul2t.c
nodist_tune_mul2t_SOURCES=tuning_undefs_2.h
tune_mul2t_LDADD=libtuneup-s2.la libtiming.la ../libgf2x-local.a
mul2t.$(OBJEXT): tuning_undefs_2.h
check_PROGRAMS+=check_mul2t
TESTS += check_mul2t
check_mul2t_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul2t.c\" -DTESTING_SIZE=2
check_mul2t_LDADD=../libgf2x-local.a
check_mul2t_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul2t2$(EXEEXT)
tune_mul2t2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=2
tune_mul2t2_SOURCES=../lowlevel/mul2t2.c
nodist_tune_mul2t2_SOURCES=tuning_undefs_2.h
tune_mul2t2_LDADD=libtuneup-s2.la libtiming.la ../libgf2x-local.a
mul2t2.$(OBJEXT): tuning_undefs_2.h
check_PROGRAMS+=check_mul2t2
TESTS += check_mul2t2
check_mul2t2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul2t2.c\" -DTESTING_SIZE=2
check_mul2t2_LDADD=../libgf2x-local.a
check_mul2t2_SOURCES=check_small_size.c


endif
if GF2X_32BIT_SOURCES
LOWLEVEL+=tune_mul4t$(EXEEXT)
tune_mul4t_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=4
tune_mul4t_SOURCES=../lowlevel/mul4t.c
nodist_tune_mul4t_SOURCES=tuning_undefs_4.h
tune_mul4t_LDADD=libtuneup-s4.la libtiming.la ../libgf2x-local.a
mul4t.$(OBJEXT): tuning_undefs_4.h
check_PROGRAMS+=check_mul4t
TESTS += check_mul4t
check_mul4t_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul4t.c\" -DTESTING_SIZE=4
check_mul4t_LDADD=../libgf2x-local.a
check_mul4t_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul3t$(EXEEXT)
tune_mul3t_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=3
tune_mul3t_SOURCES=../lowlevel/mul3t.c
nodist_tune_mul3t_SOURCES=tuning_undefs_3.h
tune_mul3t_LDADD=libtuneup-s3.la libtiming.la ../libgf2x-local.a
mul3t.$(OBJEXT): tuning_undefs_3.h
check_PROGRAMS+=check_mul3t
TESTS += check_mul3t
check_mul3t_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul3t.c\" -DTESTING_SIZE=3
check_mul3t_LDADD=../libgf2x-local.a
check_mul3t_SOURCES=check_small_size.c


endif
endif
if GF2X_PCLMUL_AVAILABLE
LOWLEVEL+=tune_mul1cl$(EXEEXT)
tune_mul1cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=1
tune_mul1cl_SOURCES=../lowlevel/mul1cl.c
nodist_tune_mul1cl_SOURCES=tuning_undefs_1.h
tune_mul1cl_LDADD=libtuneup-s1.la libtiming.la ../libgf2x-local.a
mul1cl.$(OBJEXT): tuning_undefs_1.h
check_PROGRAMS+=check_mul1cl
TESTS += check_mul1cl
check_mul1cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul1cl.c\" -DTESTING_SIZE=1
check_mul1cl_LDADD=../libgf2x-local.a
check_mul1cl_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul2cl$(EXEEXT)
tune_mul2cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=2
tune_mul2cl_SOURCES=../lowlevel/mul2cl.c
nodist_tune_mul2cl_SOURCES=tuning_undefs_2.h
tune_mul2cl_LDADD=libtuneup-s2.la libtiming.la ../libgf2x-local.a
mul2cl.$(OBJEXT): tuning_undefs_2.h
check_PROGRAMS+=check_mul2cl
TESTS += check_mul2cl
check_mul2cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul2cl.c\" -DTESTING_SIZE=2
check_mul2cl_LDADD=../libgf2x-local.a
check_mul2cl_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul2cl2$(EXEEXT)
tune_mul2cl2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=2
tune_mul2cl2_SOURCES=../lowlevel/mul2cl2.c
nodist_tune_mul2cl2_SOURCES=tuning_undefs_2.h
tune_mul2cl2_LDADD=libtuneup-s2.la libtiming.la ../libgf2x-local.a
mul2cl2.$(OBJEXT): tuning_undefs_2.h
check_PROGRAMS+=check_mul2cl2
TESTS += check_mul2cl2
check_mul2cl2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul2cl2.c\" -DTESTING_SIZE=2
check_mul2cl2_LDADD=../libgf2x-local.a
check_mul2cl2_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul3cl$(EXEEXT)
tune_mul3cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=3
tune_mul3cl_SOURCES=../lowlevel/mul3cl.c
nodist_tune_mul3cl_SOURCES=tuning_undefs_3.h
tune_mul3cl_LDADD=libtuneup-s3.la libtiming.la ../libgf2x-local.a
mul3cl.$(OBJEXT): tuning_undefs_3.h
check_PROGRAMS+=check_mul3cl
TESTS += check_mul3cl
check_mul3cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul3cl.c\" -DTESTING_SIZE=3
check_mul3cl_LDADD=../libgf2x-local.a
check_mul3cl_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul4cl1$(EXEEXT)
tune_mul4cl1_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=4
tune_mul4cl1_SOURCES=../lowlevel/mul4cl1.c
nodist_tune_mul4cl1_SOURCES=tuning_undefs_4.h
tune_mul4cl1_LDADD=libtuneup-s4.la libtiming.la ../libgf2x-local.a
mul4cl1.$(OBJEXT): tuning_undefs_4.h
check_PROGRAMS+=check_mul4cl1
TESTS += check_mul4cl1
check_mul4cl1_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul4cl1.c\" -DTESTING_SIZE=4
check_mul4cl1_LDADD=../libgf2x-local.a
check_mul4cl1_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul4clk$(EXEEXT)
tune_mul4clk_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=4
tune_mul4clk_SOURCES=../lowlevel/mul4clk.c
nodist_tune_mul4clk_SOURCES=tuning_undefs_4.h
tune_mul4clk_LDADD=libtuneup-s4.la libtiming.la ../libgf2x-local.a
mul4clk.$(OBJEXT): tuning_undefs_4.h
check_PROGRAMS+=check_mul4clk
TESTS += check_mul4clk
check_mul4clk_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul4clk.c\" -DTESTING_SIZE=4
check_mul4clk_LDADD=../libgf2x-local.a
check_mul4clk_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5clk_c$(EXEEXT)
tune_mul5clk_c_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5clk_c_SOURCES=../lowlevel/mul5clk_c.c
nodist_tune_mul5clk_c_SOURCES=tuning_undefs_5.h
tune_mul5clk_c_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5clk_c.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5clk_c
TESTS += check_mul5clk_c
check_mul5clk_c_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5clk_c.c\" -DTESTING_SIZE=5
check_mul5clk_c_LDADD=../libgf2x-local.a
check_mul5clk_c_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5k3$(EXEEXT)
tune_mul5k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5k3_SOURCES=../lowlevel/mul5k3.c
nodist_tune_mul5k3_SOURCES=tuning_undefs_5.h
tune_mul5k3_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5k3.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5k3
TESTS += check_mul5k3
check_mul5k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5k3.c\" -DTESTING_SIZE=5
check_mul5k3_LDADD=../libgf2x-local.a
check_mul5k3_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul5clk2$(EXEEXT)
tune_mul5clk2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=5
tune_mul5clk2_SOURCES=../lowlevel/mul5clk2.c
nodist_tune_mul5clk2_SOURCES=tuning_undefs_5.h
tune_mul5clk2_LDADD=libtuneup-s5.la libtiming.la ../libgf2x-local.a
mul5clk2.$(OBJEXT): tuning_undefs_5.h
check_PROGRAMS+=check_mul5clk2
TESTS += check_mul5clk2
check_mul5clk2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul5clk2.c\" -DTESTING_SIZE=5
check_mul5clk2_LDADD=../libgf2x-local.a
check_mul5clk2_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul6clk2$(EXEEXT)
tune_mul6clk2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=6
tune_mul6clk2_SOURCES=../lowlevel/mul6clk2.c
nodist_tune_mul6clk2_SOURCES=tuning_undefs_6.h
tune_mul6clk2_LDADD=libtuneup-s6.la libtiming.la ../libgf2x-local.a
mul6clk2.$(OBJEXT): tuning_undefs_6.h
check_PROGRAMS+=check_mul6clk2
TESTS += check_mul6clk2
check_mul6clk2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul6clk2.c\" -DTESTING_SIZE=6
check_mul6clk2_LDADD=../libgf2x-local.a
check_mul6clk2_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul7cl$(EXEEXT)
tune_mul7cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=7
tune_mul7cl_SOURCES=../lowlevel/mul7cl.c
nodist_tune_mul7cl_SOURCES=tuning_undefs_7.h
tune_mul7cl_LDADD=libtuneup-s7.la libtiming.la ../libgf2x-local.a
mul7cl.$(OBJEXT): tuning_undefs_7.h
check_PROGRAMS+=check_mul7cl
TESTS += check_mul7cl
check_mul7cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul7cl.c\" -DTESTING_SIZE=7
check_mul7cl_LDADD=../libgf2x-local.a
check_mul7cl_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul7k3$(EXEEXT)
tune_mul7k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=7
tune_mul7k3_SOURCES=../lowlevel/mul7k3.c
nodist_tune_mul7k3_SOURCES=tuning_undefs_7.h
tune_mul7k3_LDADD=libtuneup-s7.la libtiming.la ../libgf2x-local.a
mul7k3.$(OBJEXT): tuning_undefs_7.h
check_PROGRAMS+=check_mul7k3
TESTS += check_mul7k3
check_mul7k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul7k3.c\" -DTESTING_SIZE=7
check_mul7k3_LDADD=../libgf2x-local.a
check_mul7k3_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul9k3$(EXEEXT)
tune_mul9k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=9
tune_mul9k3_SOURCES=../lowlevel/mul9k3.c
nodist_tune_mul9k3_SOURCES=tuning_undefs_9.h
tune_mul9k3_LDADD=libtuneup-s9.la libtiming.la ../libgf2x-local.a
mul9k3.$(OBJEXT): tuning_undefs_9.h
check_PROGRAMS+=check_mul9k3
TESTS += check_mul9k3
check_mul9k3_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul9k3.c\" -DTESTING_SIZE=9
check_mul9k3_LDADD=../libgf2x-local.a
check_mul9k3_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul9clk2$(EXEEXT)
tune_mul9clk2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=9
tune_mul9clk2_SOURCES=../lowlevel/mul9clk2.c
nodist_tune_mul9clk2_SOURCES=tuning_undefs_9.h
tune_mul9clk2_LDADD=libtuneup-s9.la libtiming.la ../libgf2x-local.a
mul9clk2.$(OBJEXT): tuning_undefs_9.h
check_PROGRAMS+=check_mul9clk2
TESTS += check_mul9clk2
check_mul9clk2_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul9clk2.c\" -DTESTING_SIZE=9
check_mul9clk2_LDADD=../libgf2x-local.a
check_mul9clk2_SOURCES=check_small_size.c


LOWLEVEL+=tune_mul9cl$(EXEEXT)
tune_mul9cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -DTUNING=9
tune_mul9cl_SOURCES=../lowlevel/mul9cl.c
nodist_tune_mul9cl_SOURCES=tuning_undefs_9.h
tune_mul9cl_LDADD=libtuneup-s9.la libtiming.la ../libgf2x-local.a
mul9cl.$(OBJEXT): tuning_undefs_9.h
check_PROGRAMS+=check_mul9cl
TESTS += check_mul9cl
check_mul9cl_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/gf2x -DSOURCEFILE=\"../lowlevel/mul9cl.c\" -DTESTING_SIZE=9
check_mul9cl_LDADD=../libgf2x-local.a
check_mul9cl_SOURCES=check_small_size.c


endif
# -- end generated code --

######################################################################
EXTRA_PROGRAMS+=$(LOWLEVEL)
tune-lowlevel: $(LOWLEVEL)
	cd $(top_builddir) ; $(MAKE)
	MAKE="$(MAKE)" abs_srcdir=$(abs_srcdir)	\
	perl $(srcdir)/tune-lowlevel.pl $(LOWLEVEL)
EXTRA_DIST+=tune-lowlevel.pl

######################################################################
noinst_HEADERS=timing.h tuning-common.h replace.h

EXTRA_PROGRAMS+=modify-thresholds
modify_thresholds_SOURCES=modify-thresholds.c replace.c

######################################################################
EXTRA_PROGRAMS+=tunetoom
tunetoom_SOURCES=tunetoom.c tuning-common.c
tunetoom_LDADD=libtiming.la ../libgf2x-local.a -lm

TOOM_TUNING_LIMIT=2048

if GPL_CODE_PRESENT
tunetoom.res: tunetoom$(EXEEXT)
	./tunetoom $(TOOM_TUNING_LIMIT) -o tunetoom.res

tune-toom: tunetoom.res modify-thresholds$(EXEEXT)
	cd $(top_builddir) ; $(MAKE)
	cat ../gf2x/gf2x-thresholds.h > tuned_thresholds.h
	./modify-thresholds -o tuned_thresholds.h < tunetoom.res
	mkdir -p ../already_tuned/tuned/
	mv -f tuned_thresholds.h ../already_tuned/tuned/gf2x-thresholds.h
	rm -f ../gf2x/gf2x-thresholds.h
	ln -sf ../already_tuned/tuned/gf2x-thresholds.h ../gf2x/
	cd $(top_builddir) ; $(MAKE)
else
tune-toom:
	echo "No toom tuning, LGPL-only code"
	:
endif

######################################################################
EXTRA_PROGRAMS+=tunefft
tunefft_SOURCES=tunefft.c tuning-common.c
tunefft_LDADD=libtiming.la ../libgf2x-local.a

FFT_TUNING_LIMIT=8000000
FFT_TUNING_SCALE=1.02

tunefft.res: tunefft$(EXEEXT)
	./tunefft -s $(FFT_TUNING_SCALE) $(FFT_TUNING_LIMIT) -o tunefft.res

tune-fft: tunefft.res modify-thresholds$(EXEEXT)
	cd $(top_builddir) ; $(MAKE)
	cat ../gf2x/gf2x-thresholds.h > tuned_thresholds.h
	./modify-thresholds -o tuned_thresholds.h < tunefft.res
	mkdir -p ../already_tuned/tuned/
	mv -f tuned_thresholds.h ../already_tuned/tuned/gf2x-thresholds.h
	rm -f ../gf2x/gf2x-thresholds.h
	ln -sf ../already_tuned/tuned/gf2x-thresholds.h ../gf2x/
	cd $(top_builddir) ; $(MAKE)

# This holds all the things that we possibly compile if we want to run
# tune-lowlevel / tune-toom / tune-fft ; it might make sense to build
# them in CD settings, even if we're not always running the tests anyway.
# Note also that tuen-lowlevel changes the inlined code, so conceivably
# there could be compilation errors that are hard to spot.
tune-progs: $(EXTRA_PROGRAMS)
	:

CLEANFILES+=$(EXTRA_PROGRAMS) $(EXTRA_LTLIBRARIES) tunetoom.res tunefft.res
CLEANFILES+=$(BUILT_SOURCES)
back to top