Remove macro hacks for internal vs. external functions. Part 1.
[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         ath.h ath.c
66
67 EXTRA_libgcrypt_la_SOURCES = hwf-x86.c hwf-arm.c
68 gcrypt_hwf_modules = @GCRYPT_HWF_MODULES@
69
70
71 if HAVE_W32_SYSTEM
72
73 RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
74         $(libgcrypt_la_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
75 LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
76
77 SUFFIXES = .rc .lo
78
79 .rc.lo:
80         $(LTRCCOMPILE) -i "$<" -o "$@"
81
82 gcrypt_res = versioninfo.lo
83 no_undefined = -no-undefined
84 export_symbols = -export-symbols $(srcdir)/libgcrypt.def
85
86 install-def-file:
87         -$(INSTALL) -d $(DESTDIR)$(libdir)
88         $(INSTALL) $(srcdir)/libgcrypt.def $(DESTDIR)$(libdir)/libgcrypt.def
89
90 uninstall-def-file:
91         -rm $(DESTDIR)$(libdir)/libgcrypt.def
92
93 gcrypt_deps = $(gcrypt_res) libgcrypt.def
94
95 else !HAVE_W32_SYSTEM
96
97 gcrypt_res =
98 gcrypt_res_ldflag =
99 no_undefined =
100 export_symbols =
101 install-def-file:
102 uninstall-def-file:
103
104 gcrypt_deps =
105
106 endif !HAVE_W32_SYSTEM
107
108
109 libgcrypt_la_LDFLAGS = $(no_undefined) $(export_symbols) \
110         $(libgcrypt_version_script_cmd) -version-info \
111         @LIBGCRYPT_LT_CURRENT@:@LIBGCRYPT_LT_REVISION@:@LIBGCRYPT_LT_AGE@
112 libgcrypt_la_DEPENDENCIES = \
113          $(gcrypt_hwf_modules) \
114         ../cipher/libcipher.la \
115         ../random/librandom.la \
116         ../mpi/libmpi.la \
117         ../compat/libcompat.la \
118         $(srcdir)/libgcrypt.vers $(gcrypt_deps)
119 libgcrypt_la_LIBADD = $(gcrypt_res) \
120         $(gcrypt_hwf_modules) \
121         ../cipher/libcipher.la \
122         ../random/librandom.la \
123         ../mpi/libmpi.la \
124         ../compat/libcompat.la  $(GPG_ERROR_LIBS)
125
126
127 dumpsexp_SOURCES = dumpsexp.c
128 dumpsexp_CFLAGS = $(arch_gpg_error_cflags)
129 dumpsexp_LDADD = $(arch_gpg_error_libs)
130
131 mpicalc_SOURCES = mpicalc.c
132 mpicalc_CFLAGS = $(GPG_ERROR_CFLAGS)
133 mpicalc_LDADD = libgcrypt.la $(GPG_ERROR_LIBS)
134
135 hmac256_SOURCES = hmac256.c
136 hmac256_CFLAGS = -DSTANDALONE $(arch_gpg_error_cflags)
137 hmac256_LDADD = $(arch_gpg_error_libs)
138
139 if USE_RANDOM_DAEMON
140 gcryptrnd_SOURCES = gcryptrnd.c
141 gcryptrnd_CFLAGS = $(GPG_ERROR_CFLAGS) $(PTH_CFLAGS)
142 gcryptrnd_LDADD = libgcrypt.la $(GPG_ERROR_LIBS) $(PTH_LIBS)
143
144 getrandom_SOURCES = getrandom.c
145 endif USE_RANDOM_DAEMON
146
147
148 install-data-local: install-def-file
149
150 uninstall-local: uninstall-def-file
151
152 # FIXME: We need to figure out how to get the actual name (parsing
153 # libgcrypt.la?) and how to create the hmac file already at link time
154 # so that it can be used without installing libgcrypt first.
155 #install-exec-hook:
156 #       ./hmac256 "What am I, a doctor or a moonshuttle conductor?" \
157 #          < $(DESTDIR)$(libdir)/libgcrypt.so.11.5.0 \
158 #          > $(DESTDIR)$(libdir)/.libgcrypt.so.11.5.0.hmac