zoukankan      html  css  js  c++  java
  • Windows7+VS2008 下编译Subversion 1.8.3

    一、需要的软件包

    1.python-2.7.5.msi  http://www.python.org/

    2.ActivePerl-5.8.8.822-MSWin32-x86-280952.msi  http://www.python.org/

    3.awk95.exe  http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe

    4.gettext-0.14.1-bin.zip http://sourceforge.net/projects/gnuwin32/files/gettext/0.14.1/

    5.httpd-2.2.25-win32-src.zip http://mirrors.hust.edu.cn/apache//httpd/httpd-2.0.65-win32-src.zip

    6.openssl-1.0.1e.tar.gz http://www.openssl.org/source/

    7.zlib128.zip http://sourceforge.net/projects/libpng/files/zlib/1.2.8/

    8.libintl 0.14.1(patched) http://subversion.tigris.org/files/documents/15/20739/svn-win32-libintl.zip

    9.db-4.8.30.zip(Berkeley DB 4.8.30) http://www.oracle.com/technetwork/database/berkeleydb/downloads/index-082944.html

    10.serf-1.2.1.zip  https://code.google.com/p/serf/downloads/detail?name=serf-1.2.1.zip&can=1&q=

    11.sqlite 3.7.17.0 http://sqlite.org/2013/sqlite-amalgamation-3071700.zip

    12.jdk1.6.0_30

    13.junit-4.11.jar https://github.com/junit-team/junit/downloads

    14.cyrus-sasl-2.1.26.tar.gz http://cyrusimap.org/releases/

    二、安装

    1、安装Python和Perl,加入PATH环境变量

    2、新建F:SVN目录,解压gettext-0.14.1-bin.zip到该目录,加入PATH环境变量

    3、复制awk95.exe到F:SVNgettext-0.14.1-binin目录

    三、编译

    1、编译httpd-2.2.25、openssl-1.0.1e及zlib1.2.8

      解压httpd-2.2.25-win32-src.zip到 F:SVN目录

      httpd依赖openssl和zlib,所以要先编译这两库。复制openssl-1.0.1e.tar.gz和zlib128.zip到F:SVNhttpd-2.2.25srclib目录,解压生成F:SVNhttpd-2.2.25srclibopenssl和F:SVNhttpd-2.2.25srclibzlib目录

      1.1、编译openssl

      打开vs2008命令提示符窗口,进入F:SVNhttpd-2.2.25srclibopenssl目录,参考F:SVNhttpd-2.2.25srclibopensslINSTALL.W32文件进行安装

         (1)、执行perl Configure VC-WIN32进行配置

       (2)、执行 msdo_ms生成makefile

       (3)、执行nmake -f ms tdll.mak进行编译,编译完成后执行nmake -f ms tdll.mak test进行测试

       (4)、以上步骤编译出来的是Release版本,现要编译Debug版本,做如下修改:

          复制msdo_ms.bat为msdo_ms_dbg.bat,修改内容如下(红色的debug为新增):

          perl utilmkfiles.pl >MINFO
          perl utilmk1mf.pl debug no-asm VC-WIN32 >ms t.mak
          perl utilmk1mf.pl debug dll no-asm VC-WIN32 >ms tdll.mak
          if x%OSVERSION% == x goto skipce
          perl utilmk1mf.pl debug no-asm VC-CE >msce.mak
          perl utilmk1mf.pl debug dll no-asm VC-CE >mscedll.mak

          执行 msdo_ms_dbg重新生成makefile,按步骤(3)重新编译

       1.2 编译zlib

       打开vs2008命令提示符窗口,进入F:SVNhttpd-2.2.25srclibzlibcontribmasmx86目录,执行bld_ml32.bat,将生成inffas32.obj和match686.obj,把这两个文件复         制到F:SVNhttpd-2.2.25srclibzlib目录下,执行nmake -f win32/Makefile.msc 进行编译

       1.3 编译httpd-2.2.25

       进入F:SVNhttpd-2.2.25\,用VS2008打开Apache.dsw,把它转换成VS2008的工程,打开后编译BuildAll这个工程,它将编译所有的工程

       注:编译过程中报很多如下的错:

        fatal error RC1107: invalid usage; use RC /? for Help

        这是由于vcproj文件中合有;(quot;)导致的,只要全部替换就可以了

        

        用正则表达式把所有的"号去除。执行LONG_NAME="{.*}"替换为LONG_NAME=1BIN_NAME="{.*}"替换为BIN_NAME=1

       DLL_NAME="{.*}"替换为DLL_NAME=1,共三次替换。注意,第一次替换httpd工程还有"要手动改下

       修改完成后就可以正常的编译了

    2、编译db-4.8.30、cyrus-sasl-2.1.26、subversion-1.8.3

      2.1、编译db-4.8.30

         解压db-4.8.30.zip到F:SVN目录,打开F:SVNdb-4.8.30uild_windowsBerkeley_DB.sln,编译整个解决方案即可。可以编译Debug版和Release版

      2.2、编译cyrus-sasl-2.1.26

         解压cyrus-sasl-2.1.26.zip到F:SVN目录,在VS2008命令提示符下进入F:SVNcyrus-sasl-2.1.26,执行如下命令:

         nmake /f NTMakefile CFG=Debug DB_INCLUDE=F:/SVN/db-4.8.30/build_windows DB_LIBPATH=F:/SVN/db-4.8.30/build_windows/Win32/Debug OPENSSL_INCLUDE=F:/SVN/httpd-2.2.25/srclib/openssl/inc32 OPENSSL_LIBPATH=F:/SVN/httpd-2.2.25/srclib/openssl/out32dll.dbg DB_LIB=libdb48d.lib

         nmake /f NTMakefile CFG=Release DB_INCLUDE=F:/SVN/db-4.8.30/build_windows DB_LIBPATH=F:/SVN/db-4.8.30/build_windows/Win32/Release OPENSSL_INCLUDE=F:/SVN/httpd-2.2.25/srclib/openssl/inc32 OPENSSL_LIBPATH=F:/SVN/httpd-2.2.25/srclib/openssl/out32dll DB_LIB=libdb48.lib

        编译整个工程。其实subversion只用到了lib,也可以在F:SVNcyrus-sasl-2.1.26lib目录下执行nmake /f NTMakefile

      2.3、编译subversion-1.8.3

        (1)、解压subversion-1.8.3到F:SVN目录下,并重命名为src-trunk

        (2)、复制serf-1.2.1.zip、sqlite-amalgamation-3071700.zip、svn-win32-libintl.zip到F:SVNsrc-trunk下,解压后重命名,去除版本号

        (3)、在VS2008命令提示符下进入F:SVNsrc-trunk,执行如下命令生成vs工程:

            python gen-make.py -t vcproj --vsnet-version=2008 --with-berkeley-db=db.h:../db-4.8.30/build_windows:../db-4.8.30/build_windows/Win32/lib --with-serf=serf --with-httpd=../httpd-2.2.25 --with-libintl=svn-win32-libintl --with-openssl=../httpd-2.2.25/srclib/openssl --with-zlib=../httpd-2.2.25/srclib/zlib --with-jdk="C:Program FilesJavajdk1.6.0_30" --with-junit=../junit-4.11.jar --with-sqlite=sqlite

             注:红色部分的Win32/lib目录下的lib文件是分别从Win32Debug和Win32Release目录下复制过来,包含如下文件

            F:SVNDB-4.8.30BUILD_WINDOWSWIN32LIB
                    libdb48.dll
                    libdb48.lib
                    libdb48d.dll
                    libdb48d.lib

        (4)、打开F:SVNsrc-trunksubversion_vcnet.sln,编译__ALL_TESTS__工程

        

        

  • 相关阅读:
    图解JAVA对象的创建过程
    统计机器学习
    排序算法简介及其C实现
    linux中强大的screen命令
    C语言注释
    Hello hadoop——使用hadoop进行大规模数据的全局排序
    Hadoop Streaming框架使用(二)
    shell——tr的用法
    统计学习方法《文本分类(三)》
    hadoop 常存问题
  • 原文地址:https://www.cnblogs.com/txk1452/p/3378507.html
Copyright © 2011-2022 走看看