Makefile.am 3.94 KB
Newer Older
1
#  This file is part of the gf2x library.
Emmanuel Thomé's avatar
Emmanuel Thomé committed
2
#
3 4
#  Copyright 2007, 2008, 2009, 2010, 2013, 2014, 2015
#  Richard Brent, Pierrick Gaudry, Emmanuel Thome', Paul Zimmermann
Emmanuel Thomé's avatar
Emmanuel Thomé committed
5
#
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#  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.
26

27
AUTOMAKE_OPTIONS=subdir-objects
Emmanuel Thomé's avatar
Emmanuel Thomé committed
28
ACLOCAL_AMFLAGS=-I config --install
Emmanuel Thomé's avatar
Emmanuel Thomé committed
29 30
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)

31 32 33 34 35 36 37 38 39 40 41 42 43 44
FFT_SOURCES=fft/gf2x-ternary-fft.c
if ENABLE_FFT_INTERFACE
AM_CPPFLAGS += -I$(srcdir)/mpfq
FFT_SOURCES+=fft/gf2x-fake-fft.c
FFT_SOURCES+=fft/gf2x-cantor-fft.c
AM_CPPFLAGS += -I$(top_srcdir)/fft/mpfq
gf2x_includedir=$(includedir)/gf2x
gf2x_include_HEADERS=	\
	fft/gf2x-fft.h			\
	fft/gf2x-fake-fft.h		\
	fft/gf2x-cantor-fft.h		\
	fft/gf2x-ternary-fft.h
endif

Emmanuel Thomé's avatar
Emmanuel Thomé committed
45

46
lib_LTLIBRARIES=libgf2x.la
47 48 49 50
if ENABLE_FFT_INTERFACE
# default which gets shipped
libgf2x_la_CFLAGS=$(AM_CFLAGS) -DCANTOR_BASE_FIELD_SIZE=128
endif
Emmanuel Thomé's avatar
Emmanuel Thomé committed
51
libgf2x_la_SOURCES=gf2x.c toom.c toom128.c toom-gpl.c $(FFT_SOURCES)
52 53 54 55




56 57
nobase_include_HEADERS=gf2x.h	\
		gf2x/gf2x-impl.h		\
58
		gf2x/gf2x-impl-export.h		\
59 60 61 62 63
		gf2x/gf2x-small.h

# All these are generated.
nobase_nodist_include_HEADERS=	\
		gf2x/gf2x-config.h		\
64
		gf2x/gf2x-config-export.h	\
65 66 67 68
		gf2x/gf2x-thresholds.h		\
		gf2x/gf2x_mul1.h		\
		gf2x/gf2x_mul2.h		\
		gf2x/gf2x_mul3.h		\
Emmanuel Thomé's avatar
Emmanuel Thomé committed
69 70 71 72 73 74 75
		gf2x/gf2x_mul4.h		\
		gf2x/gf2x_mul5.h		\
		gf2x/gf2x_mul6.h		\
	        gf2x/gf2x_mul7.h		\
		gf2x/gf2x_mul8.h		\
		gf2x/gf2x_mul9.h

76

Emmanuel Thomé's avatar
Emmanuel Thomé committed
77
libgf2x_la_LDFLAGS=-version-info @gf2x_lib_version@ -no-undefined
78

79
SUBDIRS=lowlevel src . fft tests $(MAYBE_APPS)
80

81
DIST_SUBDIRS=lowlevel src . fft tests apps
82 83 84 85 86

DISTCLEANFILES=gf2x/gf2x-thresholds.h	\
	       gf2x/gf2x_mul1.h		\
	       gf2x/gf2x_mul2.h		\
	       gf2x/gf2x_mul3.h		\
Emmanuel Thomé's avatar
Emmanuel Thomé committed
87 88 89 90 91 92
	       gf2x/gf2x_mul4.h		\
	       gf2x/gf2x_mul5.h		\
	       gf2x/gf2x_mul6.h		\
	       gf2x/gf2x_mul7.h		\
	       gf2x/gf2x_mul8.h		\
	       gf2x/gf2x_mul9.h
93 94 95 96

EXTRA_DIST=
EXTRA_DIST+=version.sh.in
EXTRA_DIST+=BUGS
Emmanuel Thomé's avatar
Emmanuel Thomé committed
97
EXTRA_DIST+=already_tuned
98 99 100 101 102 103 104 105 106 107
EXTRA_DIST+=config/configfsf.sub
EXTRA_DIST+=config/configfsf.guess
EXTRA_DIST+=toom-gpl-placeholder.c

# This is really a maintainer-only command. This can be used for creating
# a tarball with an LGPL-licensed gf2x. Note that when this is done,
# configure must be re-run !
untaint:
	cp $(srcdir)/toom-gpl-placeholder.c $(srcdir)/toom-gpl.c

108
dist-hook:
Emmanuel Thomé's avatar
Emmanuel Thomé committed
109 110 111 112 113 114 115 116 117 118 119
	-find $(distdir)/already_tuned/tuned \! -type d -a \! -name README | xargs rm
	-git log --boundary 29b13131cfaf95132f6a0602d3e0575694359d11..HEAD > $(distdir)/ChangeLog

# This one is simply taken from the generated Makefile. I agree it's a
# bit ugly.
dist-LGPL: distdir
	mv $(distdir)/ $(distdir)-LGPL/
	cp $(distdir)-LGPL/toom-gpl-placeholder.c $(distdir)-LGPL/toom-gpl.c
	tardir=$(distdir)-LGPL && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir)-LGPL.tar.gz
	mv $(distdir)-LGPL/ $(distdir)/
	$(am__post_remove_distdir)
120 121

tune-lowlevel tune-toom tune-fft: all
Emmanuel Thomé's avatar
Emmanuel Thomé committed
122 123 124 125
	cd src; $(MAKE) $@

distclean-local:
	-find already_tuned/tuned -maxdepth 1 -name "gf2x*" | xargs -r rm -f