echo off echo. echo. echo ********************************************* echo ** Generating Radioss Dynamic User Library ** echo ********************************************* echo. REM ------------------------------- REM Checking command line arguments REM ------------------------------- set starter="none" set engine="none" set library="none" set outfile="none" set addflag=" " set free="no" set freeflag="" set libname=libraduser_win64.dll IF (%1) == () GOTO ERROR :ARG_LOOP IF (%1) == () GOTO END_ARG_LOOP if %1==/STARTER ( set starter=%2 ) if %1==/ENGINE ( set engine=%2 ) if %1==/LIBRARY ( set library=%2 ) if %1==/OUTFILE ( set outfile=%2 ) if %1==/ADDFLAG ( set addflag=%2 ) if %1==/FREE ( set free="yes" ) SHIFT GOTO ARG_LOOP :END_ARG_LOOP if %free% == "yes" ( set freeflag=/FREE ) if %outfile% == "none" GOTO START set libname=%outfile% :START set starter=%starter:~1,-1% set engine=%engine:~1,-1% set library=%library:~1,-1% set addflag=%addflag:~1,-1% if EXIST %RAD_USERLIB_SDK_PATH%\%RAD_USERLIB_ARCH%\libraduser_sdk_win64.lib ( echo. echo. echo Preparing Library echo ----------------- echo. echo. mkdir _obj_win64 cd _obj_win64 lib -list %RAD_USERLIB_SDK_PATH%\%RAD_USERLIB_ARCH%\libraduser_sdk_win64.lib | findstr /c:.obj > liblist.txt FOR /f %%f IN ('type liblist.txt') DO LIB /NOLOGO /EXTRACT:%%f %RAD_USERLIB_SDK_PATH%\%RAD_USERLIB_ARCH%\libraduser_sdk_win64.lib ) ELSE ( echo. echo. echo *** ERROR echo. echo %RAD_USERLIB_SDK_PATH%\%RAD_USERLIB_ARCH%\libraduser_sdk_win64.lib echo. echo not fount echo. echo Check environment variables: echo. echo RAD_USERLIB_SDK_PATH echo RAD_USERLIB_ARCH GOTO END ) :LIBRARY if "%library%" == "none" GOTO STARTER echo. echo adding %library% in library echo ----------------------------- echo. FOR %%l IN (%library%) DO ( cd .. echo %%l copy %%l _obj_win64 cd _obj_win64 lib -list %%l | findstr /c:.obj > librarylist.txt FOR /f %%f IN ('type librarylist.txt') DO LIB /NOLOGO /EXTRACT:%%f %%l ) :STARTER if "%starter%" == "none" GOTO ENGINE echo. echo. echo Compiling: %starter% echo ---------- echo. FOR %%f IN (%starter%) DO ( echo %%f ifort /nologo %freeflag% /MODULE:%RAD_USERLIB_SDK_PATH%/%RAD_USERLIB_ARCH% /Qcpp /Qaxsse3 /Qopenmp /O2 /fp:precise /Qftz /extend-source %addflag% -DMYREAL8 -DR8 /c ..\%%f echo. ) :ENGINE if "%engine%" == "none" GOTO :LINK echo. echo. echo Compiling: %engine% echo ---------- echo. FOR %%f IN (%engine%) DO ( echo %%f ifort /nologo %freeflag% /MODULE:%RAD_USERLIB_SDK_PATH%/%RAD_USERLIB_ARCH% /Qcpp /Qaxsse3 /Qopenmp /O3 /fp:precise /Qftz /extend-source %addflag% -DMYREAL8 -DR8 /c ..\%%f echo. ) :LINK echo. echo. echo Creating library: %libname% echo ---------------- echo. cd .. ifort /nologo /DLL /MT -o %libname% _obj_win64/*.obj del /q _obj_win64\*.* rmdir _obj_win64 GOTO :END :ERROR echo build_userlib_win64.bat /STARTER "Starter source files" /ENGINE "Engine Source files " /LIBRARY "additional statical Library" /OUTFILE Library_name [Optional Argument] echo echo [Optional Argument] echo /FREE : Source code is in Fortran 90 Free Format echo /ADDFLAG "Additional compiler Flags" : Additional compiler flags to set echo :END echo. echo Done echo ---- echo. echo.