Attached patch for mingw builds using autoconf/automake scripts. Patch is
separated by some commits.
From 54e4756f1bd8dce672b10e24bac8419ec8faace7 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Thu, 20 Nov 2014 20:18:32 +0300
Subject: [PATCH] Fix conflict between mingw defines and keywords defines.

---
 src/dsql/Parser.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/dsql/Parser.h b/src/dsql/Parser.h
index 7ac5780..d6b04b7 100644
--- a/src/dsql/Parser.h
+++ b/src/dsql/Parser.h
@@ -35,6 +35,12 @@
 #include "../common/classes/Nullable.h"
 #include "../common/classes/stack.h"
 
+// ntsecapi.h from mingw-w64 already define STRING
+// gen/parse.h have it's own define for STRING
+#ifdef STRING
+#undef STRING
+#endif
+
 #include "gen/parse.h"
 
 namespace Jrd {
-- 
2.2.0

From 309c65796d772150c249659f79f6d84dd9985d30 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Mon, 24 Nov 2014 22:12:17 +0300
Subject: [PATCH] mingw-w64 have matherr routine

---
 src/extlib/ib_udf.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/extlib/ib_udf.cpp b/src/extlib/ib_udf.cpp
index fc6d69c..5a6f21b 100644
--- a/src/extlib/ib_udf.cpp
+++ b/src/extlib/ib_udf.cpp
@@ -50,10 +50,12 @@ extern "C"
 #else
 #define exception_type __exception
 #endif
+#ifndef matherr
 int MATHERR(struct exception_type*)
 {
        return 1;
 }
+#endif
 #undef exception_type
 #endif // SOLARIS
 #endif //__ICC
-- 
2.2.0

From e705380c785638ef80fa737b8e7a4654c85986ab Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Fri, 28 Nov 2014 12:28:31 +0300
Subject: [PATCH] Fix linkng error for mingw.

---
 src/utilities/install/services.cpp |  2 ++
 1 files changed, 2 insertions(+)

diff --git a/src/utilities/install/services.cpp 
b/src/utilities/install/services.cpp
index 04abff3..f28e7fa 100644
--- a/src/utilities/install/services.cpp
+++ b/src/utilities/install/services.cpp
@@ -563,6 +563,7 @@ USHORT SERVICES_grant_access_rights(const char* 
service_name, const TEXT* accoun
 // Until the fb_assert could be converted to a function/object linked with 
each module
 // we need this ugly workaround.
 //
+#ifndef __MINGW32__
 extern "C" void API_ROUTINE gds__log(const TEXT* text, ...)
 {
        va_list ptr;
@@ -572,6 +573,7 @@ extern "C" void API_ROUTINE gds__log(const TEXT* text, ...)
        va_end(ptr);
        printf("\n\n");
 }
+#endif
 
 //
 // EOF
-- 
2.2.0

From 24cb71b609b43165672c75278985388b033f1806 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Sun, 30 Nov 2014 15:26:04 +0300
Subject: [PATCH] DLL's are in BIN folder.

---
 builds/posix/make.defaults | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
index 90724e6..bd6f8cb
--- a/builds/posix/make.defaults
+++ b/builds/posix/make.defaults
@@ -203,7 +203,7 @@ include $(ROOT)/gen/Make.Version
 
 vpath %.so $(LIB)
 vpath %.a $(LIB)
-vpath %.dll $(LIB)
+vpath %.dll $(BIN)
 
 #_____________________________________________________________________________
 
-- 
2.2.0

From a1b086945a7ed8952b3a4075d7badb18618dbdfb Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Sun, 30 Nov 2014 15:08:19 +0300
Subject: [PATCH] Auto detect WINDRES with autoconf.
Fix building .rc files.

---
 builds/posix/make.defaults |  4 +++-
 builds/posix/make.rules    |  4 ++--
 builds/posix/make.shared.targets | 14 +++++++-------
 configure.ac               | 10 ++++++++++
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
index 7ed6ec0..90724e6
--- a/builds/posix/make.defaults
+++ b/builds/posix/make.defaults
@@ -151,9 +151,11 @@ ECHO=                      echo
 QUIET_ECHO=            @echo
 CD=                    cd
 CAT=                   cat
-AR=                    ar @AR_OPTIONS@
+AR=                    @AR@ @AR_OPTIONS@
 LN=                    @LN_S@
+DLLTOOL=                       @DLLTOOL@
 RANLIB=                        @RANLIB@
+RC=                    @RC@
 BTYACC=$(ROOT)/extern/btyacc/btyacc
 
 CC =   @CC@
diff --git a/builds/posix/make.rules b/builds/posix/make.rules
index ac717d1..01d9910 100644
--- a/builds/posix/make.rules
+++ b/builds/posix/make.rules
@@ -103,4 +103,4 @@ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp
 # Rules for making resource files
 
-$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc
-       windres --output-format=coff --include-dir=$(<D) $< $@
+$(OBJ)/%.res: $(SRC_ROOT)/%.rc
+       $(RC) --output-format=coff --include-dir=$(<D) $< $@
diff --git a/builds/posix/make.shared.targets b/builds/posix/make.shared.targets
index 07afa91..62097a7 100644
--- a/builds/posix/make.shared.targets
+++ b/builds/posix/make.shared.targets
@@ -75,16 +75,16 @@ $(OBJ)/dsql/PackageNodes.cpp: 
$(SRC_ROOT)/dsql/PackageNodes.epp
 
 # Adding resources as prerequisite for some files
 
-$(FilesToAddVersionInfo): $(GEN_ROOT)/jrd/version.res
-$(FilesToAddDialog): $(GEN_ROOT)/remote/os/win32/window.res
-$(FilesToAddDialog2): $(GEN_ROOT)/iscguard/iscguard.res
+$(FilesToAddVersionInfo): $(OBJ)/jrd/version.res
+$(FilesToAddDialog): $(OBJ)/remote/server/os/win32/window.res
+$(FilesToAddDialog2): $(OBJ)/iscguard/iscguard.res
 
 # Explicit dependence of resource script
-$(GEN_ROOT)/remote/os/win32/window.res: $(SRC_ROOT)/remote/os/win32/window.rc 
$(SRC_ROOT)/remote/os/win32/window.rh \
- $(SRC_ROOT)/jrd/version.rc $(SRC_ROOT)/jrd/build_no.h 
$(SRC_ROOT)/remote/os/win32/property.rc \
- $(SRC_ROOT)/remote/os/win32/property.rh
+$(OBJ)/remote/server/os/win32/window.res: 
$(SRC_ROOT)/remote/server/os/win32/window.rc 
$(SRC_ROOT)/remote/server/os/win32/window.rh \
+ $(SRC_ROOT)/jrd/version.rc $(SRC_ROOT)/jrd/build_no.h 
$(SRC_ROOT)/remote/server/os/win32/property.rc \
+ $(SRC_ROOT)/remote/server/os/win32/property.rh
 
-$(GEN_ROOT)/iscguard/iscguard.res: $(SRC_ROOT)/iscguard/iscguard.rc 
$(SRC_ROOT)/iscguard/iscguard.rh \
+$(OBJ)/iscguard/iscguard.res: $(SRC_ROOT)/iscguard/iscguard.rc 
$(SRC_ROOT)/iscguard/iscguard.rh \
  $(SRC_ROOT)/jrd/version.rc
 
 .PHONY: FORCE
diff --git a/configure.ac b/configure.ac
index 7491444..d153b44 100644
--- a/configure.ac
+++ b/configure.ac
@@ -680,6 +680,16 @@ AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 LT_INIT([dlopen win32-dll])
+if test $PLATFORM = win32; then
+  # Checks for mingw resource compiler.
+  AC_CHECK_PROGS([RC],
+     [$target-windres \
+      windres])
+  
+  if test -z "${RC}"; then
+    AC_MSG_ERROR(windres command is not found.);
+  fi
+fi
 
 dnl Check for system header files
 AC_HEADER_DIRENT
-- 
2.2.0

From 9977b806d9da94725c49887016cd88d79c14a66d Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Wed, 19 Nov 2014 08:59:48 +0300
Subject: [PATCH] Define AMD64 for 64-bit mingw.

---
 configure.ac | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/configure.ac b/configure.ac
index ea1b81a..8db3f4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -468,6 +468,11 @@ dnl CPU_TYPE=ppc64
     EDITLINE_FLG=N
     RAW_DEVICES_FLG=N
     SHRLIB_EXT=dll
+    case "$target" in
+        x86_64-*-mingw*)
+            AC_DEFINE(AMD64, 1, [Define this if CPU is amd64])
+        ;;
+    esac
     ;;
 
   *)
-- 
2.2.0

From df3755c079857c16be06b17d17cd47d6f484f62d Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Wed, 19 Nov 2014 23:16:18 +0300
Subject: [PATCH] Use mingw-w64 crt for Vista and later. Remove unneeded 
flag "-Dlint"

---
 builds/posix/prefix.mingw | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw
index 5f8dde8..c469cb8 100644
--- a/builds/posix/prefix.mingw
+++ b/builds/posix/prefix.mingw
@@ -20,8 +20,8 @@
 # 
 
 # -Wno-unused-variable is used due to unused gpre generated variables
-PROD_FLAGS=-O2  -DMINGW -Wall -Wshadow -Wundef -Wno-long-long 
-Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch 
-fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads 
-Wno-non-virtual-dtor
-DEV_FLAGS=-ggdb -DMINGW -Wall -Wshadow -Wundef -Wno-long-long 
-Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch 
-fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads 
-Wno-non-virtual-dtor
+PROD_FLAGS=-O2  -DMINGW -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef 
-Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses 
-Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads 
-Wno-non-virtual-dtor
+DEV_FLAGS=-ggdb -DMINGW -D_WIN32_WINNT=0x0600 -Wall -Wshadow -Wundef 
-Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses 
-Wno-switch -fmessage-length=0 -DWIN32_LEAN_AND_MEAN -MMD -mthreads 
-Wno-non-virtual-dtor
 
 PLATFORM_PATH=os/win32
 
-- 
2.2.0

From dca9b4a320ec175c841a0818cf2884a4a82013b7 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Thu, 20 Nov 2014 07:31:40 +0300
Subject: [PATCH] Add AuthSspi to remote common - needed for win32 target.

---
 builds/posix/make.shared.variables | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builds/posix/make.shared.variables 
b/builds/posix/make.shared.variables
index 2d3143f..53597e6 100644
--- a/builds/posix/make.shared.variables
+++ b/builds/posix/make.shared.variables
@@ -52,7 +52,7 @@ AllObjects += $(YValve_Objects)
 
 
 # Remote
-Remote_Common:= $(call dirObjects,remote) $(call 
dirObjects,auth/SecureRemotePassword)
+Remote_Common:= $(call dirObjects,remote) $(call 
dirObjects,auth/SecureRemotePassword) $(call dirObjects,auth/trusted)
 Remote_Server:= $(call dirObjects,remote/server) $(call 
dirObjects,auth/SecureRemotePassword/server)
 Remote_Client:= $(call dirObjects,remote/client) $(call 
dirObjects,auth/SecureRemotePassword/client) \
                                $(call 
makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \
-- 
2.2.0

From 6c42accb286598f4d8e7749b8e320c869c811e15 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Mon, 24 Nov 2014 09:08:35 +0300
Subject: [PATCH] Some utilities need to link with additional windows libraries

---
 builds/posix/Makefile.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in
index 86ea5da..34cafdc 100644
--- a/builds/posix/Makefile.in
+++ b/builds/posix/Makefile.in
@@ -357,7 +357,7 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr 
fbtracemgr gbak gfix g
 firebird_server:       $(FB_DAEMON)
 
 $(FB_DAEMON):  $(Remote_Server_Objects) $(COMMON_LIB)
-       $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) 
$(LINK_LIBS)
+       $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) 
$(LINK_LIBS) $(LIB_GUI)
 
 fb_lock_print: $(LOCKPRINT)
 
@@ -367,7 +367,7 @@ $(LOCKPRINT):       $(LOCKPRINT_Objects) $(COMMON_LIB)
 fbguard:               $(FBGUARD)
 
 $(FBGUARD):            $(FBGUARD_Objects) $(COMMON_LIB)
-       $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) 
$(LINK_LIBS)
+       $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) 
$(LINK_LIBS) $(LIB_GUI)
 
 fbsvcmgr:              $(FBSVCMGR)
 
-- 
2.2.0

From 2da7f65171d99bfcd666c5b84419d295fdebd039 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Mon, 24 Nov 2014 10:10:35 +0300
Subject: [PATCH] Fix linking executables and libraries with resources.
 Generate proper import libraries.

---
 builds/posix/make.defaults |  9 +++++----
 builds/posix/Makefile.in.plugins_examples | 2 +-
 builds/posix/prefix.mingw  | 34 ++++++++++++++++++--------------------
 3 files changed, 17 insertions(+), 28 deletions(-)

diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
index 1a091f6..b2d8939
--- a/builds/posix/make.defaults
+++ b/builds/posix/make.defaults
@@ -215,7 +215,7 @@ vpath %.dll $(LIB)
 #
 
 #LibraryFileName=libfbclient
-LibraryFileName=libfbclient
+LibraryFileName=$(LIB_PREFIX)fbclient
 LibraryFullName=$(LibraryFileName).${SHRLIB_EXT}.${FirebirdVersion}
 LibrarySoName=$(LibraryFileName).${SHRLIB_EXT}.2
 LibraryBaseName=$(LibraryFileName).${SHRLIB_EXT}
@@ -226,7 +226,7 @@ LIBFIREBIRD_BASENAME = $(LIB)/$(LibrarySoName)
 
 # The firebird engine library name
 
-EngineFileName=libEngine${OdsVersion}
+EngineFileName=$(LIB_PREFIX)Engine${OdsVersion}
 EngineSoName=$(EngineFileName).${SHRLIB_EXT}
 ENGINE_SONAME = $(PLUGINS)/$(EngineSoName)
 
@@ -287,6 +287,7 @@ else
 endif
 LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl)
 LIB_LINK_SONAME= -Wl,-soname,$(1)
+LIB_LINK_IMPLIB=
 LIB_LINK_MAPFILE= -Wl,--version-script,$(1)
 FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB)
 
@@ -301,7 +302,7 @@ LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call 
LIB_LINK_SONAME,$(1).$(SHRLIB_
 LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util
 
 LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) 
$(UNDEF_FLAGS)\
- $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) 
$(call LIB_LINK_IMPLIB,$(LIB)/lib$(IbUtilLibraryName).a)
 LINK_IB_UTIL_LIBS = $(THR_LIBS)
 
 LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) 
$(UNDEF_FLAGS)\
@@ -313,7 +314,7 @@ LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) 
$(LIB_LINK_OPTIONS) $(UNDEF_FLAG
 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)
+ $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) $(call 
LIB_LINK_IMPLIB,$(LIB)/lib$(LibraryBaseName).a)
 LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB)
 
 LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) 
$(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
diff --git a/builds/posix/Makefile.in.plugins_examples 
b/builds/posix/Makefile.in.plugins_examples
index a5331c8..7b3f8b0 100644
--- a/builds/posix/Makefile.in.plugins_examples
+++ b/builds/posix/Makefile.in.plugins_examples
@@ -66,7 +66,7 @@ ifeq ($(PLATFORM),DARWIN)
        $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ 
@PTHREAD_LIBS@ \
                $(FIREBIRD_LIBRARY_LINK)
 else
-       $(LIB_LINK) $(LIB_LINK_OPTIONS) 
$(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \
+       $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call 
LIB_LINK_SONAME,$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)) \
                $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) 
$(PLUGINS)/$(LIB_PREFIX)udr_engine.$(SHRLIB_EXT) \
                $(FIREBIRD_LIBRARY_LINK)
 endif
diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw
index 626e90c..1754712 100644
--- a/builds/posix/prefix.mingw
+++ b/builds/posix/prefix.mingw
@@ -28,42 +28,32 @@ PLATFORM_PATH=os/win32
 # Override link command for implicit stdc++ linking
 LIB_LINK=$(LD)
 
-LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup
-
 # Strip symbols from release versions to decrease size
 ifeq ($(IsProdTypeBuild),Y)
 EXE_LINK_OPTIONS+=-Wl,-s
 LIB_LINK_OPTIONS+=-Wl,-s
 endif
 
-# Generation of fbclient_ms.lib
-LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib
 LIB_GUI:= -mwindows -lcomctl32 -lgdi32
 
 # Add resources to some files
-FilesToAddVersionInfo=$(LIBFBEMBED_SO) $(LIBFBCLIENT_SO) $(LIBFBINTL_SO) \
- $(GSTAT) $(GSEC) $(GFIX) $(QLI) $(ISQL) $(GBAK) $(GPRE)
+FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) 
$(LIBFBINTL_SO) \
+ $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \
+ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP)
 # TODO: guardians also must be here
-FilesToAddDialog=$(FB_SUPER_SERVER) $(FB_CLASSIC_SERVER)
-FilesToAddDialog2=$(IBGUARD)
+FilesToAddDialog=$(FB_DAEMON)
+FilesToAddDialog2=$(FBGUARD)
 
 # Suppress 'lib'-prefix
 LIB_PREFIX=
 
 # Override library names to suppress version suffix
-ClientLibraryNameFull := $(ClientLibraryName)
-ClientLibrarySoName := $(ClientLibraryName)
+LibrarySoName := $(LibraryBaseName)
+LibraryFullName := $(LibraryBaseName)
+LIBFIREBIRD_FULLNAME = $(BIN)/$(LibraryBaseName)
+LIBFIREBIRD_SONAME = $(LIBFIREBIRD_FULLNAME)
+LIBFIREBIRD_BASENAME = $(LIBFIREBIRD_FULLNAME)
+LIBIBUTIL_SO = $(BIN)/$(IbUtilLibraryName)
 
-# Looks like MinGW 3 does not support version scripts but support def-files
-LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def 
$(BLD_ROOT)/win32/defs/fbclient.def
-
-# This is required for newly built executable to find newly built shared
-# libraries because on Win32 there is no such thing as LD_LIBRARY_PATH
-LIB=$(BIN)
+LIB_LINK_IMPLIB= -Wl,--out-implib,$(1)
 
-# Special options for UDF link
-LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call 
LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) -L$(LIB) -lib_util
-LINK_UDF_LIBS = 
-
-# Special options for trace plugin link
-LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS)
-- 
2.2.0

From c07f3dacc132799ac4300b1e65369c895f2bd4d9 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Mon, 24 Nov 2014 11:12:17 +0300
Subject: [PATCH] Windows have another sources for FBGUARD.

---
 builds/posix/make.shared.variables | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/builds/posix/make.shared.variables 
b/builds/posix/make.shared.variables
index 53597e6..ef25f37 100644
--- a/builds/posix/make.shared.variables
+++ b/builds/posix/make.shared.variables
@@ -122,7 +122,11 @@ AllObjects += $(LOCKPRINT_Objects)
 
 
 # Guardian
+ifeq ($(PLATFORM),win32)
+FBGUARD_Objects:= $(call dirObjects,iscguard) $(call 
makeObjects,remote/server/os/win32,chop.cpp)
+else
 FBGUARD_Objects:= $(call dirObjects,utilities/guard)
+endif
 
 AllObjects += $(FBGUARD_Objects)
 
-- 
2.2.0

From aede726ceaa9cf25424806a0ba438c1216bc0675 Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Thu, 27 Nov 2014 15:57:53 +0300
Subject: [PATCH] Do not install posix scripts for win32 platform.

---
 configure.ac | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 8db3f4c..7491444 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1163,6 +1163,7 @@ if test "x$CROSS" != "x"; then
 AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS])
 fi
 
+if test "$PLATFORM" != "win32"; then
 AC_CONFIG_FILES([
 gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in
 
gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in
@@ -1176,8 +1177,9 @@ 
gen/Release/firebird/bin/taruninstall.sh:builds/install/posix-common/taruninstal
 
gen/Release/firebird/bin/tarMainUninstall.sh:builds/install/posix-common/tarMainUninstall.sh.in
 
gen/Release/firebird/bin/changeServerMode.sh:builds/install/posix-common/changeServerMode.sh.in
 
gen/Release/firebird/bin/registerDatabase.sh:builds/install/posix-common/registerDatabase.sh.in
-gen/vers.sh:builds/posix/vers.sh.in
 ])
+fi
+AC_CONFIG_FILES(gen/vers.sh:builds/posix/vers.sh.in)
 
 dnl: Platform Specific Files
 
@@ -1272,6 +1274,11 @@ case "$PLATFORM" in
 
   DARWIN)
     ;;
+  win32)
+    
AC_CONFIG_FILES(gen/install/install_classic.bat:builds/install/arch-specific/win32/install_classic.bat
+                     
gen/install/install_super.bat:builds/install/arch-specific/win32/install_super.bat
+                     
gen/install/uninstall.bat:builds/install/arch-specific/win32/uninstall.bat)
+    ;;
 esac
 if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then
        
POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX}
-- 
2.2.0

From 37c6bc45973bc4a83a6f4c9dfb6143eceebde8ea Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Thu, 27 Nov 2014 17:04:52 +0300
Subject: [PATCH] Use variables everywhere.

---
 builds/posix/Makefile.in.examples | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builds/posix/Makefile.in.examples 
b/builds/posix/Makefile.in.examples
index 12c454e..544be0a 100644
--- a/builds/posix/Makefile.in.examples
+++ b/builds/posix/Makefile.in.examples
@@ -123,7 +123,7 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)%
 
 $(EMPLOYEE_DB):        $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) 
$(EXAMPLES_DEST)/isql$(EXEC_EXT)
        -$(RM) $(EMPLOYEE_DB)
-       ./empbuild $(EMPLOYEE_DB)
+       $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(EMPLOYEE_DB)
        $(GFIX) -write sync $(EMPLOYEE_DB)
        -$(CHMOD_6) $(EMPLOYEE_DB)
 
@@ -147,9 +147,9 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql 
$(EXAMPLES_DEST)/emp
 # the intlemp.fdb database.
 
 $(EXAMPLES_DEST)/intlemp.fdb:  $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) 
$(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
-       -$(RM) intlemp.fdb
-       ./intlbld intlemp.fdb
-       -$(CHMOD_6) intlemp.fdb
+       -$(RM) $(EXAMPLES_DEST)/intlemp.fdb
+       $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) intlemp.fdb
+       -$(CHMOD_6) $(EXAMPLES_DEST)/intlemp.fdb
 
 $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB)
        $(EXE_LINK) $(EXE_LINK_OPTIONS) @^ -o $@ -L$(LIB) 
$(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
@@ -157,8 +157,8 @@ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) 
$(COMMON_LIB)
 $(EXAMPLES_DEST)/intlbld.c:    $(EXAMPLES_DEST)/intlbuild.fdb 
$(EXAMPLES_DEST)/intlbld.e
 
 $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql 
$(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
-       -$(RM) intlbuild.fdb
-       $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql
+       -$(RM) $(EXAMPLES_DEST)/intlbuild.fdb
+       $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i $(EXAMPLES_DEST)/intlbld.sql
 
 
 $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql
-- 
2.2.0

From e705380c785638ef80fa737b8e7a4654c85986ab Mon Sep 17 00:00:00 2001
From: Alexpux <[email protected]>
Date: Fri, 28 Nov 2014 12:28:31 +0300
Subject: [PATCH] Build windows specific utilities for mingw.

---
 builds/posix/Makefile.in           | 26 ++++++++++++++++++++++++++
 builds/posix/make.defaults         |  1 +
 builds/posix/make.shared.variables |  9 +++++++++
 builds/posix/prefix.mingw          |  3 ++-
 4 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in
index 34cafdc..effbefb 100644
--- a/builds/posix/Makefile.in
+++ b/builds/posix/Makefile.in
@@ -160,6 +160,9 @@ endif
        $(MAKE) plugins
        $(MAKE) examples
        $(MAKE) rest
+ifeq ($(PLATFORM), win32)
+       $(MAKE) helpers
+endif
 
 
 cross_process:
@@ -416,6 +419,29 @@ $(NBACKUP):                $(NBACKUP_Objects) $(COMMON_LIB)
 
 
 #___________________________________________________________________________
+# install helpers - utilities for Windows to install/uninstall services and etc
+#
+
+.PHONY:        instclient instreg instsvc
+
+helpers: instclient instreg instsvc
+
+instclient: $(INSTCLI)
+
+$(INSTCLI):    $(INSTCLIENT_Objects)
+       $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
+
+instreg: $(INSTREG)
+
+$(INSTREG):    $(INSTREG_Objects)
+       $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
+
+instsvc: $(INSTSVC)
+
+$(INSTSVC):    $(INSTSVC_Objects) $(YValve_Objects) $(Common_Objects) 
$(Remote_Client_Objects)
+       $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ -L$(LIB) $(LINK_LIBS) 
$(MATHLIB)
+
+#___________________________________________________________________________
 # plugins - some of them are required to build examples, use separate entry 
for them
 #
 
diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
index 0c4fbd8..7ed6ec0
--- a/builds/posix/make.defaults
+++ b/builds/posix/make.defaults
@@ -348,6 +348,7 @@ GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT)
 FBGUARD                = $(BIN)/fbguard$(EXEC_EXT)
 IBGUARD                = $(BIN)/ibguard$(EXEC_EXT)
 FBMGR_BIN      = $(BIN)/fbmgr.bin$(EXEC_EXT)
+INSTCLI                = $(BIN)/instclient$(EXEC_EXT)
 INSTREG                = $(BIN)/instreg$(EXEC_EXT)
 INSTSVC                = $(BIN)/instsvc$(EXEC_EXT)
 
diff --git a/builds/posix/make.shared.variables 
b/builds/posix/make.shared.variables
index ef25f37..18903b9 100644
--- a/builds/posix/make.shared.variables
+++ b/builds/posix/make.shared.variables
@@ -219,3 +219,12 @@ AllObjects += $(CODES_Objects)
 BUILD_Objects:= $(call makeObjects,msgs,build_file.epp)
 
 AllObjects += $(BUILD_Objects)
+
+# Install helpers
+ifeq ($(PLATFORM),win32)
+INSTCLIENT_Objects:= $(call makeObjects,utilities/install,install.cpp 
install_client.cpp)
+INSTREG_Objects:= $(call makeObjects,utilities/install,install_reg.cpp 
registry.cpp)
+INSTSVC_Objects:= $(call makeObjects,utilities/install,install_svc.cpp 
services.cpp)
+
+AllObjects += $(INSTCLIENT_Objects) $(INSTREG_Objects) $(INSTSVC_Objects)
+endif
diff --git a/builds/posix/prefix.mingw b/builds/posix/prefix.mingw
index 1754712..c2bd068 100644
--- a/builds/posix/prefix.mingw
+++ b/builds/posix/prefix.mingw
@@ -41,7 +41,8 @@ LIB_GUI:= -mwindows -lcomctl32 -lgdi32
 # Add resources to some files
 FilesToAddVersionInfo=$(FBTRACEMGR) $(LIBFIREBIRD_FULLNAME) $(ENGINE_SONAME) 
$(LIBFBINTL_SO) \
  $(FBSVCMGR) $(FBTRACEMGR) $(FBTRACE) $(FBUDF_SO) $(LIBIBUTIL_SO) \
- $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP)
+ $(GBAK) $(GFIX) $(GPRE) $(GSEC) $(GSPLIT) $(GSTAT) $(QLI) $(ISQL) $(NBACKUP) \
+ $(INSTCLI) $(INSTREG) $(INSTSVC)
 # TODO: guardians also must be here
 FilesToAddDialog=$(FB_DAEMON)
 FilesToAddDialog2=$(FBGUARD)
-- 
2.2.0
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to