Files
2020-12-31 15:28:51 +08:00

172 lines
11 KiB
Makefile

####################################################################
## pljava的编译说明
###################################################################
### pljava编译步骤
1. pljavaconfiguremake install使configureMakefileutils/errcodes.hmake installutils/errcodes.h
2. git clean -xdf
3. ./build.sh -m all
### pljava编译策略
1. libpljava.sopljava.jarPLJAVAgaussdblibpljava.so$GAUSSHOME/lib/libpljava.sopljava.jar$GAUSSHOME/lib/postgresql/java/pljava.jar
2. udstools.pyDWS使gs_extend_libraryOBSjar使udstools.pyCode/binarylibs/xxxxx()/pljava/git
3. PLJAVAJAVAJDK.jarpljava.jargaussdbpljava.jarCode/binarylibs/xxxxx()/pljava/git
4. PLJAVAClibpljava.sogaussdb
####################################################################
## pljava build.sh编译选项详解
####################################################################
### ./build.sh -m all
./build.sh -m build
./build.sh -m shrink
./build.sh -m dist
./build.sh -m clean
### ./build.sh -m build
()pljava.jarpljava.so
1. pljava_1.5.2_src.zippljava-1_5_2.tar.gz
2. 使huawei_pljava.patchpatchudstools.pypatchpljavaMakefile
patchplajva-1.5.2
3. make -sj pljava
-3.1 pljava-api.jar
-3.2 pljava.jarpljava.jarpljava-api.jarpljava-api.jarpljava.jar使pljava-api.jarjarpljava-api.jarpljava.jar
-3.3 javahpljava.jar.hjavah3.2pljava/target/class.class
4. make -sj all,
-4.1 3Makefile
-4.2 make pljava_solibpljava.solibpljava.sojavah3.3.h
-4.3 libpljava.sopljava/target/libpljava.solib
5. makemakemake allMakefile
./pljava-1_5_2/udstools.py
./pljava-1_5_2/lib/libpljava.so
./pljava-1_5_2/pljava/target/pljava.jar
### ./build.sh -m shrink
install_comm_distinstall_llt_dist
install_llt_distinstall_comm_dist使
PLJAVA
1. ./pljava-1_5_2/lib/libpljava.soinstall_comm_dist/libinstall_llt_dist/lib
2. ./pljava-1_5_2/udstools.py./pljava-1_5_2/pljava/target/pljava.jarinstall_comm_dist/javainstall_llt_dist/java
### ./build.sh -m dist
install_comm_distinstall_llt_distCode/binarylibs/xxxxx()/pljava/
Code/binarylibs/xxxxx()/pljava/gaussdb使
### ./build.sh -m clean
open_source/pljavalogCode/binarylibs/xxxxx()/pljava/
### ./build.sh -m only_so
libpljava.soCode/binarylibs/xxxxx()/pljava/
pljava-so/pljava/target/javah-includejavah.h
1. patch-mds5patchpatch
-1.1 tmp_id.dattmp_id.datpatchmd5
-1.2 1.1patch_ids.datpatchpatch
2. make pljava_solibpljava.so
3. libpljava.soinstall_comm_dist/libinstall_llt_dist/lib
4. libpljava.soCode/binarylibs/xxxxx()/pljava/
### ./build.sh -m patch_md5
huawei_pljava.patchmd5patch_ids.dat
####################################################################
## 如何正确使用编译选项
####################################################################
### 何时使用./build.sh -m build
1. PLJAVApatch
2. huawei_pljava.patchJDK
### 何时使用./build.sh -m only_so
1. gaussdblibpljava.solibpljava.so
2. PLJAVAClibpljava.so
./build.sh -m buildClibpljava.so
libpljava.so$GAUSSHOME/lib/libpljava.solibpljava.so
### 何时使用./build.sh -m patch_md5
1. huawei_pljava.patchPLJAVAhuawei_pljava.patch
####################################################################
## 如何对PLJAVA进行开发
####################################################################
1. git clean -xdf
2. ./build.sh -m buildpatchPLJAVA
3. PLJAVA
4. PLJAVA#哪些场景需要考虑PLJAVA编译问题
####################################################################
## 哪些场景需要考虑重新编译PLJAVA
####################################################################
### JDK升级
JDKPLJAVA
pljava.jar使Code/buildtools/xxxxx()/huaweijdk8/jdk1.8.0_262
为了保证pljava-so,pljava-api,pljava都可以单独编译,因此JAVA_HOME是硬编码到以下Makefile中(后续可以考虑改进):
./pljava-1_5_2/Makefile
./pljava-1_5_2/pljava-so/Makefile
./pljava-1_5_2/pljava-api/Makefile
./pljava-1_5_2/pljava/Makefile
JDKPLJAVA
#### JDK为小版本升级,目录仍然为Code/buildtools/xxxxx(当前平台)/huaweijdk8/jdk1.8.0_262没变化
1. git clean -xdf
2. ./build.sh -m all./install_comm_dist/java/pljava.jar
3. ./install_comm_dist/java/pljava.jarbinarylibs
Code/binarylibs/xxxxx(/pljava/comm/java/pljava.jar
4. ./install_llt_dist/java/pljava.jarbinarylibs
Code/binarylibs/xxxxx(/pljava/llt/java/pljava.jar
5. git add Code/binarylibs/xxxxx()/pljava/*
6. git commit
#### JDK为大版本升级,目录已经变更为其他目录了
1. vi huawei_pljava.patchJAVA_HOMEhuaweijdk8/jdk1.8.0_262
2. ./build.sh -m patch_md5patchmd5
3. **JDK**1-4
4. git add Code/binarylibs/xxxxx()/pljava/* huawei_pljava.patch patch_ids.dat
5. git commit
####################################################################
### PLJAVA中JAVA代码需变更
JDKPLJAVAJAVA
PLJAVAJAVAPLJAVA
1. .class.ojavah.htarget
2. pljava-1_5_2pljava-1_5_2-new
3. unzip pljava_1.5.2_src.zip && tar -xf pljava_1.5.2_src/pljava-1_5_2.tar.gz
4. diff -ruN pljava-1_5_2 pljava-1_5_2-new > huawei_pljava.patch patch
5. ./build.sh -m patch_md5patchmd5
6. **JDK**1-4
7. git add Code/binarylibs/xxxxx()/pljava/* huawei_pljava.patch patch_ids.dat
8. git commit
### PLJAVA中C代码需变更
pljava-soCPLJAVApatchgaussdblibpljava.so
1. **PLJAVAJAVA**1-5
2. git add huawei_pljava.patch patch_ids.dat
3. git commit
####################################################################
### PLJAVA中udstools.py变更
udstools.py
1. udstools.pyhuawei_pljava.patch
vi huawei_pljava.patchudstools.py
2. 使 diff -ruN udstools.py udstools.py-newhuawei_pljava.patch
3. ./build.sh -m patch_md5patchmd5
4. udstools.py-newudstools.pybinarylibs
Code/binarylibs/xxxxx(/pljava/comm/udstools.pyCode/binarylibs/xxxxx(/pljava/llt/udstools.py
5. git add Code/binarylibs/xxxxx()/pljava/* huawei_pljava.patch patch_ids.dat
6. git commit
####################################################################
### PLJAVA中Makefile变更
1. Makefilehuawei_pljava.patch
vi huawei_pljava.patchMakefile
2. 使 diff -ruN Makefile Makefile-newhuawei_pljava.patch
3. ./build.sh -m patch_md5patchmd5
4. git add huawei_pljava.patch patch_ids.dat
5. git commit