1
# ***** BEGIN LICENSE BLOCK *****
2
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
# The contents of this file are subject to the Mozilla Public License Version
5
# 1.1 (the "License"); you may not use this file except in compliance with
6
# the License. You may obtain a copy of the License at
7
# http://www.mozilla.org/MPL/
9
# Software distributed under the License is distributed on an "AS IS" basis,
10
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
# for the specific language governing rights and limitations under the
14
# The Original Code is the MPI Arbitrary Precision Integer Arithmetic library.
16
# The Initial Developer of the Original Code is
17
# Michael J. Fromberger <sting@linguist.dartmouth.edu>.
18
# Portions created by the Initial Developer are Copyright (C) 1998
19
# the Initial Developer. All Rights Reserved.
22
# Netscape Communications Corporation
23
# Richard C. Swift (swift@netscape.com)
24
# Douglas Stebila <douglas@stebila.ca>, Sun Microsystems Laboratories
26
# Alternatively, the contents of this file may be used under the terms of
27
# either the GNU General Public License Version 2 or later (the "GPL"), or
28
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29
# in which case the provisions of the GPL or the LGPL are applicable instead
30
# of those above. If you wish to allow use of your version of this file only
31
# under the terms of either the GPL or the LGPL, and not to allow others to
32
# use your version of this file under the terms of the MPL, indicate your
33
# decision by deleting the provisions above and replace them with the notice
34
# and other provisions required by the GPL or the LGPL. If you do not delete
35
# the provisions above, a recipient may use your version of this file under
36
# the terms of any one of the MPL, the GPL or the LGPL.
38
# ***** END LICENSE BLOCK *****
41
## Define CFLAGS to contain any local options your compiler
44
## Conditional compilation options are no longer here; see
45
## the file 'mpi-config.h' instead.
47
MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC
49
#CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN)
50
#CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN)
51
#CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN)
53
ifeq ($(TARGET),mipsIRIX)
55
#MPICMN += -DMP_MONT_USE_MP_MUL
56
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE
57
MPICMN += -DMP_USE_UINT_DIGIT
58
#MPICMN += -DMP_NO_MP_WORD
60
#ASFLAGS = -O -OPT:Olimit=4000 -dollar -fullwarn -xansi -n32 -mips3 -exceptions
61
ASFLAGS = -O -OPT:Olimit=4000 -dollar -fullwarn -xansi -n32 -mips3
62
#CFLAGS=-ansi -n32 -O3 -fullwarn -woff 1429 -D_SGI_SOURCE $(MPICMN)
63
CFLAGS=-ansi -n32 -O2 -fullwarn -woff 1429 -D_SGI_SOURCE $(MPICMN)
64
#CFLAGS=-ansi -n32 -g -fullwarn -woff 1429 -D_SGI_SOURCE $(MPICMN)
65
#CFLAGS=-ansi -64 -O2 -fullwarn -woff 1429 -D_SGI_SOURCE -DMP_NO_MP_WORD \
69
ifeq ($(TARGET),alphaOSF1)
71
MPICMN += -DMP_ASSEMBLY_MULTIPLY
73
#CFLAGS= -O -Olimit 4000 -ieee_with_inexact -std1 -DOSF1 -D_REENTRANT $(MPICMN)
74
CFLAGS= -O -Olimit 4000 -ieee_with_inexact -std1 -DOSF1 -D_REENTRANT \
75
-DMP_NO_MP_WORD $(MPICMN)
78
ifeq ($(TARGET),v9SOLARIS)
80
SOLARIS_FPU_FLAGS = -fast -xO5 -xrestrict=%all -xchip=ultra -xarch=v9a -KPIC -mt
81
#SOLARIS_FPU_FLAGS = -fast -xO5 -xrestrict=%all -xdepend -xchip=ultra -xarch=v9a -KPIC -mt
82
SOLARIS_ASM_FLAGS = -xchip=ultra -xarch=v9a -KPIC -mt
83
AS_OBJS += montmulfv9.o
84
AS_OBJS += mpi_sparc.o mpv_sparcv9.o
85
MPICMN += -DMP_USE_UINT_DIGIT
86
#MPICMN += -DMP_NO_MP_WORD
87
MPICMN += -DMP_ASSEMBLY_MULTIPLY
88
MPICMN += -DMP_USING_MONT_MULF
89
CFLAGS= -O -KPIC -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT \
90
-DSOLARIS2_8 -xarch=v9 -DXP_UNIX $(MPICMN)
91
#CFLAGS= -g -KPIC -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT \
92
-DSOLARIS2_8 -xarch=v9 -DXP_UNIX $(MPICMN)
95
ifeq ($(TARGET),v8plusSOLARIS)
97
SOLARIS_FPU_FLAGS = -fast -xO5 -xrestrict=%all -xdepend -xchip=ultra -xarch=v8plusa -KPIC -mt
98
SOLARIS_ASM_FLAGS = -xchip=ultra -xarch=v8plusa -KPIC -mt
99
AS_OBJS += montmulfv8.o
100
AS_OBJS += mpi_sparc.o mpv_sparcv8.o
101
#AS_OBJS = montmulf.o
102
MPICMN += -DMP_ASSEMBLY_MULTIPLY
103
MPICMN += -DMP_USING_MONT_MULF
104
MPICMN += -DMP_USE_UINT_DIGIT
105
MPICMN += -DMP_NO_MP_WORD
106
CFLAGS=-O -KPIC -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT \
107
-DSOLARIS2_6 -xarch=v8plus -DXP_UNIX $(MPICMN)
110
ifeq ($(TARGET),v8SOLARIS)
112
#SOLARIS_FPU_FLAGS = -fast -xO5 -xrestrict=%all -xdepend -xchip=ultra -xarch=v8 -KPIC -mt
113
#SOLARIS_ASM_FLAGS = -xchip=ultra -xarch=v8plusa -KPIC -mt
114
#AS_OBJS = montmulfv8.o mpi_sparc.o mpv_sparcv8.o
115
#AS_OBJS = montmulf.o
116
#MPICMN += -DMP_USING_MONT_MULF
117
#MPICMN += -DMP_ASSEMBLY_MULTIPLY
118
MPICMN += -DMP_USE_LONG_LONG_MULTIPLY -DMP_USE_UINT_DIGIT
119
MPICMN += -DMP_NO_MP_WORD
120
CFLAGS=-O -KPIC -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT \
121
-DSOLARIS2_6 -xarch=v8 -DXP_UNIX $(MPICMN)
124
ifeq ($(TARGET),ia64HPUX)
125
#HPUX 32 on ia64 -- 64 bit digits SCREAM.
126
# This one is for DD32 which is the 32-bit ABI with 64-bit registers.
127
CFLAGS= +O3 -DHPUX10 -D_POSIX_C_SOURCE=199506L -Aa +Z -DHPUX -Dhppa \
128
-D_HPUX_SOURCE -Aa +e -z +p +DD32 -DHPUX11 -DXP_UNIX -Wl,+k $(MPICMN)
129
#CFLAGS= -O -DHPUX10 -D_POSIX_C_SOURCE=199506L -Aa +Z -DHPUX -Dhppa \
130
-D_HPUX_SOURCE -Aa +e -z +p +DD32 -DHPUX11 -DXP_UNIX -Wl,+k $(MPICMN)
131
#CFLAGS= -g -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
132
-D_HPUX_SOURCE -Aa +e -z +p +DD32 -DHPUX11 -DXP_UNIX -Wl,+k $(MPICMN)
135
ifeq ($(TARGET),ia64HPUX64)
137
# This one is for DD64 which is the 64-bit ABI
138
CFLAGS= +O3 -DHPUX10 -D_POSIX_C_SOURCE=199506L -Aa +Z -DHPUX -Dhppa \
139
-D_HPUX_SOURCE -Aa +e -z +p +DD64 -DHPUX11 -DXP_UNIX -Wl,+k $(MPICMN)
140
#CFLAGS= -g -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
141
-D_HPUX_SOURCE -Aa +e -z +p +DD64 -DHPUX11 -DXP_UNIX -Wl,+k $(MPICMN)
144
ifeq ($(TARGET),PA2.0WHPUX)
145
#HPUX64 (HP PA 2.0 Wide) using MAXPY and 64-bit digits
146
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE
147
AS_OBJS = mpi_hp.o hpma512.o hppa20.o
148
CFLAGS= -O -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
149
-D_HPUX_SOURCE -Aa +e -z +DA2.0W +DS2.0 +O3 +DChpux -DHPUX11 -DXP_UNIX \
151
#CFLAGS= -g -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
152
-D_HPUX_SOURCE -Aa +e -z +DA2.0W +DS2.0 +DChpux -DHPUX11 -DXP_UNIX \
154
AS = $(CC) $(CFLAGS) -c
157
ifeq ($(TARGET),PA2.0NHPUX)
158
#HPUX32 (HP PA 2.0 Narrow) hybrid model, using 32-bit digits
159
# This one is for DA2.0 (N) which is the 32-bit ABI with 64-bit registers.
160
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE
161
AS_OBJS = mpi_hp.o hpma512.o hppa20.o
162
CFLAGS= +O3 -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
163
-D_HPUX_SOURCE -Aa +e -z +DA2.0 +DS2.0 +DChpux -DHPUX11 -DXP_UNIX \
165
#CFLAGS= -g -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
166
-D_HPUX_SOURCE -Aa +e -z +DA2.0 +DS2.0 +DChpux -DHPUX11 -DXP_UNIX \
168
AS = $(CC) $(CFLAGS) -c
171
ifeq ($(TARGET),PA1.1HPUX)
172
#HPUX32 (HP PA 1.1) Pure 32 bit
173
MPICMN += -DMP_USE_UINT_DIGIT -DMP_NO_MP_WORD
174
#MPICMN += -DMP_USE_LONG_LONG_MULTIPLY
175
CFLAGS= -O -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
176
-D_HPUX_SOURCE +DAportable +DS1.1 -DHPUX11 -DXP_UNIX $(MPICMN)
177
##CFLAGS= -g -DHPUX10 -D_POSIX_C_SOURCE=199506L -Ae +Z -DHPUX -Dhppa \
178
# -D_HPUX_SOURCE +DAportable +DS1.1 -DHPUX11 -DXP_UNIX $(MPICMN)
181
ifeq ($(TARGET),32AIX)
184
MPICMN += -DMP_USE_UINT_DIGIT
185
MPICMN += -DMP_NO_DIV_WORD
186
#MPICMN += -DMP_NO_MUL_WORD
187
MPICMN += -DMP_NO_ADD_WORD
188
MPICMN += -DMP_NO_SUB_WORD
189
#MPICMN += -DMP_NO_MP_WORD
190
#MPICMN += -DMP_USE_LONG_LONG_MULTIPLY
191
CFLAGS = -O -DAIX -DSYSV -qarch=com -DAIX4_3 -DXP_UNIX -UDEBUG -DNDEBUG $(MPICMN)
192
#CFLAGS = -g -DAIX -DSYSV -qarch=com -DAIX4_3 -DXP_UNIX -UDEBUG -DNDEBUG $(MPICMN)
196
ifeq ($(TARGET),64AIX)
199
MPICMN += -DMP_USE_UINT_DIGIT
200
CFLAGS = -O -O2 -DAIX -DSYSV -qarch=com -DAIX_64BIT -DAIX4_3 -DXP_UNIX -UDEBUG -DNDEBUG $(MPICMN)
205
ifeq ($(TARGET),x86LINUX)
208
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -DMP_ASSEMBLY_DIV_2DX1D
209
MPICMN += -DMP_MONT_USE_MP_MUL -DMP_CHAR_STORE_SLOW -DMP_IS_LITTLE_ENDIAN
210
CFLAGS= -O2 -fPIC -DLINUX1_2 -Di386 -D_XOPEN_SOURCE -DLINUX2_1 -ansi -Wall \
211
-pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR \
212
-DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT $(MPICMN)
213
#CFLAGS= -g -fPIC -DLINUX1_2 -Di386 -D_XOPEN_SOURCE -DLINUX2_1 -ansi -Wall \
214
-pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR \
215
-DXP_UNIX -DDEBUG -UNDEBUG -D_REENTRANT $(MPICMN)
216
#CFLAGS= -g -fPIC -DLINUX1_2 -Di386 -D_XOPEN_SOURCE -DLINUX2_1 -ansi -Wall \
217
-pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR \
218
-DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT $(MPICMN)
221
ifeq ($(TARGET),AMD64SOLARIS)
222
ASFLAGS += -xarch=generic64
223
AS_OBJS = mpi_amd64.o mpi_amd64_sun.o
224
MP_CONFIG = -DMP_ASSEMBLY_MULTIPLY -DMPI_AMD64
225
MP_CONFIG += -DMP_CHAR_STORE_SLOW -DMP_IS_LITTLE_ENDIAN
226
CFLAGS = -xarch=generic64 -xO4 -I. -DMP_API_COMPATIBLE -DMP_IOFUNC $(MP_CONFIG)
227
MPICMN += $(MP_CONFIG)
229
mpi_amd64_asm.o: mpi_amd64_sun.s
230
$(AS) -xarch=generic64 -P -D_ASM mpi_amd64_sun.s
233
ifeq ($(TARGET),WIN32)
234
AS_OBJS = mpi_x86.obj
235
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -DMP_ASSEMBLY_DIV_2DX1D
236
MPICMN += -DMP_USE_UINT_DIGIT -DMP_NO_MP_WORD -DMP_API_COMPATIBLE
237
MPICMN += -DMP_MONT_USE_MP_MUL
238
MPICMN += -DMP_CHAR_STORE_SLOW -DMP_IS_LITTLE_ENDIAN
239
CFLAGS = -Od -Z7 -MDd -W3 -nologo -DDEBUG -D_DEBUG -UNDEBUG -DDEBUG_$(USER)
240
CFLAGS += -DWIN32 -D_WINDOWS -D_X86_ -DWIN95 -DXP_PC -DNSS_ENABLE_ECC
243
$(AS_OBJS): %.obj : %.asm
244
ml -Cp -Sn -Zi -coff -nologo -c $<
246
$(LIBOBJS): %.obj : %.c
247
cl $(CFLAGS) -Fo$@ -c $<