ecc: Support Montgomery curve for gcry_mpi_ec_mul_point.
[libgcrypt.git] / src / Makefile.am
1 # Makefile.am - for gcrypt/src
2 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
3 #               2006, 2007  Free Software Foundation, Inc.
4 #
5 # This file is part of Libgcrypt.
6 #
7 # Libgcrypt is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU Lesser General Public License as
9 # published by the Free Software Foundation; either version 2.1 of
10 # the License, or (at your option) any later version.
11 #
12 # Libgcrypt is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU Lesser General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, see <http://www.gnu.org/licenses/>.
19
20
21 ## Process this file with automake to produce Makefile.in
22
23 EXTRA_DIST = Manifest libgcrypt-config.in libgcrypt.m4 libgcrypt.vers \
24              gcrypt.h.in libgcrypt.def
25
26 bin_SCRIPTS = libgcrypt-config
27 m4datadir = $(datadir)/aclocal
28 m4data_DATA = libgcrypt.m4
29 include_HEADERS = gcrypt.h
30
31 lib_LTLIBRARIES = libgcrypt.la
32 bin_PROGRAMS = dumpsexp hmac256 mpicalc
33 if USE_RANDOM_DAEMON
34 sbin_PROGRAMS = gcryptrnd
35 bin_PROGRAMS += getrandom
36 endif USE_RANDOM_DAEMON
37
38 # Depending on the architecture some targets require libgpg-error.
39 if HAVE_W32CE_SYSTEM
40 arch_gpg_error_cflags = $(GPG_ERROR_CFLAGS)
41 arch_gpg_error_libs   = $(GPG_ERROR_LIBS)
42 else
43 arch_gpg_error_cflags =
44 arch_gpg_error_libs   =
45 endif
46
47 AM_CFLAGS = $(GPG_ERROR_CFLAGS)
48 AM_CCASFLAGS = $(NOEXECSTACK_FLAGS)
49
50 if HAVE_LD_VERSION_SCRIPT
51   libgcrypt_version_script_cmd = -Wl,--version-script=$(srcdir)/libgcrypt.vers
52 else
53   libgcrypt_version_script_cmd =
54 endif
55
56 libgcrypt_la_CFLAGS = $(GPG_ERROR_CFLAGS)
57 libgcrypt_la_SOURCES = \
58         gcrypt-int.h g10lib.h visibility.c visibility.h types.h \
59         cipher.h cipher-proto.h \
60         misc.c global.c sexp.c hwfeatures.c hwf-common.h \
61         stdmem.c stdmem.h secmem.c secmem.h \
62         mpi.h missing-string.c fips.c \
63         hmac256.c hmac256.h context.c context.h \
64         ec-context.h
65
66 EXTRA_libgcrypt_la_SOURCES = hwf-x86.c hwf-arm.c
67 gcrypt_hwf_modules = @GCRYPT_HWF_MODULES@
68
69
70 if HAVE_W32_SYSTEM
71
72 RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
73         $(libgcrypt_la_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
74 LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
75
76 SUFFIXES = .rc .lo
77
78 .rc.lo:
79         $(LTRCCOMPILE) -i "$<" -o "$@"
80
81 gcrypt_res = versioninfo.lo
82 no_undefined = -no-undefined
83 export_symbols = -export-symbols $(srcdir)/libgcrypt.def
84
85 install-def-file:
86         -$(INSTALL) -d $(DESTDIR)$(libdir)
87         $(INSTALL) $(srcdir)/libgcrypt.def $(DESTDIR)$(libdir)/libgcrypt.def
88
89 uninstall-def-file:
90         -rm $(DESTDIR)$(libdir)/libgcrypt.def
91
92 gcrypt_deps = $(gcrypt_res) libgcrypt.def
93
94 else !HAVE_W32_SYSTEM
95
96 gcrypt_res =
97 gcrypt_res_ldflag =
98 no_undefined =
99 export_symbols =
100 install-def-file:
101 uninstall-def-file:
102
103 gcrypt_deps =
104
105 endif !HAVE_W32_SYSTEM
106
107
108 libgcrypt_la_LDFLAGS = $(no_undefined) $(export_symbols) \
109         $(libgcrypt_version_script_cmd) -version-info \
110         @LIBGCRYPT_LT_CURRENT@:@LIBGCRYPT_LT_REVISION@:@LIBGCRYPT_LT_AGE@
111 libgcrypt_la_DEPENDENCIES = \
112          $(gcrypt_hwf_modules) \
113         ../cipher/libcipher.la \
114         ../random/librandom.la \
115         ../mpi/libmpi.la \
116         ../compat/libcompat.la \
117         $(srcdir)/libgcrypt.vers $(gcrypt_deps)
118 libgcrypt_la_LIBADD = $(gcrypt_res) \
119         $(gcrypt_hwf_modules) \
120         ../cipher/libcipher.la \
121         ../random/librandom.la \
122         ../mpi/libmpi.la \
123         ../compat/libcompat.la  $(GPG_ERROR_LIBS)
124
125
126 dumpsexp_SOURCES = dumpsexp.c
127 dumpsexp_CFLAGS = $(arch_gpg_error_cflags)
128 dumpsexp_LDADD = $(arch_gpg_error_libs)
129
130 mpicalc_SOURCES = mpicalc.c
131 mpicalc_CFLAGS = $(GPG_ERROR_CFLAGS)
132 mpicalc_LDADD = libgcrypt.la $(GPG_ERROR_LIBS)
133
134 hmac256_SOURCES = hmac256.c
135 hmac256_CFLAGS = -DSTANDALONE $(arch_gpg_error_cflags)
136 hmac256_LDADD = $(arch_gpg_error_libs)
137
138 if USE_RANDOM_DAEMON
139 gcryptrnd_SOURCES = gcryptrnd.c
140 gcryptrnd_CFLAGS = $(GPG_ERROR_CFLAGS) $(PTH_CFLAGS)
141 gcryptrnd_LDADD = libgcrypt.la $(GPG_ERROR_LIBS) $(PTH_LIBS)
142
143 getrandom_SOURCES = getrandom.c
144 endif USE_RANDOM_DAEMON
145
146
147 install-data-local: install-def-file
148
149 uninstall-local: uninstall-def-file
150
151 # FIXME: We need to figure out how to get the actual name (parsing
152 # libgcrypt.la?) and how to create the hmac file already at link time
153 # so that it can be used without installing libgcrypt first.
154 #install-exec-hook:
155 #       ./hmac256 "What am I, a doctor or a moonshuttle conductor?" \
156 #          < $(DESTDIR)$(libdir)/libgcrypt.so.11.5.0 \
157 #          > $(DESTDIR)$(libdir)/.libgcrypt.so.11.5.0.hmac