root/main/trunk/greenstone2/setup.bat @ 32221

Revision 32209, 11.7 KB (checked in by ak19, 17 months ago)

Commented out the BITNESS env var for Windows introduced in the previous commit and not using it in gsConvert.pl since Win can use XPdf's bin32 version of pdftohtml on 64 bit machines too. The lines determining and setting the BITNESS env var in gs2build\setup.bat are only commented out since setting BITNESS on Win may be useful in the future and we don't want to reinvent the wheel

Line 
1@echo off
2
3setlocal enabledelayedexpansion
4
5pushd "%CD%"
6CD /D "%~dp0"
7set GSDLLANG=en
8
9echo.
10echo.
11echo  ####                        #
12echo ##                           #
13echo #     ###  ##   ##  ### ### ###  ##  ###  ##
14echo #   # #   #### #### # # ##   #  #  # # # ####
15echo ##  # #   #    #    # #   #  #  #  # # # #
16echo  #### #    ###  ### # # ###  ##  ##  # #  ###
17echo (C) 2008, New Zealand Digital Library Project
18echo.
19echo.
20echo.
21
22if "!GSDLHOME!" == "" goto start
23if "!GSDLHOME!" == "!CD!" if not "!GSDLOS!" == "" (
24    echo Your environment is already set up for Greenstone
25    goto done
26)
27
28:start
29if "!OS!" == "Windows_NT" goto WinNT
30if "!OS!" == "" goto Win95
31if "!GSDLLANG!" == "en" echo Setup failed - your PATH has not been set
32if "!GSDLLANG!" == "es" echo No se pudo realizar la configuraci¢n - no se ha establecido la RUTA.
33if "!GSDLLANG!" == "fr" echo Ech‚c de l'installation - votre variable PATH n'a pas ‚t‚ ajust‚e
34if "!GSDLLANG!" == "ru" echo “áâ ­®¢ª  ­¥ 〠« áì - “’œ ­¥ ¡ë« ãáâ ­®¢«¥­
35goto End
36
37:WinNT
38set GSDLHOME=%CD%
39set GSDLOS=windows
40
41REM Override Imagemagick and Ghostscript paths to the bundled applications shipped with greenstone if they exists otherwise use default environment variables.
42if exist "!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll" set GS_DLL=!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll
43if exist "!GSDLHOME!\bin\windows\ghostscript\lib\*.*" set GS_LIB=!GSDLHOME!\bin\windows\ghostscript\lib
44if exist "!GSDLHOME!\bin\windows\ghostscript\bin\*.*" set PATH=!GSDLHOME!\bin\windows\ghostscript\bin;!PATH!
45:: ImageMagick environment vars are now set in bin\script\gs-magick.pl
46::if exist "!GSDLHOME!\bin\windows\imagemagick\*.*" set PATH=!GSDLHOME!\bin\windows\imagemagick;!PATH!
47
48if "!GS_CP_SET!" == "yes" goto Success
49set PATH=!GSDLHOME!\bin\windows;!GSDLHOME!\bin\script;!PATH!
50if exist "!GSDLHOME!\bin\windows\perl\bin" (
51    set PERLPATH=!GSDLHOME!\bin\windows\perl\bin
52    set PATH=!PERLPATH!;!PATH! 
53)
54
55set GS_CP_SET=yes
56goto Success
57
58:Win95
59if "%1" == "SetEnv" goto Win95Env
60REM We'll invoke a second copy of the command processor to make
61REM sure there's enough environment space
62COMMAND /E:2048 /K %0 SetEnv
63goto End
64
65:Win95Env
66set GSDLHOME=%CD%
67set GSDLOS=windows
68
69REM Override Imagemagick and Ghostscript paths to the bundled applications shipped with greenstone if they exists otherwise use default environment variables.
70if exist "!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll" set GS_DLL="!GSDLHOME!\bin\windows\ghostscript\bin\gsdll32.dll"
71if exist "!GSDLHOME!\bin\windows\ghostscript\lib\*.*" set GS_LIB="!GSDLHOME!\bin\windows\ghostscript\lib"
72if exist "!GSDLHOME!\bin\windows\ghostscript\bin\*.*" set PATH="!GSDLHOME!\bin\windows\ghostscript\bin";"!PATH!"
73:: ImageMagick environment vars are now set in bin\script\gs-magick.pl
74::if exist "!GSDLHOME!\bin\windows\imagemagick\*.*" set PATH="!GSDLHOME!\bin\windows\imagemagick";"!PATH!"
75
76if "!GS_CP_SET!" == "yes" goto Success
77set PATH=!GSDLHOME!\bin\windows;!GSDLHOME!\bin\script;!PATH!
78if exist "!GSDLHOME!\bin\windows\perl\bin" (
79    set PERLPATH=!GSDLHOME!\bin\windows\perl\bin
80    set PATH=!PERLPATH!;!PATH!
81)
82set GS_CP_SET=yes
83goto Success
84
85
86:Success
87if "!GSDLLANG!" == "en" echo.
88if "!GSDLLANG!" == "en" echo Your environment has successfully been set up to run Greenstone.
89if "!GSDLLANG!" == "en" echo Note that these settings will only have effect within this MS-DOS
90if "!GSDLLANG!" == "en" echo session. You will therefore need to rerun setup.bat if you want
91if "!GSDLLANG!" == "en" echo to run Greenstone programs from a different MS-DOS session.
92if "!GSDLLANG!" == "en" echo.
93
94if "!GSDLLANG!" == "es" echo.
95if "!GSDLLANG!" == "es" echo Su ambiente ha sido configurado para correr los programas Greenstone.
96if "!GSDLLANG!" == "es" echo Recuerde que estos ajustes £nicamente tendr n efecto dentro de esta sesi¢n
97if "!GSDLLANG!" == "es" echo MS-DOS. Por lo tanto deber  ejecutar nuevamente setup.bat si desea
98if "!GSDLLANG!" == "es" echo correr los programas de Greenstone desde una sesi¢n MS-DOS diferente.
99if "!GSDLLANG!" == "es" echo.
100
101if "!GSDLLANG!" == "fr" echo.
102if "!GSDLLANG!" == "fr" echo Votre environnement a ‚t‚ configu‚re avec succŠs pour ex‚cuter Greenstone
103if "!GSDLLANG!" == "fr" echo Notez que ces paramŠtrages n'auront d'effet que dans cette session MS-DOS.
104if "!GSDLLANG!" == "fr" echo Vous devrez par cons‚quent r‚ex‚cuter setup.bat si vous voulez faire
105if "!GSDLLANG!" == "fr" echo lancer des programmes Greenstone dans une autre session MS-DOS.
106if "!GSDLLANG!" == "fr" echo.
107
108if "!GSDLLANG!" == "ru" echo.
109if "!GSDLLANG!" == "ru" echo ‚ è¥ ®ªà㊥­š¥ ¡ë«® ãᯥ譮 ­ áâ஥­®, ç⮡ë ãáâ ­®¢šâì Greenstone Ž¡à âšâ¥
110if "!GSDLLANG!" == "ru" echo ¢­š¬ ­š¥, çâ® íâš ­ §­ ç¥­šï ¡ã€ãâ ⮫쪮 š¬¥âì íä䥪⠢ ¯à¥€¥« å í⮣® MS DOS
111if "!GSDLLANG!" == "ru" echo á¥áášï. ‚ë ¡ã€¥â¥ ¯®í⮬㠀®«Š­ë ¯®¢â®à­® ã¯à ¢«ïâì setup.bat, ¥á«š ‚ë å®âšâ¥
112if "!GSDLLANG!" == "ru" echo ã¯à ¢«ïâì ¯à®£à ¬¬ ¬š ‡¥«ñ­ëå š§¢¥àŠ¥­­ëå ¯®à®€ ®â à §«šç­®© á¥áášš MS DOS.
113if "!GSDLLANG!" == "ru" echo.
114
115:End
116endlocal & set PATH=%PATH%& set GSDLHOME=%GSDLHOME%& set GSDLOS=%GSDLOS%
117
118set savedir=%CD%
119cd "%GSDLHOME%"
120if exist ext ( 
121    for /D %%e IN ("ext/*") do call :addexts %%e
122)
123cd "%savedir%"
124set savedir=
125goto :doneexts
126
127:addexts
128set folder=%1
129cd "ext\%folder%"       
130if EXIST setup.bat call setup.bat
131cd ..\..
132goto :eof
133
134:doneexts
135
136
137if exist "%GSDLHOME%\local\setup.bat" (
138    echo.
139    echo Running %GSDLHOME%\local\setup.bat
140    cd "%GSDLHOME%\local"
141    call setup.bat
142    cd "%GSDLHOME%"
143)
144
145setlocal enabledelayedexpansion
146
147if exist "%GSDLHOME%\local" (
148  set PATH=!GSDLHOME!\local\bin;!PATH!
149)
150
151if exist "%GSDLHOME%\apache-httpd" (
152  echo +Adding in executable path for apache-httpd
153  set PATH=!GSDLHOME!\apache-httpd\!GSDLOS!\bin;!PATH!
154  set PATH=!GSDLHOME!\apache-httpd\!GSDLOS!\lib;!PATH!
155)
156
157:: test writability of GSDLHOME
158@call "!GSDLHOME!\bin\script\checkwritability.bat"
159
160::::::::::::::::::::::::::::::
161if "!GSDL3SRCHOME!" == "" (goto javacheck) else (goto done)
162
163:javacheck
164:: Only for GS2: work out java, and if the bundled jre is found, then set Java env vars with it
165:: Then the same java will be consistently available for all aspects of GS2 (server or GLI, and any subshells these launch)
166echo.
167set MINIMUM_JAVA_VERSION=1.5.0_00
168echo GS2 installation: Checking for Java of version !MINIMUM_JAVA_VERSION! or above
169
170set BUNDLED_JRE=!GSDLHOME!\packages\jre
171if exist "!BUNDLED_JRE!" (
172    set HINT=!BUNDLED_JRE!
173) else (
174    echo No bundled JRE
175    set HINT=
176)
177
178set SEARCH4J_EXECUTABLE=!GSDLHOME!\bin\!GSDLOS!\search4j.exe
179if not exist "!SEARCH4J_EXECUTABLE!" (
180    echo Can't check for java, no Search4j 
181    if not exist "!BUNDLED_JRE!" echo Ensure Java environment variables are set ^(either JAVA_HOME or JRE_HOME and on PATH^) & goto done
182    :: else use Bundled JRE
183    echo Will use the bundled JRE and unset any JAVA_HOME to prevent conflicts
184    set JAVA_HOME=
185    set JRE_HOME=!BUNDLED_JRE!
186    set PATH=!BUNDLED_JRE!\bin;!PATH!
187    goto done
188)
189
190:: Need the call stmt, the usebackq with backticks around the full command, AND the double quotes around filepaths to properly handle spaces in the filepaths
191for /f "usebackq tokens=*" %%r in (`call "!GSDLHOME!\bin\!GSDLOS!\search4j.exe" -p "!HINT!" -m !MINIMUM_JAVA_VERSION!`) do set GS_JAVA_HOME=%%r
192
193
194if "!GS_JAVA_HOME!" == "" (
195    if not exist "!BUNDLED_JRE!" echo There's no bundled JRE.
196    echo setup.bat: Could not find Java in the environment or installation.
197    echo Set JAVA_HOME or JRE_HOME, and put it on the PATH, if working with Java tools like Lucene.
198    goto done
199)
200
201:: found java, now GS_JAVA_HOME env vars set, set JAVA_HOME else JRE_HOME
202
203if "!GS_JAVA_HOME!" == "!BUNDLED_JRE!" (   
204    :: since our bundled JRE was selected by search4j and we'll be using that, clearing any existing JAVA_HOME to prevent version conflicts
205    echo Found a bundled JRE. Setting up GS2's Java environment to use this ^(and unsetting any JAVA_HOME to prevent version conflicts^)
206    set JAVA_HOME=
207    set JRE_HOME=!BUNDLED_JRE!
208    set PATH=!BUNDLED_JRE!\bin;!PATH!
209    goto done
210)
211
212:: Otherwise, the java that search4j found is not the bundled jre. In that case
213:: if JAVA_HOME or JRE_HOME is already set to the Java found, then PATH presumably would already be set too.
214if "!JAVA_HOME!" == "!GS_JAVA_HOME!" (
215    echo Looks like the Java environment is already set up with a JAVA_HOME
216    ::echo Looks like the Java environment is already set up with a JAVA_HOME, unsetting any JRE_HOME   
217    goto done
218)
219if "!JRE_HOME!" == "!GS_JAVA_HOME!" (
220    echo Looks like the Java environment is already set up with a JRE_HOME, unsetting any JAVA_HOME to prevent java version conflicts
221    set JAVA_HOME=
222    goto done
223)
224
225:: if Java env vars not already set, then set them to the GS_JAVA_HOME found
226echo Found a Java on the system. Setting up GS2's Java environment to use this
227::echo Found a Java on the system. Setting up GS2's Java environment to use this: !GS_JAVA_HOME!
228set PATH=!GS_JAVA_HOME!\bin;!PATH!
229:: extract the last 4 chars from folder name. Could be \jre or jre\ or otherwise
230set javafoldername=!GS_JAVA_HOME:~-4!
231:: now can test if the foldername contains jre or otherwise, and based on that set either JAVA_HOME or JRE_HOME
232:: https://stackoverflow.com/questions/7005951/batch-file-find-if-substring-is-in-string-not-in-a-file
233:: https://ss64.com/nt/syntax-substring.html
234if /i "x!javafoldername:jre=!" == "x!javafoldername!" (
235    echo Setting JAVA_HOME, and unsetting any JRE_HOME to prevent version conflicts
236    set JAVA_HOME=!GS_JAVA_HOME!
237    set JRE_HOME=
238) else (
239    echo Setting JRE_HOME, and unsetting any JAVA_HOME to prevent version conflicts
240    set JRE_HOME=!GS_JAVA_HOME!
241    set JAVA_HOME=
242)
243
244::::::::::::::::::::::::::::::
245
246:done
247
248:: COMMENTING OUT THE 2 LINES DETERMINING AND SETTING THE BITNESS (32/64) ON WIN MACHINES
249:: AS IT MAY BE USEFUL IN FUTURE AND IT TOOK ME SOME TIME TO GET THESE LINES WORKING RIGHT
250:: To know bitness (32 vs 64) of a Windows machine, the cmd is "SET Processor"
251::   and look through the lines of output for the line PROCESSOR_ARCHITECTURE=x86
252::   or PROCESSOR_ARCHITECTURE=x64. See techgenix.com/aquicktiptocheckoperatingsystemarchitecture/
253:: The following runs the cmd "set Processor". Then, among the multiline output, it finds the line
254::   containing "PROCESSOR_ARCHITECTURE", splits this line on the delimiter "=" and stores the 2nd token in %%G
255::   Based on the example "_ping_cmd" at https://ss64.com/nt/for_cmd.html
256REM for /f "tokens=2 delims==" %%G in ('set Processor ^|find "PROCESSOR_ARCHITECTURE"') do set BITNESS=%%G
257::   BITNESS will now be "x86" for 32 bit or something like "amd64" or "x64" for 64 bit
258:: From https://ss64.com/nt/syntax-substring.html
259::   "To do a string comparison, remove the SearchString and compare the result with the original
260::   variable before removal. If both strings are the same, then SearchString was not found:"
261REM if /i "%BITNESS:64=%" == "%BITNESS%" (set BITNESS=32) else (set BITNESS=64)
262
263popd
264endlocal & set PATH=%PATH%& set GSDLHOME=%GSDLHOME%& set GSDLOS=%GSDLOS%& set JRE_HOME=%JRE_HOME%& set JAVA_HOME=%JAVA_HOME%
265REM      & set BITNESS=%BITNESS%
266
267if not "%JAVA_HOME%" == "" echo JAVA_HOME: %JAVA_HOME%
268if not "%JRE_HOME%" == "" echo JRE_HOME: %JRE_HOME%
269if "%JAVA_HOME%" == "" if "%JRE_HOME%" == "" echo Warning: Neither JAVA_HOME nor JRE_HOME set. Ensure one is set and on PATH.
270
271:: Perl >= v5.18.* randomises map iteration order within a process
272set PERL_PERTURB_KEYS=0
273
274:: The user can customise wget flags like number of retries and setting timeouts in the Wgetrc file.
275:: The WGETRC environment variable is used by wget to find a user wgetrc file overriding any system level one
276:: https://www.gnu.org/software/wget/manual/html_node/Wgetrc-Location.html
277set WGETRC=%GSDLHOME%/bin/%GSDLOS%/wgetrc
Note: See TracBrowser for help on using the browser.