mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
You should add two libraries into your server binaries: tbb.so/tbbmalloc.so on *nix and tbb(_debug).dll/tbbmalloc(_debug).dll on Windows!!! Define USE_STANDARD_MALLOC while compiling 'framework' project to use OS' default memory allocator! Signed-off-by: Ambal <pogrebniak@gala.net>
129 lines
3.9 KiB
JavaScript
129 lines
3.9 KiB
JavaScript
// Copyright 2005-2009 Intel Corporation. All Rights Reserved.
|
|
//
|
|
// This file is part of Threading Building Blocks.
|
|
//
|
|
// Threading Building Blocks is free software; you can redistribute it
|
|
// and/or modify it under the terms of the GNU General Public License
|
|
// version 2 as published by the Free Software Foundation.
|
|
//
|
|
// Threading Building Blocks is distributed in the hope that it will be
|
|
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
|
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Threading Building Blocks; if not, write to the Free Software
|
|
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
//
|
|
// As a special exception, you may use this file as part of a free software
|
|
// library without restriction. Specifically, if other files instantiate
|
|
// templates or use macros or inline functions from this file, or you compile
|
|
// this file and link it with other files to produce an executable, this
|
|
// file does not by itself cause the resulting executable to be covered by
|
|
// the GNU General Public License. This exception does not however
|
|
// invalidate any other reasons why the executable file might be covered by
|
|
// the GNU General Public License.
|
|
|
|
function doWork() {
|
|
var WshShell = WScript.CreateObject("WScript.Shell");
|
|
|
|
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
|
|
|
var tmpExec;
|
|
|
|
if ( WScript.Arguments.Count() > 1 && WScript.Arguments(1) == "gcc" ) {
|
|
if ( WScript.Arguments(0) == "/arch" ) {
|
|
WScript.Echo( "ia32" );
|
|
}
|
|
else if ( WScript.Arguments(0) == "/runtime" ) {
|
|
WScript.Echo( "mingw" );
|
|
}
|
|
return;
|
|
}
|
|
|
|
//Compile binary
|
|
tmpExec = WshShell.Exec("cmd /c echo int main(){return 0;} >detect.c");
|
|
while ( tmpExec.Status == 0 ) {
|
|
WScript.Sleep(100);
|
|
}
|
|
|
|
tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
|
|
while ( tmpExec.Status == 0 ) {
|
|
WScript.Sleep(100);
|
|
}
|
|
|
|
if ( WScript.Arguments(0) == "/arch" ) {
|
|
//read compiler banner
|
|
var clVersion = tmpExec.StdErr.ReadAll();
|
|
|
|
//detect target architecture
|
|
var intel64=/AMD64|EM64T|x64/mgi;
|
|
var ia64=/IA-64|Itanium/mgi;
|
|
var ia32=/80x86/mgi;
|
|
if ( clVersion.match(intel64) ) {
|
|
WScript.Echo( "intel64" );
|
|
} else if ( clVersion.match(ia64) ) {
|
|
WScript.Echo( "ia64" );
|
|
} else if ( clVersion.match(ia32) ) {
|
|
WScript.Echo( "ia32" );
|
|
} else {
|
|
WScript.Echo( "unknown" );
|
|
}
|
|
}
|
|
|
|
if ( WScript.Arguments(0) == "/runtime" ) {
|
|
//read map-file
|
|
var map = fso.OpenTextFile("detect.map", 1, 0);
|
|
var mapContext = map.readAll();
|
|
map.Close();
|
|
|
|
//detect runtime
|
|
var vc71=/MSVCR71\.DLL/mgi;
|
|
var vc80=/MSVCR80\.DLL/mgi;
|
|
var vc90=/MSVCR90\.DLL/mgi;
|
|
var vc100=/MSVCR100\.DLL/mgi;
|
|
var psdk=/MSVCRT\.DLL/mgi;
|
|
if ( mapContext.match(vc71) ) {
|
|
WScript.Echo( "vc7.1" );
|
|
} else if ( mapContext.match(vc80) ) {
|
|
WScript.Echo( "vc8" );
|
|
} else if ( mapContext.match(vc90) ) {
|
|
WScript.Echo( "vc9" );
|
|
} else if ( mapContext.match(vc100) ) {
|
|
WScript.Echo( "vc10" );
|
|
} else if ( mapContext.match(psdk) ) {
|
|
// Our current naming convention assumes vc7.1 for 64-bit Windows PSDK
|
|
WScript.Echo( "vc7.1" );
|
|
} else {
|
|
WScript.Echo( "unknown" );
|
|
}
|
|
}
|
|
|
|
// delete intermediate files
|
|
if ( fso.FileExists("detect.c") )
|
|
fso.DeleteFile ("detect.c", false);
|
|
if ( fso.FileExists("detect.obj") )
|
|
fso.DeleteFile ("detect.obj", false);
|
|
if ( fso.FileExists("detect.map") )
|
|
fso.DeleteFile ("detect.map", false);
|
|
if ( fso.FileExists("detect.exe") )
|
|
fso.DeleteFile ("detect.exe", false);
|
|
if ( fso.FileExists("detect.exe.manifest") )
|
|
fso.DeleteFile ("detect.exe.manifest", false);
|
|
}
|
|
|
|
if ( WScript.Arguments.Count() > 0 ) {
|
|
|
|
try {
|
|
doWork();
|
|
} catch( error )
|
|
{
|
|
WScript.Echo( "unknown" );
|
|
WScript.Quit( 0 );
|
|
}
|
|
|
|
} else {
|
|
|
|
WScript.Echo( "/arch or /runtime should be set" );
|
|
}
|
|
|