1@echo off
2
3setlocal
4
5set TARGET_PREFIX=%~dp0dist\lib\llio
6set I386_ARCHID=i386
7set AMD64_ARCHID=amd64
8set IA64_ARCHID=ia64
9set SOURCE_DIR=%~dp0src\win32\llio
10set SOURCE_FILES="%SOURCE_DIR%\llio_common.c" "%SOURCE_DIR%\org_catacombae_storage_io_win32_ReadableWin32FileStream.c" "%SOURCE_DIR%\org_catacombae_storage_io_win32_Win32FileStream.c"
11
12:start
13
14if "%1"=="gcc" goto build_gcc
15if "%1"=="vc" goto build_vc
16
17goto printusage
18
19:printusage
20echo usage: %0 gcc
21echo OR
22echo usage: %0 vc [x86^|x64^|ia64]
23goto end
24
25:build_gcc
26echo Compiling with gcc...
27set TARGET_DLL=%TARGET_PREFIX%_%I386_ARCHID%.dll
28gcc -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -shared %SOURCE_FILES% -o "%TARGET_DLL%"
29if not "%ERRORLEVEL%"=="0" goto error
30goto completed
31
32
33:build_vc
34if "%2"=="x86" goto setvars_x86
35if "%2"=="x64" goto setvars_x64
36if "%2"=="ia64" goto setvars_ia64
37goto printusage
38
39:setvars_x86
40if "%VS90COMNTOOLS%"=="" echo Can not find Visual Studio 9 (environment variable VS90COMNTOOLS)! & goto error
41pushd "%VS90COMNTOOLS%\..\..\VC"
42call vcvarsall.bat x86
43popd
44set TARGET_DLL=%TARGET_PREFIX%_%I386_ARCHID%.dll
45goto compile_vc
46
47:setvars_x64
48if "%VS90COMNTOOLS%"=="" echo Can not find Visual Studio 9 (environment variable VS90COMNTOOLS)! & goto error
49pushd "%VS90COMNTOOLS%\..\..\VC"
50call vcvarsall.bat x86_amd64
51popd
52set TARGET_DLL=%TARGET_PREFIX%_%AMD64_ARCHID%.dll
53goto compile_vc
54
55:setvars_ia64
56if "%VS90COMNTOOLS%"=="" echo Can not find Visual Studio 9 (environment variable VS90COMNTOOLS)! & goto error
57pushd "%VS90COMNTOOLS%\..\..\VC"
58call vcvarsall.bat x86_ia64
59popd
60set TARGET_DLL=%TARGET_PREFIX%_%IA64_ARCHID%.dll
61goto compile_vc
62
63:compile_vc
64
65if "%JAVA_HOME%"=="" echo JAVA_HOME environment variable not defined! & goto error
66set JDK_PATH=%JAVA_HOME%
67set BUILD_DIR=%~dp0build.~
68
69echo Cleaning build dir...
70if exist "%BUILD_DIR%" rmdir /s /q "%BUILD_DIR%"
71if exist "%BUILD_DIR%" echo Could not clean build dir! & goto error
72mkdir "%BUILD_DIR%"
73if not "%ERRORLEVEL%"=="0" goto error
74
75echo Compiling with Visual C++...
76cl -c "/Fo%BUILD_DIR%\\" /W3 "/I%JDK_PATH%\include" "/I%JDK_PATH%\include\win32" "%SOURCE_DIR%\*.c"
77set EXIT_CODE=%ERRORLEVEL%
78if not "%EXIT_CODE%"=="0" goto error
79
80echo Linking...
81REM "/libpath:%JDK_PATH%\lib"
82link /dll "/out:%TARGET_DLL%" "/implib:%BUILD_DIR%\llio.lib" "/pdb:%BUILD_DIR%\llio.pdb" "%BUILD_DIR%\*.obj"
83set EXIT_CODE=%ERRORLEVEL%
84if not "%EXIT_CODE%"=="0" goto error
85goto completed
86
87:completed
88echo Target .dll generated at %TARGET_DLL%
89echo Done!
90goto end
91
92:error
93echo There were errors...
94goto end
95
96:end
97
98endlocal
99