Add PowerPC extra CFLAGS also for chacha20-ppc and crc-ppc
[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 pkgconfigdir = $(libdir)/pkgconfig
24 pkgconfig_DATA = libgcrypt.pc
25
26 EXTRA_DIST = libgcrypt-config.in libgcrypt.m4 libgcrypt.vers \
27              gcrypt.h.in libgcrypt.def libgcrypt.pc.in
28
29 bin_SCRIPTS = libgcrypt-config
30 m4datadir = $(datadir)/aclocal
31 m4data_DATA = libgcrypt.m4
32 nodist_include_HEADERS = gcrypt.h
33
34 lib_LTLIBRARIES = libgcrypt.la
35 bin_PROGRAMS = dumpsexp hmac256 mpicalc
36 if USE_RANDOM_DAEMON
37 sbin_PROGRAMS = gcryptrnd
38 bin_PROGRAMS += getrandom
39 endif USE_RANDOM_DAEMON
40
41 # Depending on the architecture some targets require libgpg-error.
42 if HAVE_W32CE_SYSTEM
43 arch_gpg_error_cflags = $(GPG_ERROR_CFLAGS)
44 arch_gpg_error_libs   = $(GPG_ERROR_LIBS)
45 else
46 arch_gpg_error_cflags =
47 arch_gpg_error_libs   =
48 endif
49
50 AM_CFLAGS = $(GPG_ERROR_CFLAGS)
51 AM_CCASFLAGS = $(NOEXECSTACK_FLAGS)
52
53 if HAVE_LD_VERSION_SCRIPT
54   libgcrypt_version_script_cmd = -Wl,--version-script=$(srcdir)/libgcrypt.vers
55 else
56   libgcrypt_version_script_cmd =
57 endif
58
59 libgcrypt_la_CFLAGS = $(GPG_ERROR_CFLAGS)
60 libgcrypt_la_SOURCES = \
61         gcrypt-int.h g10lib.h visibility.c visibility.h types.h \
62         gcrypt-testapi.h cipher.h cipher-proto.h \
63         misc.c global.c sexp.c hwfeatures.c hwf-common.h \
64         stdmem.c stdmem.h secmem.c secmem.h \
65         mpi.h missing-string.c fips.c \
66         hmac256.c hmac256.h context.c context.h \
67         ec-context.h
68
69 EXTRA_libgcrypt_la_SOURCES = hwf-x86.c hwf-arm.c hwf-ppc.c
70 gcrypt_hwf_modules = @GCRYPT_HWF_MODULES@
71
72
73 if HAVE_W32_SYSTEM
74
75 RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
76         $(libgcrypt_la_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
77 LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
78
79 SUFFIXES = .rc .lo
80
81 .rc.lo:
82         $(LTRCCOMPILE) -i "$<" -o "$@"
83
84 gcrypt_res = versioninfo.lo
85 no_undefined = -no-undefined
86 export_symbols = -export-symbols $(srcdir)/libgcrypt.def
87 extra_ltoptions = -XCClinker -static-libgcc
88
89 install-def-file:
90         -$(INSTALL) -d $(DESTDIR)$(libdir)
91         $(INSTALL) $(srcdir)/libgcrypt.def $(DESTDIR)$(libdir)/libgcrypt.def
92
93 uninstall-def-file:
94         -rm $(DESTDIR)$(libdir)/libgcrypt.def
95
96 gcrypt_deps = $(gcrypt_res) libgcrypt.def
97
98 else !HAVE_W32_SYSTEM
99
100 gcrypt_res =
101 gcrypt_res_ldflag =
102 no_undefined =
103 export_symbols =
104 extra_ltoptions =
105 install-def-file:
106 uninstall-def-file:
107
108 gcrypt_deps =
109
110 endif !HAVE_W32_SYSTEM
111
112
113 libgcrypt_la_LDFLAGS = $(no_undefined) $(export_symbols) $(extra_ltoptions) \
114         $(libgcrypt_version_script_cmd) -version-info \
115         @LIBGCRYPT_LT_CURRENT@:@LIBGCRYPT_LT_REVISION@:@LIBGCRYPT_LT_AGE@
116 libgcrypt_la_DEPENDENCIES = \
117          $(gcrypt_hwf_modules) \
118         ../cipher/libcipher.la \
119         ../random/librandom.la \
120         ../mpi/libmpi.la \
121         ../compat/libcompat.la \
122         $(srcdir)/libgcrypt.vers $(gcrypt_deps)
123 libgcrypt_la_LIBADD = $(gcrypt_res) \
124         $(gcrypt_hwf_modules) \
125         ../cipher/libcipher.la \
126         ../random/librandom.la \
127         ../mpi/libmpi.la \
128         ../compat/libcompat.la  $(GPG_ERROR_LIBS)
129
130
131 dumpsexp_SOURCES = dumpsexp.c
132 dumpsexp_CFLAGS = $(arch_gpg_error_cflags)
133 dumpsexp_LDADD = $(arch_gpg_error_libs)
134
135 mpicalc_SOURCES = mpicalc.c
136 mpicalc_CFLAGS = $(GPG_ERROR_CFLAGS)
137 mpicalc_LDADD = libgcrypt.la $(DL_LIBS) $(GPG_ERROR_LIBS)
138
139 hmac256_SOURCES = hmac256.c
140 hmac256_CFLAGS = -DSTANDALONE $(arch_gpg_error_cflags)
141 hmac256_LDADD = $(arch_gpg_error_libs)
142
143 if USE_RANDOM_DAEMON
144 gcryptrnd_SOURCES = gcryptrnd.c
145 gcryptrnd_CFLAGS = $(GPG_ERROR_CFLAGS) $(PTH_CFLAGS)
146 gcryptrnd_LDADD = libgcrypt.la $(GPG_ERROR_LIBS) $(PTH_LIBS)
147
148 getrandom_SOURCES = getrandom.c
149 endif USE_RANDOM_DAEMON
150
151
152 install-data-local: install-def-file
153
154 uninstall-local: uninstall-def-file
155
156 # FIXME: We need to figure out how to get the actual name (parsing
157 # libgcrypt.la?) and how to create the hmac file already at link time
158 # so that it can be used without installing libgcrypt first.
159 #install-exec-hook:
160 #       ./hmac256 "What am I, a doctor or a moonshuttle conductor?" \
161 #          < $(DESTDIR)$(libdir)/libgcrypt.so.11.5.0 \
162 #          > $(DESTDIR)$(libdir)/.libgcrypt.so.11.5.0.hmac