Great project!  I have used it to add rational (mpq) and variable 
precision floating point (mpf) datatypes to my APL interpreter.  Many 
thanks for all of your hard work.

Running MPIR-2.5.0 on a Win7/AMD64 system, I need to create static 
libraries for 32- and 64-bit builds as well as debug and non-debug versions.

1.  In order to create both 32- and 64-bit versions on the same Windows 
platform, it's necessary to set the environment variable 
PROCESSOR_ARCHITECTURE for each context.  Also, the resulting library 
must be renamed to avoid it being clobbered by the other ABI.

I created the following batch files in the /mpir-2.5.0/win/ directory:

mk32.bat:
=========
setlocal
Set PROCESSOR_ARCHITECTURE=x86

call make clean

call configure ABI=32
if errorlevel 1 goto :EXIT

call make
if errorlevel 1 goto :EXIT

if not exist  ..\lib mkdir ..\lib
copy mpir.lib ..\lib\mpir32.lib

:EXIT
endlocal
========

mk64.bat:
=========
setlocal
Set PROCESSOR_ARCHITECTURE=AMD64

call make clean

call configure ABI=64
if errorlevel 1 goto :EXIT

call make
if errorlevel 1 goto :EXIT

if not exist  ..\lib mkdir ..\lib
copy mpir.lib ..\lib\mpir64.lib

:EXIT
endlocal
========

There are many ways to write these batch files.

2.  The second goal of enabling DEBUG vs. non-DEBUG involves changes to 
configure.bat -- my take on it is as follows:

Insert the following lines

if "%0" == "--debug" (
     shift
     set DFLAGS=/Z7 /D "DEBUG"
     set DFLAGS1=/MTd
     ) else (
     set DFLAGS=/Ox /Ot /Oi /D "NDEBUG"
     set DFLAGS1=/MT
     )

after label :lp.

Replace the following lines

echo (set FLAGS=/Ox /Ot /D "NDEBUG" /D "HAVE_CONFIG_H" /nologo /D 
"_MBCS" /GS-) >> config.params.bat
if %LIBTYPE% == lib (set FLAGS1=/Oi /D "_LIB" /D "PIC" /MT)

with

echo (set FLAGS=%DFLAGS% /D "HAVE_CONFIG_H" /nologo /D "_MBCS" /GS-) >> 
config.params.bat
if %LIBTYPE% == lib (set FLAGS1=/D "_LIB" /D "PIC" %DFLAGS1%)

I'm not sure what debug flags to use for DLLs so I made no change to 
that portion.

This change involves creating two more batch files, the 32-bit version 
of which is

mk32d.bat
=========
@echo off
setlocal
Set PROCESSOR_ARCHITECTURE=x86

call make clean

call configure ABI=32 --debug
if errorlevel 1 goto :EXIT

call make
if errorlevel 1 goto :EXIT

if not exist  ..\lib mkdir ..\lib
copy mpir.lib ..\lib\mpir32d.lib

:EXIT
endlocal
========

3.  BTW, when I compile the 64-bit version (but not the 32-bit version), 
the compile ends with

osmpq.cc
osmpz.cc
divexact_by3c.obj : warning LNK4006: __gmpn_divexact_by3 already defined 
in compat.obj; second definition ignored

This is probably harmless, but is there some way to avoid it?

-- 
_______________________________________________________________
Bob Smith - bsm...@sudleyplace.com
http://www.sudleyplace.com - http://www.nars2000.org



Hi

Sounds interesting , the divexact_by3 warning is known , there's no easy way to 
avoid it at the moment , but when we revamp the division code it will go away , 
it's just the current division code is a right old mismash :)

We can include these batch files in the next release if you want , they need to 
be under the LGPL v2.1 or above and some words in the manual about them


Thanks
Jason

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to mpir-devel@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to