把以前写的东西,在这里整理一下,顺便根据新代码做些调整。
PG源码
网站:www.Postgresql.org
文件夹:E:\PG\01-源码\postgresql-9.1.1.tar.bz2
解压到:E:\PG\Postgresql
解压后的文件夹:E:\PG\Postgresql\postgresql-9.1.1
vs2005
自备
添加C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727到环境变量PATH中
set path=%path%;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
命令行中,不区分大小写,但仅限于会话级别有效。
开源工具
可以去下载,下载地址以后补充。
文件夹位置:E:\PG\pgdebug
工具:openssl、Perl、prog、Python24、Tcl
配置
文件位置:E:\PG\Postgresql\postgresql-9.1.1\src\tools\msvc\config_default.pl
使用UE打开
# Configuration arguments for vcbuild.
use strict;
use warnings;
our $config = {
asserts=>0,# --enable-cassert
# integer_datetimes=>1,# --enable-integer-datetimes - on is now default
# float4byval=>1,# --disable-float4-byval,on by default
# float8byval=>0,# --disable-float8-byval,off by default
# blocksize => 8,# --with-blocksize,8kB by default
# wal_blocksize => 8,# --with-wal-blocksize,8kB by default
# wal_segsize => 16,# --with-wal-segsize,16MB by default
ldap=>1,# --with-ldap
nls=>undef,# --enable-nls=<path>
tcl=>'E:\PG\pgdebug\tcl',# --with-tls=<path>
perl=>'E:\PG\pgdebug\perl',# --with-perl
python=>'E:\PG\pgdebug\Python24',# --with-python=<path>
krb5=>'E:\PG\pgdebug\prog\pgsql\depend\krb5',# --with-krb5=<path>
openssl=>'E:\PG\pgdebug\openssl',# --with-ssl=<path>
#uuid=>undef,# --with-ossp-uuid
xml=>'E:\PG\pgdebug\prog\pgsql\depend\libxml2',# --with-libxml=<path>
xslt=>'E:\PG\pgdebug\prog\pgsql\depend\libxslt',# --with-libxslt=<path>
iconv=>'E:\PG\pgdebug\prog\pgsql\depend\iconv',# (not in configure,path to iconv)
zlib=>'E:\PG\pgdebug\prog\pgsql\depend\zlib'# --with-zlib=<path>
};
1;
配置perl环境变量
set path=E:\PG\pgdebug\Perl\bin;%path%
生成
cd /d E:\PG\Postgresql\postgresql-9.1.1\src\tools\msvc
perl build.pl DEBUG
cd /d E:\PG\Postgresql\postgresql-9.1.1\
mkdirmain
perl install.pl E:\PG\Postgresql\postgresql-9.1.1\main
cd /d E:\PG\pgdebug\prog\pgsql\depend\krb5\bin
copy *.dll E:\PG\Postgresql\postgresql-9.1.1\main\bin\
cd /d E:\PG\Postgresql\postgresql-9.1.1\main\bin
initdb.exe --no-localepgdb
词法文件
src\backend\parser\scan.l
contrib\cube\cubescan.l
src\interfaces\ecpg\preproc\pgc.l
src\backend\bootstrap\bootscanner.l
src\backend\replication\repl_scanner.l
contrib\seg\segscan.l
src\backend\utils\misc\guc-file.l
src\test\isolation\specscanner.l
8个语法文件,做如上处理
src\backend\parser\gram.y
src\backend\bootstrap\bootparse.y
src\backend\replication\repl_gram.y
src\pl\plpgsql\src\gram.y
src\test\isolation\specparse.y
src\interfaces\ecpg\preproc\preproc.y
contrib\cube\cubeparse.y
contrib\seg\segparse.y
修正文件
\src\backend\main\main.c
//check_root(progname);
修改文件属性
调试-->命令参数和工作目录
-D pgdb
E:\PG\Postgresql\postgresql-9.1.1\main\bin
E:\PG\Postgresql\postgresql-9.1.1\main\bin\postgres.exe
调试
......
114>stem_ISO_8859_1_danish.c
114>api.c
114>dict_snowball.c
114>Generate DEF file
114>Not re-generating DICT_SNOWBALL.DEF,file already exists.
114>正在链接...
114> 正在创建库 Debug\dict_snowball\dict_snowball.lib 和对象 Debug\dict_snowball\dict_snowball.exp
114>正在嵌入清单...
114>生成日志保存在“file://e:\PG\Postgresql\postgresql-9.1.1\Debug\dict_snowball\BuildLog.htm”
114>dict_snowball - 0 个错误,0 个警告
========== 全部重新生成: 114 已成功,0 已失败,0 已跳过 ==========
出现调试后台,即完成目的。
原文链接:https://www.f2er.com/postgresql/196207.html