diff options
Diffstat (limited to 'build')
-rw-r--r-- | build/ac-macros/java.m4 | 2 | ||||
-rw-r--r-- | build/ac-macros/swig.m4 | 5 | ||||
-rw-r--r-- | build/generator/gen_base.py | 115 | ||||
-rw-r--r-- | build/generator/gen_make.py | 2 | ||||
-rw-r--r-- | build/generator/gen_win.py | 47 | ||||
-rw-r--r-- | build/generator/gen_win_dependencies.py | 10 | ||||
-rw-r--r-- | build/generator/templates/build-outputs.mk.ezt | 10 | ||||
-rw-r--r-- | build/generator/templates/vcnet_vcxproj.ezt | 1 | ||||
-rwxr-xr-x | build/transform_libtool_scripts.sh | 1 | ||||
-rwxr-xr-x | build/transform_sql.py | 2 | ||||
-rw-r--r-- | build/win32/vc6-build.bat.in | 176 |
11 files changed, 70 insertions, 301 deletions
diff --git a/build/ac-macros/java.m4 b/build/ac-macros/java.m4 index d8a7a36..928a9a3 100644 --- a/build/ac-macros/java.m4 +++ b/build/ac-macros/java.m4 @@ -166,7 +166,7 @@ AC_DEFUN(SVN_FIND_JDK, # The release for "-source" could actually be greater than that # of "-target", if we want to cross-compile for lesser JVMs. if test -z "$JAVAC_FLAGS"; then - JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6" + JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8" if test "$enable_debugging" = "yes"; then JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS" if test -z "$JAVAC_COMPAT_FLAGS"; then diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4 index 8119d65..55501fb 100644 --- a/build/ac-macros/swig.m4 +++ b/build/ac-macros/swig.m4 @@ -183,6 +183,11 @@ AC_DEFUN(SVN_FIND_SWIG, SWIG_RB_COMPILE="none" SWIG_RB_LINK="none" if test "$RUBY" != "none"; then + if test x"$SWIG_VERSION" = x"3""00""008"; then + # Use a local variable to escape the '#' sign. + ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602' + AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602]) + fi rbconfig="$RUBY -rrbconfig -e " for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \ diff --git a/build/generator/gen_base.py b/build/generator/gen_base.py index f7a75da..e4ed243 100644 --- a/build/generator/gen_base.py +++ b/build/generator/gen_base.py @@ -900,115 +900,67 @@ class TargetJava(TargetLinked): def __init__(self, name, options, gen_obj): TargetLinked.__init__(self, name, options, gen_obj) self.link_cmd = options.get('link-cmd') - self.packages = options.get('package-roots', '').split() + self.package = options.get('package') self.jar = options.get('jar') self.deps = [ ] - -class TargetJavaHeaders(TargetJava): - def __init__(self, name, options, gen_obj): - TargetJava.__init__(self, name, options, gen_obj) self.objext = '.class' - self.javah_objext = '.h' self.headers = options.get('headers') self.classes = options.get('classes') - self.package = options.get('package') - self.output_dir = self.headers + self.native = options.get('native', '') + self.output_dir = self.classes + self.headers_dir = self.headers def add_dependencies(self): sources = _collect_paths(self.sources, self.path) + native = _collect_paths(self.native, self.path) + + class_pkg_list = self.package.split('.') + sourcepath = build_path_split(self.path)[:-len(class_pkg_list)] + sourcepath = build_path_join(*sourcepath) for src, reldir in sources: if src[-5:] != '.java': raise GenError('ERROR: unknown file extension on ' + src) + sfile = SourceFile(src, reldir) + sfile.sourcepath = sourcepath + class_name = build_path_basename(src[:-5]) - class_header = build_path_join(self.headers, class_name + '.h') - class_header_win = build_path_join(self.headers, - self.package.replace(".", "_") - + "_" + class_name + '.h') - class_pkg_list = self.package.split('.') class_pkg = build_path_join(*class_pkg_list) class_file = ObjectFile(build_path_join(self.classes, class_pkg, class_name + self.objext), - self.when) + self.compile_cmd, self.when) class_file.source_generated = 1 class_file.class_name = class_name - hfile = HeaderFile(class_header, self.package + '.' + class_name, - self.compile_cmd) - hfile.filename_win = class_header_win - hfile.source_generated = 1 - self.gen_obj.graph.add(DT_OBJECT, hfile, class_file) - self.deps.append(hfile) - - # target (a linked item) depends upon object - self.gen_obj.graph.add(DT_LINK, self.name, hfile) - - - # collect all the paths where stuff might get built - ### we should collect this from the dependency nodes rather than - ### the sources. "what dir are you going to put yourself into?" - self.gen_obj.target_dirs.append(self.path) - self.gen_obj.target_dirs.append(self.classes) - self.gen_obj.target_dirs.append(self.headers) - for pattern in self.sources.split(): - dirname = build_path_dirname(pattern) - if dirname: - self.gen_obj.target_dirs.append(build_path_join(self.path, dirname)) - - self.gen_obj.graph.add(DT_INSTALL, self.name, self) - -class TargetJavaClasses(TargetJava): - def __init__(self, name, options, gen_obj): - TargetJava.__init__(self, name, options, gen_obj) - self.objext = '.class' - self.lang = 'java' - self.classes = options.get('classes') - self.output_dir = self.classes - - def add_dependencies(self): - sources = [] - for p in self.path.split(): - sources.extend(_collect_paths(self.sources, p)) - for src, reldir in sources: - if src[-5:] == '.java': - objname = src[:-5] + self.objext - - # As .class files are likely not generated into the same - # directory as the source files, the object path may need - # adjustment. To this effect, take "target_ob.classes" into - # account. - dirs = build_path_split(objname) - sourcedirs = dirs[:-1] # Last element is the .class file name. - while sourcedirs: - if sourcedirs.pop() in self.packages: - sourcepath = build_path_join(*sourcedirs) - objname = build_path_join(self.classes, *dirs[len(sourcedirs):]) - break - else: - raise GenError('Unable to find Java package root in path "%s"' % objname) - else: - raise GenError('ERROR: unknown file extension on "' + src + '"') - - ofile = ObjectFile(objname, self.compile_cmd, self.when) - sfile = SourceFile(src, reldir) - sfile.sourcepath = sourcepath + self.gen_obj.graph.add(DT_OBJECT, class_file, sfile) + self.gen_obj.graph.add(DT_LINK, self.name, class_file) + self.deps.append(class_file) - # object depends upon source - self.gen_obj.graph.add(DT_OBJECT, ofile, sfile) + if (src, reldir) in native: + class_header = build_path_join(self.headers, class_name + '.h') + class_header_win = build_path_join(self.headers, + self.package.replace(".", "_") + + "_" + class_name + '.h') + hfile = HeaderFile(class_header, self.package + '.' + class_name, + self.compile_cmd) + hfile.filename_win = class_header_win + hfile.source_generated = 1 + self.gen_obj.graph.add(DT_OBJECT, hfile, sfile) + self.deps.append(hfile) - # target (a linked item) depends upon object - self.gen_obj.graph.add(DT_LINK, self.name, ofile) + # target (a linked item) depends upon object + self.gen_obj.graph.add(DT_LINK, self.name, hfile) - # Add the class file to the dependency tree for this target - self.deps.append(ofile) # collect all the paths where stuff might get built ### we should collect this from the dependency nodes rather than ### the sources. "what dir are you going to put yourself into?" - self.gen_obj.target_dirs.extend(self.path.split()) + self.gen_obj.target_dirs.append(self.path) self.gen_obj.target_dirs.append(self.classes) + if self.headers: + self.gen_obj.target_dirs.append(self.headers) for pattern in self.sources.split(): dirname = build_path_dirname(pattern) if dirname: @@ -1057,8 +1009,7 @@ _build_types = { 'apache-mod': TargetApacheMod, 'shared-only-lib': TargetSharedOnlyLib, 'shared-only-cxx-lib': TargetSharedOnlyCxxLib, - 'javah' : TargetJavaHeaders, - 'java' : TargetJavaClasses, + 'java' : TargetJava, 'i18n' : TargetI18N, 'sql-header' : TargetSQLHeader, } diff --git a/build/generator/gen_make.py b/build/generator/gen_make.py index df9677c..e1790b9 100644 --- a/build/generator/gen_make.py +++ b/build/generator/gen_make.py @@ -309,6 +309,8 @@ class Generator(gen_base.GeneratorBase): ezt_target.link_cmd = target_ob.link_cmd if hasattr(target_ob, 'output_dir'): ezt_target.output_dir = target_ob.output_dir + if hasattr(target_ob, 'headers_dir'): + ezt_target.headers_dir = target_ob.headers_dir # Add additional install dependencies if necessary if target_ob.add_install_deps: diff --git a/build/generator/gen_win.py b/build/generator/gen_win.py index d2a900c..e2f2fe4 100644 --- a/build/generator/gen_win.py +++ b/build/generator/gen_win.py @@ -217,7 +217,6 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase): if 'java_sdk' not in self._libraries: install_targets = [x for x in install_targets if not (isinstance(x, gen_base.TargetJava) - or isinstance(x, gen_base.TargetJavaHeaders) or x.name == '__JAVAHL__' or x.name == '__JAVAHL_TESTS__' or x.name == 'libsvnjavahl')] @@ -332,11 +331,9 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase): sources = [ ] javac_exe = "javac" - javah_exe = "javah" jar_exe = "jar" if self.jdk_path: javac_exe = os.path.join(self.jdk_path, "bin", javac_exe) - javah_exe = os.path.join(self.jdk_path, "bin", javah_exe) jar_exe = os.path.join(self.jdk_path, "bin", jar_exe) if not isinstance(target, gen_base.TargetProject): @@ -345,25 +342,13 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase): ctarget = None cdesc = None cignore = None - if isinstance(target, gen_base.TargetJavaHeaders): - classes = self.path(target.classes) - if self.junit_path is not None: - classes = "%s;%s" % (classes, self.junit_path) - - headers = self.path(target.headers) - classname = target.package + "." + source.class_name - - cbuild = "%s -verbose -force -classpath %s -d %s %s" \ - % (self.quote(javah_exe), self.quote(classes), - self.quote(headers), classname) - - ctarget = self.path(object.filename_win) - cdesc = "Generating %s" % (object.filename_win) - - elif isinstance(target, gen_base.TargetJavaClasses): + if isinstance(target, gen_base.TargetJava): classes = targetdir = self.path(target.classes) if self.junit_path is not None: classes = "%s;%s" % (classes, self.junit_path) + headers = '' + if target.headers is not None: + headers = '-h %s' % self.quote(self.path(target.headers)) sourcepath = self.path(source.sourcepath) @@ -373,17 +358,21 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase): per_project_flags += "-Xlint:-deprecation -Xlint:-dep-ann" \ " -Xlint:-rawtypes" - cbuild = ("%s -g -Xlint -Xlint:-options " + - per_project_flags + - " -target 1.5 -source 1.5 -classpath " + cbuild = ("%s -g -Xlint -Xlint:-options %s %s " + " -target 1.8 -source 1.8 -classpath " " %s -d %s " " -sourcepath %s $(InputPath)") \ - % tuple(map(self.quote, (javac_exe, classes, - targetdir, sourcepath))) + % (self.quote(javac_exe), per_project_flags, headers, + self.quote(classes), self.quote(targetdir), + self.quote(sourcepath)) - ctarget = self.path(object.filename) - cdesc = "Compiling %s" % (source) + if isinstance(object, gen_base.HeaderFile): + ctarget = self.path(object.filename_win) + cdesc = "Generating %s" % (object.filename_win) + else: + ctarget = self.path(object.filename) + cdesc = "Compiling %s" % (source) rsrc = self.path(str(source)) if quote_path and '-' in rsrc: @@ -403,7 +392,7 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase): custom_desc=cdesc, ignored = cignore, extension=os.path.splitext(rsrc)[1])) - if isinstance(target, gen_base.TargetJavaClasses) and target.jar: + if isinstance(target, gen_base.TargetJava) and target.jar: classdir = self.path(target.classes) jarfile = msvc_path_join(classdir, target.jar) cbuild = "%s cf %s -C %s %s" \ @@ -507,9 +496,7 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase): return name[0] + '.pdb' def get_output_dir(self, target): - if isinstance(target, gen_base.TargetJavaHeaders): - return msvc_path("../" + target.headers) - elif isinstance(target, gen_base.TargetJavaClasses): + if isinstance(target, gen_base.TargetJava): return msvc_path("../" + target.classes) else: return msvc_path(target.path) diff --git a/build/generator/gen_win_dependencies.py b/build/generator/gen_win_dependencies.py index a9ee652..2325ccf 100644 --- a/build/generator/gen_win_dependencies.py +++ b/build/generator/gen_win_dependencies.py @@ -1067,11 +1067,15 @@ class GenDependenciesBase(gen_base.GeneratorBase): return try: - outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javah.exe'), - '-version'], stdout=subprocess.PIPE).stdout + # Apparently a 1.8 javac writes its version output to stderr, while + # a 1.10 javac writes it to stdout. To catch them all, we redirect + # stderr to stdout. + outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javac.exe'), + '-version'], stdout=subprocess.PIPE, + stderr=subprocess.STDOUT).stdout line = outfp.read() if line: - vermatch = re.search(r'"(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)"', line, re.M) + vermatch = re.search(r'(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)', line, re.M) else: vermatch = None diff --git a/build/generator/templates/build-outputs.mk.ezt b/build/generator/templates/build-outputs.mk.ezt index 3677a6d..8e52bdf 100644 --- a/build/generator/templates/build-outputs.mk.ezt +++ b/build/generator/templates/build-outputs.mk.ezt @@ -102,13 +102,9 @@ install-[target.install]: [target.install_deps][end] [target.varname]_OBJECTS = [for target.objects][if-index target.objects first][else] [end][target.objects][end] [target.varname]_DEPS = $([target.varname]_HEADERS) $([target.varname]_OBJECTS)[for target.add_deps] [target.add_deps][end][for target.deps][if-index target.deps first][else] [end][target.deps][end] [target.name]: $([target.varname]_DEPS) -[if-any target.headers][target.varname]_CLASS_FILENAMES =[for target.header_class_filenames] [target.header_class_filenames][end] -[target.varname]_CLASSES =[for target.header_classes] [target.header_classes][end] -$([target.varname]_HEADERS): $([target.varname]_CLASS_FILENAMES) - [target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_CLASSES) -[end][if-any target.sources][target.varname]_SRC =[for target.sources] [target.sources][end] -$([target.varname]_OBJECTS): $([target.varname]_SRC) - [target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC) +[if-any target.sources][target.varname]_SRC =[for target.sources] [target.sources][end] +$([target.varname]_HEADERS) $([target.varname]_OBJECTS): $([target.varname]_SRC) + [target.link_cmd][if-any target.headers] -h [target.headers_dir][end] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC) [if-any target.jar] $(JAR) cf [target.jar_path] -C [target.classes][for target.packages] [target.packages][end][end][end] [else][is target.type "i18n"][target.varname]_DEPS =[for target.add_deps] [target.add_deps][end][for target.objects] [target.objects][end][for target.deps] [target.deps][end] diff --git a/build/generator/templates/vcnet_vcxproj.ezt b/build/generator/templates/vcnet_vcxproj.ezt index 845c322..41c8f08 100644 --- a/build/generator/templates/vcnet_vcxproj.ezt +++ b/build/generator/templates/vcnet_vcxproj.ezt @@ -62,7 +62,6 @@ <PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions> <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName> <DisableSpecificWarnings>4100;4127;4206;4512;4701;4706;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> <TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4033;4047;4089;4113;4115;4133;4204;4700;4715;4789;%(TreatSpecificWarningsAsErrors)</TreatSpecificWarningsAsErrors> [if-any configs.forced_include_files] <ForcedIncludeFiles>[for configs.forced_include_files][configs.forced_include_files];[end]%(ForcedIncludeFiles)</ForcedIncludeFiles> diff --git a/build/transform_libtool_scripts.sh b/build/transform_libtool_scripts.sh index cdced3a..c4768ec 100755 --- a/build/transform_libtool_scripts.sh +++ b/build/transform_libtool_scripts.sh @@ -49,6 +49,7 @@ transform() DIR=`pwd` +transform subversion/tests/afl/afl-svndiff "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so" transform subversion/tests/afl/afl-x509 "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so" transform subversion/tests/cmdline/atomic-ra-revprop-change "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so" transform subversion/tests/libsvn_subr/auth-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so" diff --git a/build/transform_sql.py b/build/transform_sql.py index a1cc6f0..18091f2 100755 --- a/build/transform_sql.py +++ b/build/transform_sql.py @@ -274,7 +274,7 @@ def main(input_filepath, output): '/* This file is automatically generated from %s and %s.\n' ' * Do not edit this file -- edit the source and rerun gen-make.py */\n' '\n' - % (filename, token_map_filename)) + % (filename, os.path.basename(token_map_filename))) proc = Processor(os.path.dirname(input_filepath), output, var_name, token_map) proc.process_file(input) diff --git a/build/win32/vc6-build.bat.in b/build/win32/vc6-build.bat.in deleted file mode 100644 index 7bfce71..0000000 --- a/build/win32/vc6-build.bat.in +++ /dev/null @@ -1,176 +0,0 @@ -@echo off -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. - -rem ====== Environment change lives only for the duration of the script -setlocal - -rem ====== Set these shell variables before doing a build. -rem VER is used to name the output bin dir as svn-win32-%VER% -set VER=trunk -rem DIR is appended to src- to make the dir name, e.g., src-trunk -set DIR=trunk -set DRIVE=C -set PYTHONDIR=C:\Python22 -set AWKDIR=C:\SVN\awk -set NASMDIR=C:\SVN\nasm -set SDKINC=C:\Program Files\Microsoft SDK\include -set SDKLIB=C:\Program Files\Microsoft SDK\lib -set APACHEDIR=C:\Program Files\Apache Group\Apache2 -set GETTEXTINC=C:\SVN\gettext\include -set GETTEXTLIB=C:\SVN\gettext\lib -set GETTEXTBIN=C:\SVN\gettext\bin -rem ====== End of shell variables which need to be set. - -rem Set up path to include Python and BDB. -PATH=%PATH%;%DRIVE%:\SVN\src-%DIR%\db4-win32;%NASMDIR%;%PYTHONDIR%;%AWKDIR%;%GETTEXTBIN% - -rem Set INCLUDE and LIB for the msdev builds. -set INCLUDE=%SDKINC%;%INCLUDE%;%GETTEXTINC% -set LIB=%SDKLIB%;%LIB%;%GETTEXTLIB% - -rem Check that the subversion code exists here. -cd %DRIVE%:\SVN\src-%DIR% -if not exist subversion goto wrongstartdir -cd .. - -rem ====== Check the prerequisites are at least in the right place. -if not exist httpd-2.0.50 goto httpderr -if not exist nasm goto nasmerr -if not exist openssl-0.9.7d goto opensslerr -if not exist src-%DIR% goto svnerr -if not exist zlib goto zliberr -if not exist zlib\zlibstat.lib goto zlibstaterr -if not exist src-%DIR%\db4-win32 goto bdberr -if not exist gettext goto gettexterr -goto allok - -:wrongstartdir -echo Unable to find %DRIVE%:\SVN\src-%DIR%\subversion -goto theveryend -:httpderr -echo Unable to find httpd-2.0.50 -goto end -:nasmerr -echo Unable to find nasm -goto end -:opensslerr -echo Unable to find openssl-0.9.7d -goto end -:svnerr -echo Unable to find Subversion source in src-%DIR% -goto end -:zliberr -echo Unable to find zlib -goto end -:zlibstaterr -echo Please copy zlib\static32\zlibstat.lib to zlib\zlibstat.lib -goto end -:bdberr -echo Unable to find Berekely DB -goto end -:gettexterr -echo Unable to find gettext -goto end -:allok - -rem ====== Build openssl. -cd openssl-0.9.7d -perl Configure VC-WIN32 -call ms\do_nasm -nmake -f ms\ntdll.mak -cd out32dll -call ..\ms\test -cd ..\.. - -rem ====== Build Apache 2 -cd src-%DIR% -python gen-make.py -t dsp --with-httpd=..\httpd-2.0.50 --with-berkeley-db=db4-win32 --with-openssl=..\openssl-0.9.7d --with-zlib=..\zlib --enable-nls --enable-bdb-in-apr-util -cd .. -msdev httpd-2.0.50\apache.dsw /MAKE "BuildBin - Win32 Release" - -rem ====== Subversion -cd src-%DIR% -msdev subversion_msvc.dsw /USEENV /MAKE "__ALL_TESTS__ - Win32 Release" -mkdir Release\subversion\tests\cmdline -xcopy /S /Y subversion\tests\cmdline Release\subversion\tests\cmdline -copy Release\subversion\mod_dav_svn\mod_dav_svn.so "%APACHEDIR%"\modules -copy Release\subversion\mod_authz_svn\mod_authz_svn.so "%APACHEDIR%"\modules -cd .. - -rem ====== Copy the binaries into a tree suitable for zipping. -mkdir svn-win32-%VER% -mkdir svn-win32-%VER%\bin -mkdir svn-win32-%VER%\httpd -mkdir svn-win32-%VER%\iconv -copy src-%DIR%\db4-win32\bin\libdb42.dll svn-win32-%VER%\bin -copy openssl-0.9.7d\out32dll\libeay32.dll svn-win32-%VER%\bin -copy openssl-0.9.7d\out32dll\ssleay32.dll svn-win32-%VER%\bin -copy httpd-2.0.50\srclib\apr\Release\libapr.dll svn-win32-%VER%\bin -copy httpd-2.0.50\srclib\apr-iconv\Release\libapriconv.dll svn-win32-%VER%\bin -copy httpd-2.0.50\srclib\apr-iconv\Release\iconv\*.so svn-win32-%VER%\iconv -copy httpd-2.0.50\srclib\apr-util\Release\libaprutil.dll svn-win32-%VER%\bin -copy gettext\bin\intl.dll svn-win32-%VER%\bin -copy gettext\bin\iconv.dll svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svn\svn.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svnadmin\svnadmin.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svndumpfilter\svndumpfilter.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svnlook\svnlook.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svnserve\svnserve.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svnversion\svnversion.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svnrdump\svnrdump.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\svnmucc\svnmucc.exe svn-win32-%VER%\bin -copy src-%DIR%\Release\subversion\mod_authz_svn\mod_authz_svn.so svn-win32-%VER%\httpd -copy src-%DIR%\Release\subversion\mod_dav_svn\mod_dav_svn.so svn-win32-%VER%\httpd -copy svn-win32-%VER%\bin\intl.dll "%APACHEDIR%\bin" -copy svn-win32-%VER%\bin\iconv.dll "%APACHEDIR%\bin" -copy svn-win32-%VER%\bin\libdb42.dll "%APACHEDIR%\bin" - -rem ====== Configure Apache ready for doing tests. -@echo off -echo Configure Apache to use the mod_dav_svn and mod_authz_svn modules -echo by making sure these lines appear uncommented in httpd.conf: -echo LoadModule dav_module modules/mod_dav.so -echo LoadModule dav_fs_module modules/mod_dav_fs.so -echo LoadModule dav_svn_module modules/mod_dav_svn.so -echo LoadModule authz_svn_module modules/mod_authz_svn.so -echo And further down the file add: -echo ^<Location /svn-test-work/repositories^> -echo DAV svn -echo SVNParentPath %DRIVE%:/SVN/src-%DIR%/Release/subversion/tests/cmdline/svn-test-work/repositories -echo ^</Location^> -echo ^<Location /svn-test-work/local_tmp/repos^> -echo DAV svn -echo SVNPath %DRIVE%:/SVN/src-%DIR%/Release/subversion/tests/cmdline/svn-test-work/local_tmp/repos -echo ^</Location^> -echo Then restart Apache. - -echo Please configure Apache and press enter: -pause -@echo on - -rem ====== Run the tests. -PATH=%DRIVE%:\SVN\svn-win32-%VER%\bin;%PATH% -cd src-%DIR% -python win-tests.py -c -r -v -python win-tests.py -c -r -v -u http://localhost -cd .. - -:end -cd src-%DIR% -endlocal -:theveryend |