4a1c27fb923feb52218d9a8a97964289133c6398
[libgcrypt.git] / mpi / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2 # Copyright (C) 1992, 1999, 2000, 2002 Free Software Foundation, Inc.
3 #
4 # This file is part of Libgcrypt.
5 #
6 # Libgcrypt is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU Lesser General Public License as
8 # published by the Free Software Foundation; either version 2.1 of
9 # the License, or (at your option) any later version.
10 #
11 # Libgcrypt is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU Lesser General Public License for more details.
15 #
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19
20 # 1.5 leads to a combinatorial explosion due to all the conditionals
21 # I was not able to build it with 64Megs - 1.6 fixes this.
22 # not anymore required: AUTOMAKE_OPTIONS = 1.6
23
24 INCLUDES =  -I$(top_srcdir)/src
25 ASFLAGS = @MPI_SFLAGS@
26 AM_CCASFLAGS = $(NOEXECSTACK_FLAGS)
27
28 # We don't have .S sources listed, so automake does not autocreate these
29 CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
30 LTCCASCOMPILE = $(LIBTOOL) --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
31
32
33 EXTRA_DIST = Manifest config.links
34 DISTCLEANFILES = mpi-asm-defs.h \
35                  mpih-add1.S mpih-mul1.S mpih-mul2.S mpih-mul3.S  \
36                  mpih-lshift.S mpih-rshift.S mpih-sub1.S asm-syntax.h sysdep.h
37 # Note: we only use .S files so we should delete all left over .s
38 CLEANFILES = _*.s __*.s
39
40 # Beware: The following list is not a comment but grepped by
41 #         config.links to get the list of symlinked modules
42 #         Optional modules are marked with a 0 in the second column.
43 #BEGIN_ASM_LIST
44 # mpih-add1    C
45 # mpih-sub1    C
46 # mpih-mul1    C
47 # mpih-mul2    C
48 # mpih-mul3    C
49 # mpih-lshift  C
50 # mpih-rshift  C
51 # udiv         O
52 # udiv-qrnnd   O
53 #END_ASM_LIST
54
55 # Note: This function has not yet been implemented.  There is only a dummy in
56 # generic/
57 # udiv-w-sdiv  O
58
59 # And we need to have conditionals for all modules because
60 # we don't know whether they are .c or .S.  Very ugly; I know.
61 # Remember to define them all in configure.ac
62 # if MPI_MOD_ASM_MPIH_ADD1
63 # mpih_add1 = mpih-add1.S
64 # else
65 # if MPI_MOD_C_MPIH_ADD1
66 # mpih_add1 = mpih-add1.c
67 # else
68 # mpih_add1 = 
69 # endif
70 # endif
71
72 # if MPI_MOD_ASM_MPIH_SUB1
73 # mpih_sub1 = mpih-sub1.S
74 # else
75 # if MPI_MOD_C_MPIH_SUB1
76 # mpih_sub1 = mpih-sub1.c
77 # else
78 # mpih_sub1 = 
79 # endif
80 # endif
81
82 # if MPI_MOD_ASM_MPIH_MUL1
83 # mpih_mul1 = mpih-mul1.S
84 # else
85 # if MPI_MOD_C_MPIH_MUL1
86 # mpih_mul1 = mpih-mul1.c
87 # else
88 # mpih_mul1 = 
89 # endif
90 # endif
91
92 # if MPI_MOD_ASM_MPIH_MUL2
93 # mpih_mul2 = mpih-mul2.S
94 # else
95 # if MPI_MOD_C_MPIH_MUL2
96 # mpih_mul2 = mpih-mul2.c
97 # else
98 # mpih_mul2 = 
99 # endif
100 # endif
101
102 # if MPI_MOD_ASM_MPIH_MUL3
103 # mpih_mul3 = mpih-mul3.S
104 # else
105 # if MPI_MOD_C_MPIH_MUL3
106 # mpih_mul3 = mpih-mul3.c
107 # else
108 # mpih_mul3 = 
109 # endif
110 # endif
111
112 # if MPI_MOD_ASM_MPIH_LSHIFT
113 # mpih_lshift = mpih-lshift.S
114 # else
115 # if MPI_MOD_C_MPIH_LSHIFT
116 # mpih_lshift = mpih-lshift.c
117 # else
118 # mpih_lshift = 
119 # endif
120 # endif
121
122 # if MPI_MOD_ASM_MPIH_RSHIFT
123 # mpih_rshift = mpih-rshift.S
124 # else
125 # if MPI_MOD_C_MPIH_RSHIFT
126 # mpih_rshift = mpih-rshift.c
127 # else
128 # mpih_rshift = 
129 # endif
130 # endif
131
132 # if MPI_MOD_ASM_UDIV
133 # udiv = udiv.S
134 # else
135 # if MPI_MOD_C_UDIV
136 # udiv = udiv.c
137 # else
138 # udiv = 
139 # endif
140 # endif
141
142 # if MPI_MOD_ASM_UDIV_QRNND
143 # udiv_qrnnd = udiv-qrnnd.S
144 # else
145 # if MPI_MOD_C_UDIV_QRNND
146 # udiv_qrnnd = udiv-qrnnd.c
147 # else
148 # udiv_qrnnd = 
149 # endif
150 # endif
151
152 noinst_LTLIBRARIES = libmpi.la
153
154 AM_CFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
155 libmpi_la_LDFLAGS =
156 libmpi_la_SOURCES = longlong.h     \
157               mpi-add.c      \
158               mpi-bit.c      \
159               mpi-cmp.c      \
160               mpi-div.c      \
161               mpi-gcd.c      \
162               mpi-internal.h \
163               mpi-inline.h   \
164               mpi-inline.c   \
165               mpi-inv.c      \
166               mpi-mul.c      \
167               mpi-pow.c      \
168               mpi-mpow.c     \
169               mpi-scan.c     \
170               mpicoder.c     \
171               mpih-div.c     \
172               mpih-mul.c     \
173               mpiutil.c
174
175 libmpi_la_LIBADD = @MPI_MOD_LIST_LO@
176 libmpi_la_DEPENDENCIES = @MPI_MOD_LIST_LO@
177
178
179 # Because we are circumventing automake with regards to assembler
180 # files, we have to define our own rules.
181
182 SUFFIXES = .S .o .obj .lo
183
184 .S.o:
185         $(CPP) $(INCLUDES) $(DEFS) $< | grep -v '^#' > $*.s
186         $(CCASCOMPILE) -c `test -f '$*.s' || echo '$(srcdir)/'`$*.s
187         rm $*.s
188
189 .S.obj:
190         $(CCASCOMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
191
192 .S.lo:
193         $(CPP) $(INCLUDES) $(DEFS) $< | grep -v '^#' > $*.s
194         $(LTCCASCOMPILE) -c -o $@ `test -f '$*.s' || echo '$(srcdir)/'`$*.s
195         rm $*.s