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.