@echo offgoto :Run:Usageecho.echo Before running prepare_libffi.batecho LIBFFI_SOURCE environment variable must be set to the location ofecho of python-source-deps clone of libffi branchecho VCVARSALL must be set to location of vcvarsall.batecho cygwin must be installed (see below)echo SH environment variable must be set to the location of sh.exeecho.echo Tested with cygwin-x86 from https://www.cygwin.com/install.htmlecho Select http://mirrors.kernel.org as the download siteecho Include the following cygwin packages in cygwin configuration:echo make, autoconf, automake, libtool, dejagnuecho.echo NOTE: dejagnu is only required for running tests.echo set LIBFFI_TEST=1 to run tests (optional)echo.echo Based on https://github.com/libffi/libffi/blob/master/.appveyor.ymlecho.echo.echo.Available flags:echo. -x64 build for x64echo. -x86 build for x86echo. -arm32 build for arm32echo. -arm64 build for arm64echo. -? this helpecho. --install-cygwin install cygwin to c:\cygwinexit /b 127:Runset BUILD_X64=set BUILD_X86=set BUILD_ARM32=set BUILD_ARM64=set BUILD_PDB=set BUILD_NOOPT=set INSTALL_CYGWIN=:CheckOptsif "%1"=="" goto :CheckOptsDoneif /I "%1"=="-x64" (set BUILD_X64=1) & shift & goto :CheckOptsif /I "%1"=="-x86" (set BUILD_X86=1) & shift & goto :CheckOptsif /I "%1"=="-arm32" (set BUILD_ARM32=1) & shift & goto :CheckOptsif /I "%1"=="-arm64" (set BUILD_ARM64=1) & shift & goto :CheckOptsif /I "%1"=="-pdb" (set BUILD_PDB=-g) & shift & goto :CheckOptsif /I "%1"=="-noopt" (set BUILD_NOOPT=CFLAGS='-Od -warn all') & shift & goto :CheckOptsif /I "%1"=="-?" goto :Usageif /I "%1"=="--install-cygwin" (set INSTALL_CYGWIN=1) & shift & goto :CheckOptsgoto :Usage:CheckOptsDoneif NOT DEFINED BUILD_X64 if NOT DEFINED BUILD_X86 if NOT DEFINED BUILD_ARM32 if NOT DEFINED BUILD_ARM64 (set BUILD_X64=1set BUILD_X86=1set BUILD_ARM32=1set BUILD_ARM64=1)if "%INSTALL_CYGWIN%"=="1" call :InstallCygwinsetlocalif NOT DEFINED SH if exist c:\cygwin\bin\sh.exe set SH=c:\cygwin\bin\sh.exeif NOT DEFINED VCVARSALL (if exist "C:\Program Files (x86)\Microsoft Visual Studio2017円\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" (set VCVARSALL="C:\Program Files (x86)\Microsoft Visual Studio2017円\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"))if ^%VCVARSALL:~0,1% NEQ ^" SET VCVARSALL="%VCVARSALL%"if NOT DEFINED LIBFFI_SOURCE echo.&&echo ERROR LIBFFI_SOURCE environment variable not set && goto :Usageif NOT DEFINED SH echo ERROR SH environment variable not set && goto :Usageif not exist %SH% echo ERROR %SH% does not exist && goto :Usageif not exist %LIBFFI_SOURCE% echo ERROR %LIBFFI_SOURCE% does not exist && goto :Usageset OLDPWD=%LIBFFI_SOURCE%pushd %LIBFFI_SOURCE%%SH% --login -lc "cygcheck -dc cygwin"set GET_MSVCC=%SH% -lc "cd $OLDPWD; export MSVCC=`/usr/bin/find $PWD -name msvcc.sh`; echo ${MSVCC};"FOR /F "usebackq delims==" %%i IN (`%GET_MSVCC%`) do @set MSVCC=%%iecho.echo VCVARSALL : %VCVARSALL%echo SH : %SH%echo LIBFFI_SOURCE: %LIBFFI_SOURCE%echo MSVCC : %MSVCC%echo.if not exist Makefile.in (%SH% -lc "(cd $LIBFFI_SOURCE; ./autogen.sh;)"if errorlevel 1 exit /B 1)if "%BUILD_X64%"=="1" call :BuildOne x64 x86_64-w64-cygwin x86_64-w64-cygwinif "%BUILD_X86%"=="1" call :BuildOne x86 i686-pc-cygwin i686-pc-cygwinif "%BUILD_ARM32%"=="1" call :BuildOne x86_arm i686-pc-cygwin arm-w32-cygwinif "%BUILD_ARM64%"=="1" call :BuildOne x86_arm64 i686-pc-cygwin aarch64-w64-cygwinpopdendlocalexit /b 0REM all doneREM this subroutine is called once for each architecture:BuildOnesetlocalREM Initialize variablesset VCVARS_PLATFORM=%1set BUILD=%2set HOST=%3set ASSEMBLER=set SRC_ARCHITECTURE=x86if NOT DEFINED VCVARS_PLATFORM echo ERROR bad VCVARS_PLATFORM&&exit /b 123if /I "%VCVARS_PLATFORM%" EQU "x64" (set ARCH=amd64set ARTIFACTS=%LIBFFI_SOURCE%\x86_64-w64-cygwinset ASSEMBLER=-m64set SRC_ARCHITECTURE=x86)if /I "%VCVARS_PLATFORM%" EQU "x86" (set ARCH=win32set ARTIFACTS=%LIBFFI_SOURCE%\i686-pc-cygwinset ASSEMBLER=set SRC_ARCHITECTURE=x86)if /I "%VCVARS_PLATFORM%" EQU "x86_arm" (set ARCH=arm32set ARTIFACTS=%LIBFFI_SOURCE%\arm-w32-cygwinset ASSEMBLER=-marmset SRC_ARCHITECTURE=ARM)if /I "%VCVARS_PLATFORM%" EQU "x86_arm64" (set ARCH=arm64set ARTIFACTS=%LIBFFI_SOURCE%\aarch64-w64-cygwinset ASSEMBLER=-marm64set SRC_ARCHITECTURE=aarch64)if NOT DEFINED LIBFFI_OUT set LIBFFI_OUT=%~dp0\..\externals\libffiset _LIBFFI_OUT=%LIBFFI_OUT%\%ARCH%echo get VS build environmentcall %VCVARSALL% %VCVARS_PLATFORM%echo clean %_LIBFFI_OUT%if exist %_LIBFFI_OUT% (rd %_LIBFFI_OUT% /s/q)echo ================================================================echo Configure the build to generate fficonfig.h and ffi.hecho ================================================================%SH% -lc "(cd $OLDPWD; ./configure CC='%MSVCC%%ASSEMBLER%%BUILD_PDB%' CXX='%MSVCC%%ASSEMBLER%%BUILD_PDB%' LD='link' CPP='cl -nologo -EP' CXXCPP='cl -nologo -EP' CPPFLAGS='-DFFI_BUILDING_DLL' %BUILD_NOOPT% NM='dumpbin -symbols' STRIP=':' --build=$BUILD --host=$HOST;)"if errorlevel 1 exit /B %ERRORLEVEL%echo ================================================================echo Building libffiecho ================================================================%SH% -lc "(cd $OLDPWD; export PATH=/usr/bin:$PATH; cp src/%SRC_ARCHITECTURE%/ffitarget.h include; make; find .;)"if errorlevel 1 exit /B %ERRORLEVEL%REM Tests are not needed to produce artifactsif "%LIBFFI_TEST%" EQU "1" (echo "Running tests..."%SH% -lc "(cd $OLDPWD; export PATH=/usr/bin:$PATH; cp `find $PWD -name 'libffi-?.dll'` $HOST/testsuite/; make check; cat `find ./ -name libffi.log`)") else (echo "Not running tests")echo copying files to %_LIBFFI_OUT%if not exist %_LIBFFI_OUT%\include (md %_LIBFFI_OUT%\include)copy %ARTIFACTS%\.libs\libffi-7.dll %_LIBFFI_OUT%copy %ARTIFACTS%\.libs\libffi-7.lib %_LIBFFI_OUT%copy %ARTIFACTS%\.libs\libffi-7.pdb %_LIBFFI_OUT%copy %ARTIFACTS%\fficonfig.h %_LIBFFI_OUT%\includecopy %ARTIFACTS%\include\*.h %_LIBFFI_OUT%\includeendlocalexit /b:InstallCygwinsetlocalif NOT DEFINED CYG_ROOT (set CYG_ROOT=c:/cygwin)if NOT DEFINED CYG_CACHE (set CYG_CACHE=C:/cygwin/var/cache/setup)if NOT DEFINED CYG_MIRROR (set CYG_MIRROR=http://mirrors.kernel.org/sourceware/cygwin/)powershell -c "md $env:CYG_ROOT -ErrorAction SilentlyContinue"powershell -c "$setup = $env:CYG_ROOT+'/setup.exe'; if (!(Test-Path $setup)){invoke-webrequest https://cygwin.com/setup-x86.exe -outfile $setup}%CYG_ROOT%/setup.exe -qnNdO -R "%CYG_ROOT%" -s "%CYG_MIRROR%" -l "%CYG_CACHE%" -P make -P autoconf -P automake -P libtool -P dejagnuendlocalexit /b
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。