odbc支持windows出包

This commit is contained in:
liuheng
2023-03-22 09:22:05 +08:00
parent 365b228da3
commit 2532836e4f
5 changed files with 479 additions and 461 deletions

View File

@ -3,15 +3,30 @@ REM Copyright Huawei Technologies Co., Ltd. 2010-2018. All rights reserved.
setlocal
set WD=%__CD__%
set LIB_SECURITY_DIR=%WD%\..\..\..\..\platform\Huawei_Secure_C\Huawei_Secure_C_V100R001C01SPC010B002
set LIB_GAUSSDB_DIR=%WD%\..\..\..\..\..\server
set LIB_ODBC_DIR=%WD%\..\..
set LIB_SECURITY_DIR=D:\windows_odbc\win32\open_source\Huawei_Secure_C_V100R001C01SPC010B002
set LIB_GAUSSDB_DIR=D:\windows_odbc\win32\open_source\openGauss-server
set LIB_ODBC_DIR=D:\windows_odbc\win32\open_source\openGauss-connector-odbc
set MINGW_DIR=C:\buildtools\mingw-8.1.0\msys32\mingw32
set CMAKE_DIR=C:\buildtools\cmake
set OPENSSL_DIR=D:\GaussDBKernel\open_source\output\openssl-win
set MINGW_DIR=D:\buildtools\mingw-8.1.0\msys64\mingw32
set CMAKE_DIR=D:\env\cmake-3.26
set OPENSSL_DIR=D:\windows_odbc\win32\open_source\output\openssl-win32
set OPENSSL_DIR=D:\windows_odbc\win32\open_source\openssl-OpenSSL_1_1_1n\openssl-OpenSSL_1_1_1n
set MSYS_SHELL=D:\buildtools\mingw-8.1.0\msys64\msys2_shell.cmd
cd %WD%
REM build openssl
cd %OPENSSL_DIR%
REM openssl config
%MSYS_SHELL% -defterm -mingw32 -no-start -full-path -here -c './Configure ^
--prefix=$PWD/openssl-win32 ^
shared mingw no-tests; make -j20; make install -j20; ^
cp $PWD/openssl-win32/bin/libssl-1_1.dll $PWD/openssl-win32; ^
cp $PWD/openssl-win32/bin/libcrypto-1_1.dll $PWD/openssl-win32; ^
rm -rf $PWD/../../output; ^
mkdir -p $PWD/../../output; mv $PWD/openssl-win32 $PWD/../../output/.' ^
cd %WD%
REM Build libsecurec.lib
cp win32/libpq/CMakeLists-huawei-securec.txt %LIB_SECURITY_DIR%/CMakeLists.txt
cd %LIB_SECURITY_DIR%
@ -20,8 +35,8 @@ mkdir build
cd build
cmake -DMINGW_DIR="%MINGW_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" ..
make
cd %WD%
cd %WD%
REM Build libpq.lib
rm -rf %LIB_GAUSSDB_DIR%/libpq-win32
cp -r win32/libpq %LIB_GAUSSDB_DIR%/libpq-win32
@ -33,8 +48,8 @@ mkdir build
cd build
cmake -DMINGW_DIR="%MINGW_DIR%" -DOPENSSL_DIR="%OPENSSL_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" ..
make
cd %WD%
cd %WD%
REM Build psqlodbc35w.lib
cd %LIB_ODBC_DIR%
rm -rf libpq
@ -46,8 +61,8 @@ mkdir build
cd build
cmake -DMINGW_DIR="%MINGW_DIR%" -DOPENSSL_DIR="%OPENSSL_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" ..
make
cd %WD%
cd %WD%
REM Build psqlodbc.exe
cd psqlodbc-installer
rm -rf win32_dll
@ -65,11 +80,11 @@ rm -rf psqlodbc-installer/psqlodbc.exe
cd odbc_output
%p7zip%\7z.exe a GaussDB-Kernel-V500R002C10-Windows-Odbc-X86.tar *
%p7zip%\7z.exe a -tgzip GaussDB-Kernel-V500R002C10-Windows-Odbc-X86.tar.gz *.tar
%p7zip%\7z.exe a windows-odbc-x86.tar *
%p7zip%\7z.exe a -tgzip windows-odbc-x86.tar.gz *.tar
del *.tar
set OUTPUT_DIR=%LIB_ODBC_DIR%/output
mkdir "%OUTPUT_DIR%"
cp GaussDB-Kernel-V500R002C00-Windows-Odbc-X86.tar.gz %OUTPUT_DIR%
cp windows-odbc-x86.tar.gz %OUTPUT_DIR%

View File

@ -5,7 +5,7 @@ SET(CMAKE_VERBOSE_MAKEFILEON ON)
MESSAGE(STATUS "Building LIBSECUREC Library.")
IF(NOT DEFINED MINGW_DIR)
set(MINGW_DIR "D:\\msys32\\mingw32")
set(MINGW_DIR "D:\\buildtools\\mingw-8.1.0\\msys64\\mingw32")
ENDIF(NOT DEFINED MINGW_DIR)
SET(PWD_DIR ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -6,7 +6,7 @@ SET(CMAKE_VERBOSE_MAKEFILEON ON)
MESSAGE(STATUS "Building LIBPQ Library.")
IF(NOT DEFINED OPENSSL_DIR)
set(OPENSSL_DIR "D:\\Program_Files\\OpenSSL-Win32")
set(OPENSSL_DIR "D:\\windows_odbc\\win32\\open_source\\output\\openssl-win32")
ENDIF(NOT DEFINED OPENSSL_DIR)
IF(NOT DEFINED MINGW_DIR)
set(MINGW_DIR "D:\\buildtools\\mingw-8.1.0\\msys32\\mingw32")

View File

@ -3,7 +3,7 @@
#################################################################
ifndef $(OPENSSL_DIR)
OPENSSL_DIR:=/d/Program_Files/OpenSSL-Win32
OPENSSL_DIR:=/d/windows_odbc/win32/open_source/output/openssl-win32
endif
ifndef $(MINGW_DIR)

View File

@ -1,446 +1,449 @@
# Copyright Huawei Technologies Co., Ltd. 2010-2018. All rights reserved.
#!/bin/bash
MD="mkdir -p"
RM="rm -rf"
CP="cp -r"
ROOT_DIR=$LIB_GAUSSDB_DIR
#ROOT_DIR=`pwd`/..
SRC_DIR=$ROOT_DIR/../open_source/opengauss/src
LIBPQ_WIN32_DIR=$ROOT_DIR/libpq-win32
PREPARED_DIR=$LIBPQ_WIN32_DIR
EXPORT_DIR=$LIBPQ_WIN32_DIR/libpq-export
### function ###
function copy_file()
{
file=$1 #file name
src=$2 #source directory
dst=$3 #target directory
if [ ! -f "$src"/"$file" ];then
echo "Error: $src/$file doesn't exist, exit."
exit -1
fi
if [ ! -d $dst ];then
$MD $dst
fi
#echo "Copy $src/$file to $dst/$file"
$CP $src/$file $dst/$file
}
### function ###
function init_win_project()
{
if [ ! -f "$PREPARED_DIR"/include/pg_config.h ]; then
echo "Error: Header file pg_config.h for Windows lost, exit."
exit -1
fi
if [ ! -f "$PREPARED_DIR"/include/pg_config_os.h ]; then
echo "Error: Header file pg_config_os.h for Windows lost, exit."
exit -1
fi
if [ ! -f "$PREPARED_DIR"/include/pg_config_paths.h ]; then
echo "Error: Header file pg_config_paths.h for Windows lost, exit."
exit -1
fi
if [ ! -f "$PREPARED_DIR"/include/errcodes.h ]; then
echo "Error: Header file errcodes.h for Windows lost, exit."
exit -1
fi
if [ ! -f "$PREPARED_DIR"/include/libpqdll.def ]; then
echo "Error: Interface definition file libpqdll.def for Windows lost, exit."
exit -1
fi
if [ ! -f "$PREPARED_DIR"/Makefile ];then
echo "Error: Makefile for MinGW complier lost, exit."
exit -1
fi
if [ ! -f "$PREPARED_DIR"/CMakeLists.txt ];then
echo "Error: CMakeLists.txt for CMake && MinGW complier lost, exit."
exit -1
fi
# $RM $LIBPQ_WIN32_DIR/include
$RM $LIBPQ_WIN32_DIR/src
if [ ! -d "$LIBPQ_WIN32_DIR"/lib ];then
$MD $LIBPQ_WIN32_DIR/lib
fi
}
### function ###
function copy_headers()
{ # copy header files
# copy form prepared directory
copy_file securec.h $LIB_SECURITY_DIR/include $LIBPQ_WIN32_DIR/include
copy_file securectype.h $LIB_SECURITY_DIR/include $LIBPQ_WIN32_DIR/include
#copy_file pg_config.h $PREPARED_DIR $LIBPQ_WIN32_DIR/include
#copy_file pg_config_os.h $PREPARED_DIR $LIBPQ_WIN32_DIR/include
# include
copy_file c.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file cipher.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file datatypes.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file getaddrinfo.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file gs_thread.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file gs_threadlocal.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file pg_config_manual.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file port.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file postgres.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file postgres_ext.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file postgres_fe.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file securec_check.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
# include/access
copy_file attnum.h $SRC_DIR/include/access $LIBPQ_WIN32_DIR/include/access
copy_file tupdesc.h $SRC_DIR/include/access $LIBPQ_WIN32_DIR/include/access
# include/catlog
copy_file genbki.h $SRC_DIR/include/catalog $LIBPQ_WIN32_DIR/include/catalog
copy_file pg_attribute.h $SRC_DIR/include/catalog $LIBPQ_WIN32_DIR/include/catalog
# include/client_logic
copy_file cache.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
copy_file client_logic.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
copy_file client_logic_enums.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
copy_file cstrings_map.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
# include/gstrace
copy_file gstrace_infra.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
copy_file gstrace_infra_int.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
copy_file gstrace_tool.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
# include/libcomm
#copy_file libcomm.h $SRC_DIR/include/libcomm $LIBPQ_WIN32_DIR/include/libcomm
# include/libpq
copy_file auth.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file be-fsstubs.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file cl_state.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file crypt.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file guc_vars.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file hba.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file ip.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-be.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-events.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-fe.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-fs.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-int.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file md5.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqcomm.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqexpbuffer.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqformat.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqsignal.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file sha2.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
# include/mb
copy_file pg_wchar.h $SRC_DIR/include/mb $LIBPQ_WIN32_DIR/include/mb
# include/nodes
copy_file nodes.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file params.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file parsenodes_common.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file pg_list.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file primnodes.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file value.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
# include/parser
copy_file backslash_quotes.h $SRC_DIR/include/parser $LIBPQ_WIN32_DIR/include/parser
# include/port/win32
copy_file dlfcn.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
copy_file grp.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
copy_file netdb.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
copy_file pwd.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
# include/port/win32/arpa
copy_file inet.h $SRC_DIR/include/port/win32/arpa $LIBPQ_WIN32_DIR/include/port/win32/arpa
# include/port/win32/netinet
copy_file in.h $SRC_DIR/include/port/win32/netinet $LIBPQ_WIN32_DIR/include/port/win32/netinet
# include/port/win32/sys
copy_file socket.h $SRC_DIR/include/port/win32/sys $LIBPQ_WIN32_DIR/include/port/win32/sys
copy_file wait.h $SRC_DIR/include/port/win32/sys $LIBPQ_WIN32_DIR/include/port/win32/sys
# include/port/win32_msvc
copy_file dirent.h $SRC_DIR/include/port/win32_msvc $LIBPQ_WIN32_DIR/include/port/win32_msvc
copy_file unistd.h $SRC_DIR/include/port/win32_msvc $LIBPQ_WIN32_DIR/include/port/win32_msvc
copy_file utime.h $SRC_DIR/include/port/win32_msvc $LIBPQ_WIN32_DIR/include/port/win32_msvc
# include/port/win32_msvc/sys
copy_file file.h $SRC_DIR/include/port/win32_msvc/sys $LIBPQ_WIN32_DIR/include/port/win32_msvc/sys
copy_file param.h $SRC_DIR/include/port/win32_msvc/sys $LIBPQ_WIN32_DIR/include/port/win32_msvc/sys
copy_file time.h $SRC_DIR/include/port/win32_msvc/sys $LIBPQ_WIN32_DIR/include/port/win32_msvc/sys
# include/storage
copy_file spin.h $SRC_DIR/include/storage $LIBPQ_WIN32_DIR/include/storage
# include/storage/lock
copy_file pg_sema.h $SRC_DIR/include/storage/lock $LIBPQ_WIN32_DIR/include/storage/lock
copy_file s_lock.h $SRC_DIR/include/storage/lock $LIBPQ_WIN32_DIR/include/storage/lock
# include/utils
copy_file be_module.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file elog.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file palloc.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file pg_crc.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file pg_crc_tables.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file syscall_lock.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
# copy from prepared directory
copy_file errcodes.h $PREPARED_DIR/include $LIBPQ_WIN32_DIR/include/utils # !!!! special source directory
}
function copy_codes()
{
# src/common/backend/libpq
copy_file ip.cpp $SRC_DIR/common/backend/libpq $LIBPQ_WIN32_DIR/src/common/backend/libpq
copy_file md5.cpp $SRC_DIR/common/backend/libpq $LIBPQ_WIN32_DIR/src/common/backend/libpq
copy_file sha2.cpp $SRC_DIR/common/backend/libpq $LIBPQ_WIN32_DIR/src/common/backend/libpq
# src/common/backend/utils/mb
copy_file encnames.cpp $SRC_DIR/common/backend/utils/mb $LIBPQ_WIN32_DIR/src/common/backend/utils/mb
copy_file wchar.cpp $SRC_DIR/common/backend/utils/mb $LIBPQ_WIN32_DIR/src/common/backend/utils/mb
# src/common/interfaces/libpq
copy_file fe-auth.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-auth.h $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-connect.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-exec.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-lobj.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-misc.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-print.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-protocol2.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-protocol3.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-secure.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file libpq-events.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pqexpbuffer.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pqsignal.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pqsignal.h $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pthread-win32.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file win32.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file win32.h $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
# copy interface definition file from prepared directory
copy_file libpqdll.def $PREPARED_DIR/include $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
# src/common/interfaces/libpq/client_logic_cache
copy_file cache_loader.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cache_loader.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_column_manager.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_global_setting.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file column_settings_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file global_settings_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file icached_columns.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file types_to_oid.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cache_refresh_type.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_column_setting.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_setting.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file columns_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file icached_column.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file schemas_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_column.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_columns.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file column_hook_executors_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file dataTypes.def \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file icached_column_manager.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file search_path_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
# src/common/interfaces/libpq/client_logic_common
copy_file client_logic_utils.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file col_full_name.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file cstring_oid_map.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file pg_client_logic_params.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file statement_data.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file table_full_name.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
# src/common/interfaces/libpq/client_logic_hooks
copy_file abstract_hook_executor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file column_hook_executor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file global_hook_executor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file hook_resource.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file hooks_factory.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file hooks_manager.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
# src/common/interfaces/libpq/client_logic_processor
copy_file create_stmt_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file prepared_statement.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file processor_utils.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file raw_values_cont.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file stmt_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file where_clause_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file encryption_pre_process.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file prepared_statements_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file raw_value.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file raw_values_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file values_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
# src/common/interfaces/libpq/frontend_parser
copy_file datatypes.h \
$SRC_DIR/common/interfaces/libpq/frontend_parser \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/frontend_parser
copy_file Parser.h \
$SRC_DIR/common/interfaces/libpq/frontend_parser \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/frontend_parser
# src/common/port
copy_file chklocale.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file dirent.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file getaddrinfo.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_readdir.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_syscall_lock.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file inet_net_ntop.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file path.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file pgsleep.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file pthread-win32.h $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file thread.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file win32error.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file cipher.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file dirmod.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_env_r.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_strerror.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file inet_aton.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file noblock.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file pgstrcasecmp.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file strlcpy.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file win32env.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file win32setlocale.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
# copy from prepared directory
copy_file pg_config_paths.h $PREPARED_DIR/include $LIBPQ_WIN32_DIR/src/common/port
}
function copy_makefiles()
{
copy_file Makefile $PREPARED_DIR $LIBPQ_WIN32_DIR
copy_file CMakeLists.txt $PREPARED_DIR $LIBPQ_WIN32_DIR
}
function generate_libpq_export_files()
{
copy_file auth.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file be-fsstubs.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file guc_vars.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-be.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-int.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqformat.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file be-fsstubs.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file hba.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-events.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file md5.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqsignal.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file cl_state.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file ip.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-fe.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqcomm.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file sha2.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file crypt.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-fs.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqexpbuffer.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file gs_thread.h $LIBPQ_WIN32_DIR/include $EXPORT_DIR/include
copy_file postgres_ext.h $LIBPQ_WIN32_DIR/include $EXPORT_DIR/include
copy_file gs_threadlocal.h $LIBPQ_WIN32_DIR/include $EXPORT_DIR/include
if [ ! -d "$EXPORT_DIR"/lib ];then
$MD $EXPORT_DIR/lib
fi
}
### function ###
function __main__()
{
echo "Start."
echo -n "Step[1] - initialize libpq project directory for Windows ... "
init_win_project
echo "done."
echo -n "Step[2] - copy libpq header files ... "
copy_headers
echo "done."
echo -n "Step[3] - copy libpq source code files ... "
copy_codes
echo "done."
echo -n "Step[4] - prepare Makefile && CMakeLists.txt files for compilation ... "
copy_makefiles
echo "done."
echo -n "Step[5] - generate export directory and files ... "
generate_libpq_export_files
echo "done."
echo "Done."
}
function __clean__()
{
$RM $LIBPQ_WIN32_DIR/include
$RM $LIBPQ_WIN32_DIR/lib
$RM $LIBPQ_WIN32_DIR/libpq-export
$RM $LIBPQ_WIN32_DIR/src
$RM $LIBPQ_WIN32_DIR/CMakeLists.txt
$RM $LIBPQ_WIN32_DIR/Makefile
}
### main ###
if [ $# -eq 0 ];then
__main__
exit 0
fi
if [ $# -eq 1 -a "x$1" = "xclean" ];then
__clean__
exit 0
fi
echo "Usage: \"sh $0\" for initialization or \"sh $0 clean\" for cleaning."
#!/bin/bash
MD="mkdir -p"
RM="rm -rf"
CP="cp -r"
# ROOT_DIR=$LIB_GAUSSDB_DIR
ROOT_DIR=$(pwd)/..
SRC_DIR=$ROOT_DIR/../openGauss-server/src
LIBPQ_WIN32_DIR=$ROOT_DIR/libpq-win32
PREPARED_DIR=$LIBPQ_WIN32_DIR/
EXPORT_DIR=$LIBPQ_WIN32_DIR/libpq-export
LIB_SECURITY_DIR=$ROOT_DIR/../Huawei_Secure_C_V100R001C01SPC010B002
### function ###
function copy_file()
{
file=$1 #file name
src=$2 #source directory
dst=$3 #target directory
if [ ! -f "$src"/"$file" ];then
echo "Error: $src/$file doesn't exist, exit."
exit 1
fi
if [ ! -d $dst ];then
$MD $dst
fi
#echo "Copy $src/$file to $dst/$file"
$CP $src/$file $dst/$file
}
### function ###
function init_win_project()
{
if [ ! -f "$PREPARED_DIR"/include/pg_config.h ]; then
echo "Error: Header file pg_config.h for Windows lost, exit."
exit 1
fi
if [ ! -f "$PREPARED_DIR"/include/pg_config_os.h ]; then
echo "Error: Header file pg_config_os.h for Windows lost, exit."
exit 1
fi
if [ ! -f "$PREPARED_DIR"/include/pg_config_paths.h ]; then
echo "Error: Header file pg_config_paths.h for Windows lost, exit."
exit 1
fi
if [ ! -f "$PREPARED_DIR"/include/errcodes.h ]; then
echo "Error: Header file errcodes.h for Windows lost, exit."
exit 1
fi
if [ ! -f "$PREPARED_DIR"/include/libpqdll.def ]; then
echo "Error: Interface definition file libpqdll.def for Windows lost, exit."
exit 1
fi
if [ ! -f "$PREPARED_DIR"/Makefile ];then
echo "Error: Makefile for MinGW complier lost, exit."
exit 1
fi
if [ ! -f "$PREPARED_DIR"/CMakeLists.txt ];then
echo "Error: CMakeLists.txt for CMake && MinGW complier lost, exit."
exit 1
fi
# $RM $LIBPQ_WIN32_DIR/include
$RM $LIBPQ_WIN32_DIR/src
if [ ! -d "$LIBPQ_WIN32_DIR"/lib ];then
$MD $LIBPQ_WIN32_DIR/lib
fi
}
### function ###
function copy_headers()
{ # copy header files
# copy form prepared directory
copy_file securec.h $LIB_SECURITY_DIR/include $LIBPQ_WIN32_DIR/include
copy_file securectype.h $LIB_SECURITY_DIR/include $LIBPQ_WIN32_DIR/include
#copy_file pg_config.h $PREPARED_DIR $LIBPQ_WIN32_DIR/include
#copy_file pg_config_os.h $PREPARED_DIR $LIBPQ_WIN32_DIR/include
# include
copy_file c.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file cipher.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file datatypes.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file getaddrinfo.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file gs_thread.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file gs_threadlocal.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file pg_config_manual.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file port.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file postgres.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file postgres_ext.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file postgres_fe.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
copy_file securec_check.h $SRC_DIR/include $LIBPQ_WIN32_DIR/include
# include/access
copy_file attnum.h $SRC_DIR/include/access $LIBPQ_WIN32_DIR/include/access
copy_file tupdesc.h $SRC_DIR/include/access $LIBPQ_WIN32_DIR/include/access
# include/catlog
copy_file genbki.h $SRC_DIR/include/catalog $LIBPQ_WIN32_DIR/include/catalog
copy_file pg_attribute.h $SRC_DIR/include/catalog $LIBPQ_WIN32_DIR/include/catalog
# include/client_logic
copy_file cache.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
copy_file client_logic.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
copy_file client_logic_enums.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
copy_file cstrings_map.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/include/client_logic
# include/gstrace
copy_file gstrace_infra.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
copy_file gstrace_infra_int.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
copy_file gstrace_tool.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
#include/lib
copy_file stringinfo.h $SRC_DIR/include/lib $LIBPQ_WIN32_DIR/include/lib
# include/libcomm
#copy_file libcomm.h $SRC_DIR/include/libcomm $LIBPQ_WIN32_DIR/include/libcomm
# include/libpq
copy_file auth.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file be-fsstubs.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file cl_state.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file crypt.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file guc_vars.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file hba.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file ip.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-be.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-events.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-fe.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-fs.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file libpq-int.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file md5.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqcomm.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqexpbuffer.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqformat.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file pqsignal.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
copy_file sha2.h $SRC_DIR/include/libpq $LIBPQ_WIN32_DIR/include/libpq
# include/mb
copy_file pg_wchar.h $SRC_DIR/include/mb $LIBPQ_WIN32_DIR/include/mb
# include/nodes
copy_file nodes.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file params.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file parsenodes_common.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file pg_list.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file primnodes.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
copy_file value.h $SRC_DIR/include/nodes $LIBPQ_WIN32_DIR/include/nodes
# include/parser
copy_file backslash_quotes.h $SRC_DIR/include/parser $LIBPQ_WIN32_DIR/include/parser
# include/port/win32
copy_file dlfcn.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
copy_file grp.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
copy_file netdb.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
copy_file pwd.h $SRC_DIR/include/port/win32 $LIBPQ_WIN32_DIR/include/port/win32
# include/port/win32/arpa
copy_file inet.h $SRC_DIR/include/port/win32/arpa $LIBPQ_WIN32_DIR/include/port/win32/arpa
# include/port/win32/netinet
copy_file in.h $SRC_DIR/include/port/win32/netinet $LIBPQ_WIN32_DIR/include/port/win32/netinet
# include/port/win32/sys
copy_file socket.h $SRC_DIR/include/port/win32/sys $LIBPQ_WIN32_DIR/include/port/win32/sys
copy_file wait.h $SRC_DIR/include/port/win32/sys $LIBPQ_WIN32_DIR/include/port/win32/sys
# include/port/win32_msvc
copy_file dirent.h $SRC_DIR/include/port/win32_msvc $LIBPQ_WIN32_DIR/include/port/win32_msvc
copy_file unistd.h $SRC_DIR/include/port/win32_msvc $LIBPQ_WIN32_DIR/include/port/win32_msvc
copy_file utime.h $SRC_DIR/include/port/win32_msvc $LIBPQ_WIN32_DIR/include/port/win32_msvc
# include/port/win32_msvc/sys
copy_file file.h $SRC_DIR/include/port/win32_msvc/sys $LIBPQ_WIN32_DIR/include/port/win32_msvc/sys
copy_file param.h $SRC_DIR/include/port/win32_msvc/sys $LIBPQ_WIN32_DIR/include/port/win32_msvc/sys
copy_file time.h $SRC_DIR/include/port/win32_msvc/sys $LIBPQ_WIN32_DIR/include/port/win32_msvc/sys
# include/storage
copy_file spin.h $SRC_DIR/include/storage $LIBPQ_WIN32_DIR/include/storage
# include/storage/lock
copy_file pg_sema.h $SRC_DIR/include/storage/lock $LIBPQ_WIN32_DIR/include/storage/lock
copy_file s_lock.h $SRC_DIR/include/storage/lock $LIBPQ_WIN32_DIR/include/storage/lock
# include/utils
copy_file be_module.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file elog.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file palloc.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file pg_crc.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file pg_crc_tables.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
copy_file syscall_lock.h $SRC_DIR/include/utils $LIBPQ_WIN32_DIR/include/utils
# copy from prepared directory
copy_file errcodes.h $PREPARED_DIR/include $LIBPQ_WIN32_DIR/include/utils # !!!! special source directory
}
function copy_codes()
{
# src/common/backend/libpq
copy_file ip.cpp $SRC_DIR/common/backend/libpq $LIBPQ_WIN32_DIR/src/common/backend/libpq
copy_file md5.cpp $SRC_DIR/common/backend/libpq $LIBPQ_WIN32_DIR/src/common/backend/libpq
copy_file sha2.cpp $SRC_DIR/common/backend/libpq $LIBPQ_WIN32_DIR/src/common/backend/libpq
# src/common/backend/utils/mb
copy_file encnames.cpp $SRC_DIR/common/backend/utils/mb $LIBPQ_WIN32_DIR/src/common/backend/utils/mb
copy_file wchar.cpp $SRC_DIR/common/backend/utils/mb $LIBPQ_WIN32_DIR/src/common/backend/utils/mb
# src/common/interfaces/libpq
copy_file fe-auth.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-auth.h $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-connect.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-exec.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-lobj.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-misc.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-print.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-protocol2.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-protocol3.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file fe-secure.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file libpq-events.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pqexpbuffer.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pqsignal.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pqsignal.h $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file pthread-win32.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file win32.cpp $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
copy_file win32.h $SRC_DIR/common/interfaces/libpq $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
# copy interface definition file from prepared directory
copy_file libpqdll.def $PREPARED_DIR/include $LIBPQ_WIN32_DIR/src/common/interfaces/libpq
# src/common/interfaces/libpq/client_logic_cache
copy_file cache_loader.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cache_loader.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_column_manager.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_global_setting.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file column_settings_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file global_settings_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file icached_columns.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file types_to_oid.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cache_refresh_type.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_column_setting.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_setting.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file columns_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file icached_column.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file schemas_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_column.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file cached_columns.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file column_hook_executors_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file dataTypes.def \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file icached_column_manager.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
copy_file search_path_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_cache \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_cache
# src/common/interfaces/libpq/client_logic_common
copy_file client_logic_utils.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file col_full_name.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file cstring_oid_map.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file pg_client_logic_params.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file statement_data.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
copy_file table_full_name.h \
$SRC_DIR/common/interfaces/libpq/client_logic_common \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_common
# src/common/interfaces/libpq/client_logic_hooks
copy_file abstract_hook_executor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file column_hook_executor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file global_hook_executor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file hook_resource.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file hooks_factory.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
copy_file hooks_manager.h \
$SRC_DIR/common/interfaces/libpq/client_logic_hooks \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_hooks
# src/common/interfaces/libpq/client_logic_processor
copy_file create_stmt_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file prepared_statement.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file processor_utils.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file raw_values_cont.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file stmt_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file where_clause_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file encryption_pre_process.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file prepared_statements_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file raw_value.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file raw_values_list.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
copy_file values_processor.h \
$SRC_DIR/common/interfaces/libpq/client_logic_processor \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/client_logic_processor
# src/common/interfaces/libpq/frontend_parser
copy_file datatypes.h \
$SRC_DIR/common/interfaces/libpq/frontend_parser \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/frontend_parser
copy_file Parser.h \
$SRC_DIR/common/interfaces/libpq/frontend_parser \
$LIBPQ_WIN32_DIR/src/common/interfaces/libpq/frontend_parser
# src/common/port
copy_file chklocale.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file dirent.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file getaddrinfo.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_readdir.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_syscall_lock.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file inet_net_ntop.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file path.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file pgsleep.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file pthread-win32.h $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file thread.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file win32error.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file cipher.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file dirmod.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_env_r.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file gs_strerror.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file inet_aton.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file noblock.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file pgstrcasecmp.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file strlcpy.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file win32env.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
copy_file win32setlocale.cpp $SRC_DIR/common/port $LIBPQ_WIN32_DIR/src/common/port
# copy from prepared directory
copy_file pg_config_paths.h $PREPARED_DIR/include $LIBPQ_WIN32_DIR/src/common/port
}
function copy_makefiles()
{
copy_file Makefile $PREPARED_DIR $LIBPQ_WIN32_DIR
copy_file CMakeLists.txt $PREPARED_DIR $LIBPQ_WIN32_DIR
}
function generate_libpq_export_files()
{
copy_file auth.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file be-fsstubs.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file guc_vars.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-be.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-int.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqformat.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file be-fsstubs.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file hba.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-events.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file md5.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqsignal.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file cl_state.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file ip.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-fe.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqcomm.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file sha2.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file crypt.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file libpq-fs.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file pqexpbuffer.h $LIBPQ_WIN32_DIR/include/libpq $EXPORT_DIR/include/libpq
copy_file gs_thread.h $LIBPQ_WIN32_DIR/include $EXPORT_DIR/include
copy_file postgres_ext.h $LIBPQ_WIN32_DIR/include $EXPORT_DIR/include
copy_file gs_threadlocal.h $LIBPQ_WIN32_DIR/include $EXPORT_DIR/include
if [ ! -d "$EXPORT_DIR"/lib ];then
$MD $EXPORT_DIR/lib
fi
}
### function ###
function __main__()
{
echo "Start."
echo -n "Step[1] - initialize libpq project directory for Windows ... "
init_win_project
echo "done."
echo -n "Step[2] - copy libpq header files ... "
copy_headers
echo "done."
echo -n "Step[3] - copy libpq source code files ... "
copy_codes
echo "done."
echo -n "Step[4] - prepare Makefile && CMakeLists.txt files for compilation ... "
copy_makefiles
echo "done."
echo -n "Step[5] - generate export directory and files ... "
generate_libpq_export_files
echo "done."
echo "Done."
}
function __clean__()
{
$RM $LIBPQ_WIN32_DIR/include
$RM $LIBPQ_WIN32_DIR/lib
$RM $LIBPQ_WIN32_DIR/libpq-export
$RM $LIBPQ_WIN32_DIR/src
$RM $LIBPQ_WIN32_DIR/CMakeLists.txt
$RM $LIBPQ_WIN32_DIR/Makefile
}
### main ###
if [ $# -eq 0 ];then
__main__
exit 0
fi
if [ $# -eq 1 -a "x$1" = "xclean" ];then
__clean__
exit 0
fi
echo "Usage: \"sh $0\" for initialization or \"sh $0 clean\" for cleaning."