mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-02-02 10:00:38 +01:00
Make posix build use libtomcrypt from extern or system.
This commit is contained in:
parent
24db8f62ac
commit
98702b9cda
@ -35,7 +35,8 @@ BuildRootDir=..
|
||||
BuiltFBDir=Release/firebird # Where the just build fb exists.
|
||||
TargetDir=buildroot # Where we want to build the install image
|
||||
SecurityDatabase=security4.fdb
|
||||
TomBuild="@TOMBUILD@"
|
||||
TomMathBuild="@TOMMATH_BUILD@"
|
||||
TomCryptBuild="@TOMCRYPT_BUILD@"
|
||||
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
@ -235,11 +236,16 @@ copyFiles() {
|
||||
cp -df $BuiltFBDir/lib/libfbclient.so* ${TargetDir}@FB_LIBDIR@
|
||||
cp -f $BuiltFBDir/lib/libib_util.so ${TargetDir}@FB_LIBDIR@/libib_util.so
|
||||
|
||||
if [ "$TomBuild" = "Y" ]; then
|
||||
if [ "$TomMathBuild" = "Y" ]; then
|
||||
makeDirs @FB_LIBDIR@/.tm
|
||||
cp -df $BuildRootDir/extern/libtommath/.libs/libtommath.so* ${TargetDir}@FB_LIBDIR@/.tm
|
||||
fi
|
||||
|
||||
if [ "$TomCryptBuild" = "Y" ]; then
|
||||
makeDirs @FB_LIBDIR@/.tm
|
||||
cp -df $BuildRootDir/extern/libtomcrypt/.libs/libtomcrypt.so* ${TargetDir}@FB_LIBDIR@/.tm
|
||||
fi
|
||||
|
||||
chmod 0755 ${TargetDir}@FB_LIBDIR@/*.so*
|
||||
|
||||
#plugins
|
||||
|
@ -219,10 +219,15 @@ checkLibrary() {
|
||||
#------------------------------------------------------------------------
|
||||
# Make sure we have required libraries installed
|
||||
checkLibraries() {
|
||||
if [ "@TOMBUILD@" != "Y" ]
|
||||
if [ "@TOMMATH_BUILD@" != "Y" ]
|
||||
then
|
||||
checkLibrary tommath
|
||||
fi
|
||||
|
||||
if [ "@TOMCRYPT_BUILD@" != "Y" ]
|
||||
then
|
||||
checkLibrary tomcrypt
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
@ -137,12 +137,18 @@ external:
|
||||
$(MAKE) -C $(ROOT)/extern/decNumber
|
||||
ln -sf $(ROOT)/extern/decNumber/libdecFloat.a $(LIB)
|
||||
|
||||
ifeq ($(TOMBUILD_FLG),Y)
|
||||
ifeq ($(TOMMATH_BUILD_FLG),Y)
|
||||
CFLAGS="$(CFLAGS)" $(MAKE) -C $(ROOT)/extern/libtommath -f makefile.shared GCC=$(GCC)
|
||||
ln -sf $(TOMMATH_SO).$(TOMMATH_VER) $(LIB)
|
||||
ln -sf $(TOMMATH_SO) $(LIB)
|
||||
endif
|
||||
|
||||
ifeq ($(TOMCRYPT_BUILD_FLG),Y)
|
||||
CFLAGS="$(CFLAGS)" $(MAKE) -C $(ROOT)/extern/libtomcrypt -f makefile.shared GCC=$(GCC)
|
||||
ln -sf $(TOMCRYPT_SO).$(TOMCRYPT_VER) $(LIB)
|
||||
ln -sf $(TOMCRYPT_SO) $(LIB)
|
||||
endif
|
||||
|
||||
ifeq ($(STD_EDITLINE),false)
|
||||
ifeq ($(EDITLINE_FLG),Y)
|
||||
$(MAKE) -f $(GEN_ROOT)/Makefile.extern.editline
|
||||
@ -164,12 +170,26 @@ export_lists: $(ALLVERS)
|
||||
#
|
||||
|
||||
.PHONY: tommath
|
||||
TOMLIB=$(LIB)/libtommath.a
|
||||
TOMMATH_LIB=$(LIB)/libtommath.a
|
||||
TOM_Objs=$(addprefix ../extern/libtommath/,$(call doObjects,$(call dirFiles,../extern/libtommath)))
|
||||
|
||||
tommath: $(TOMLIB)
|
||||
tommath: $(TOMMATH_LIB)
|
||||
|
||||
$(TOMLIB): $(TOM_Objs)
|
||||
$(TOMMATH_LIB): $(TOM_Objs)
|
||||
-$(RM) $@
|
||||
$(STATICLIB_LINK) $@ $^
|
||||
|
||||
#___________________________________________________________________________
|
||||
# LibTomCrypt - used by cross-builds
|
||||
#
|
||||
|
||||
.PHONY: tomcrypt
|
||||
TOMCRYPT_LIB=$(LIB)/libtomcrypt.a
|
||||
TOM_Objs=$(addprefix ../extern/libtomcrypt/,$(call doObjects,$(call dirFiles,../extern/libtomcrypt)))
|
||||
|
||||
tomcrypt: $(TOMCRYPT_LIB)
|
||||
|
||||
$(TOMCRYPT_LIB): $(TOM_Objs)
|
||||
-$(RM) $@
|
||||
$(STATICLIB_LINK) $@ $^
|
||||
|
||||
@ -243,6 +263,7 @@ cross2:
|
||||
ln -sf $(SRC_ROOT)/include/cross/$(CROSS_CONFIG) $(SRC_ROOT)/include/gen/autoconfig.h
|
||||
$(MAKE) prerequisites
|
||||
$(MAKE) tommath
|
||||
$(MAKE) tomcrypt
|
||||
$(MAKE) yvalve
|
||||
$(MAKE) engine
|
||||
$(MAKE) fbintl
|
||||
@ -665,7 +686,7 @@ install install-embedded silent_install package packages dist:
|
||||
|
||||
clean: clean_objects clean_dependancies clean_extern_objects clean_build \
|
||||
clean_yacc_gen clean_gpre_gen clean_dbs clean_examples clean_tommath \
|
||||
clean_decfloat
|
||||
clean_tomcrypt clean_decfloat
|
||||
|
||||
ifeq ($(EDITLINE_FLG),Y)
|
||||
ifeq ($(STD_EDITLINE),false)
|
||||
@ -705,6 +726,9 @@ clean_editline:
|
||||
clean_tommath:
|
||||
-$(MAKE) -C $(ROOT)/extern/libtommath clean
|
||||
|
||||
clean_tomcrypt:
|
||||
-$(MAKE) -C $(ROOT)/extern/libtomcrypt clean
|
||||
|
||||
clean_decfloat:
|
||||
-$(MAKE) -C $(ROOT)/extern/decNumber clean
|
||||
|
||||
|
@ -48,7 +48,8 @@ LNG_ROOT=$(ROOT)/lang_helpers
|
||||
EXA_ROOT=$(ROOT)/examples
|
||||
|
||||
IsCross=@IS_CROSS@
|
||||
TOMBUILD_FLG=@TOMBUILD@
|
||||
TOMMATH_BUILD_FLG=@TOMMATH_BUILD@
|
||||
TOMCRYPT_BUILD_FLG=@TOMCRYPT_BUILD@
|
||||
|
||||
FB_BUILD=$(GEN_ROOT)/$(TARGET)/firebird
|
||||
ifeq ($(IsCross), Y)
|
||||
@ -134,6 +135,9 @@ CAS_OPTIONS=@CAS_OPTIONS@
|
||||
MATHLIB=@MATHLIB@
|
||||
DECLIB=-ldecFloat
|
||||
|
||||
# crypt library
|
||||
CRYPTLIB=@CRYPTLIB@
|
||||
|
||||
LSB_FLG=@LSB_FLG@
|
||||
ifeq ($(LSB_FLG), Y)
|
||||
LSB_UNDEF=-Wl,--allow-shlib-undefined
|
||||
@ -256,6 +260,12 @@ TOMMATH_INC=$(TOMMATH)
|
||||
TOMMATH_SO=$(TOMMATH)/.libs/libtommath.so
|
||||
TOMMATH_VER=0
|
||||
|
||||
# Own tomcrypt support
|
||||
TOMCRYPT=$(ROOT)/extern/libtomcrypt
|
||||
TOMCRYPT_INC=$(TOMCRYPT)/src/headers
|
||||
TOMCRYPT_SO=$(TOMCRYPT)/.libs/libtomcrypt.so
|
||||
TOMCRYPT_VER=0
|
||||
|
||||
# LINKER OPTIONS
|
||||
#
|
||||
|
||||
@ -296,7 +306,7 @@ endif
|
||||
LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl)
|
||||
LIB_LINK_SONAME= -Wl,-soname,$(1)
|
||||
LIB_LINK_MAPFILE= -Wl,--version-script,$(1)
|
||||
FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB)
|
||||
FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB) $(CRYPTLIB)
|
||||
|
||||
EXE_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(LINK_EMPTY_SYMBOLS)
|
||||
LIB_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) -shared
|
||||
@ -322,7 +332,7 @@ LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS)
|
||||
|
||||
LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
|
||||
$(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib)
|
||||
LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB)
|
||||
LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) $(CRYPTLIB)
|
||||
|
||||
LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
|
||||
$(call LIB_LINK_SONAME,$(EngineSoName)) $(call LIB_LINK_RPATH,lib)
|
||||
|
@ -34,10 +34,14 @@
|
||||
# Please don't use compiler/platform specific flags here - nmcc 02-Nov-2002
|
||||
WFLAGS =-I$(SRC_ROOT)/include/gen -I$(SRC_ROOT)/include $(CPPFLAGS)
|
||||
|
||||
ifeq ($(TOMBUILD_FLG),Y)
|
||||
ifeq ($(TOMMATH_BUILD_FLG),Y)
|
||||
WFLAGS += -I$(TOMMATH_INC)
|
||||
endif
|
||||
|
||||
ifeq ($(TOMCRYPT_BUILD_FLG),Y)
|
||||
WFLAGS += -I$(TOMCRYPT_INC)
|
||||
endif
|
||||
|
||||
ifeq ($(LSB_FLG),Y)
|
||||
WFLAGS += -DLSB_BUILD
|
||||
endif
|
||||
|
38
configure.ac
38
configure.ac
@ -525,11 +525,17 @@ AC_ARG_WITH(cross-build,
|
||||
IS_CROSS=Y])
|
||||
AC_SUBST(IS_CROSS)
|
||||
|
||||
TOMBUILD=N
|
||||
TOMMATH_BUILD=N
|
||||
AC_ARG_WITH(builtin-tommath,
|
||||
[ --with-builtin-tommath build libtommath library from firebird tree],
|
||||
[TOMBUILD=Y])
|
||||
AC_SUBST(TOMBUILD)
|
||||
[TOMMATH_BUILD=Y])
|
||||
AC_SUBST(TOMMATH_BUILD)
|
||||
|
||||
TOMCRYPT_BUILD=N
|
||||
AC_ARG_WITH(builtin-tomcrypt,
|
||||
[ --with-builtin-tomcrypt build libtomcrypt library from firebird tree],
|
||||
[TOMCRYPT_BUILD=Y])
|
||||
AC_SUBST(TOMCRYPT_BUILD)
|
||||
|
||||
dnl Avoid dumb '-g -O2' autoconf's default
|
||||
dnl Debugging information and optimization flags should be set in prefix.$platform file
|
||||
@ -582,9 +588,10 @@ AC_ARG_ENABLE(lsb-build,
|
||||
esac])
|
||||
AC_SUBST(LSB_FLG)
|
||||
if test "$LSB_FLG" = "Y"; then
|
||||
CFLAGS="$CFLAGS --lsb-besteffort --lsb-shared-libs=fbclient:ib_util:tommath --lsb-target-version=4.1"
|
||||
CXXFLAGS="$CXXFLAGS --lsb-besteffort --lsb-shared-libs=fbclient:ib_util:tommath --lsb-target-version=4.1"
|
||||
AC_SUBST(TOMBUILD, Y)
|
||||
CFLAGS="$CFLAGS --lsb-besteffort --lsb-shared-libs=fbclient:ib_util:tommath:tomcrypt --lsb-target-version=4.1"
|
||||
CXXFLAGS="$CXXFLAGS --lsb-besteffort --lsb-shared-libs=fbclient:ib_util:tommath:tomcrypt --lsb-target-version=4.1"
|
||||
AC_SUBST(TOMMATH_BUILD, Y)
|
||||
AC_SUBST(TOMCRYPT_BUILD, Y)
|
||||
AC_PATH_PROG(CC, lsbcc, "", [$PATH$PATH_SEPARATOR/opt/lsb/bin$PATH_SEPARATOR])
|
||||
AC_PATH_PROG(CXX, lsbc++, "", [$PATH$PATH_SEPARATOR/opt/lsb/bin$PATH_SEPARATOR])
|
||||
if test "x$CC" = "x" || test "x$CXX" = "x" ; then
|
||||
@ -812,7 +819,7 @@ AC_CHECK_LIB(icuuc, main, ICU_OK=yes, AC_MSG_ERROR(ICU support not found - pleas
|
||||
fi
|
||||
|
||||
dnl check for tommath presence
|
||||
if test "$TOMBUILD" = "Y"; then
|
||||
if test "$TOMMATH_BUILD" = "Y"; then
|
||||
MATHLIB=-ltommath
|
||||
else
|
||||
AC_CHECK_HEADER(tommath.h,,
|
||||
@ -825,6 +832,23 @@ else
|
||||
fi
|
||||
AC_SUBST(MATHLIB)
|
||||
|
||||
dnl check for tomcrypt presence
|
||||
if test "$TOMCRYPT_BUILD" = "Y"; then
|
||||
CRYPTLIB=-ltomcrypt
|
||||
else
|
||||
XE_SAVE_ENV()
|
||||
CFLAGS="$CFLAGS -DLTC_NO_ASM"
|
||||
AC_CHECK_HEADER(tomcrypt.h,,
|
||||
AC_MSG_ERROR(Include file for tomcrypt not found - please install development tomcrypt package or use --with-builtin-tomcrypt))
|
||||
XE_RESTORE_ENV()
|
||||
XE_SAVE_ENV()
|
||||
LIBS=
|
||||
AC_CHECK_LIB(tomcrypt, sha1_init, CRYPTLIB=-ltomcrypt,
|
||||
AC_MSG_ERROR(Library tomcrypt not found - please install development tomcrypt package or use --with-builtin-tomcrypt))
|
||||
XE_RESTORE_ENV()
|
||||
fi
|
||||
AC_SUBST(CRYPTLIB)
|
||||
|
||||
dnl Check for libraries
|
||||
AC_SEARCH_LIBS(dlopen, dl)
|
||||
AC_CHECK_LIB(m, main)
|
||||
|
@ -24,7 +24,11 @@
|
||||
|
||||
#include "firebird.h"
|
||||
#include "../common/classes/Hash.h"
|
||||
#include "../common/tomcrypt/tomcrypt.h"
|
||||
|
||||
#if !defined(__GNUC__) || defined(__clang__)
|
||||
#define LTC_NO_ASM // disable ASM in tomcrypt headers
|
||||
#endif
|
||||
#include <tomcrypt.h>
|
||||
|
||||
using namespace Firebird;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user