summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej J.R. Hunt <andrzej@ahunt.org>2013-07-05 14:30:45 +0100
committerAndrzej J.R. Hunt <andrzej@ahunt.org>2013-07-05 14:30:45 +0100
commit98824cb62ddfc247971b3fe444067f88e00ebb93 (patch)
tree0216efa9ab5fd9cc5d6906b097575f56c405d230
parent0981fd7a1f054f8344b5e525d3a79f0fd23ec9af (diff)
Patch Firebird to build on cygwin/msvc.
Change-Id: I56669eb98cdd3c6fab756898664751c349e8988e
-rw-r--r--firebird/ExternalPackage_firebird.mk5
-rw-r--r--firebird/ExternalProject_firebird.mk10
-rw-r--r--firebird/UnpackedTarball_firebird.mk5
-rw-r--r--firebird/firebird-cygwin-msvc.patch.11242
4 files changed, 1258 insertions, 4 deletions
diff --git a/firebird/ExternalPackage_firebird.mk b/firebird/ExternalPackage_firebird.mk
index 0a003d65266d..844678a57962 100644
--- a/firebird/ExternalPackage_firebird.mk
+++ b/firebird/ExternalPackage_firebird.mk
@@ -41,8 +41,13 @@ $(eval $(call gb_ExternalPackage_use_external_project,firebird,firebird))
$(eval $(call gb_ExternalPackage_set_outdir,firebird,$(INSTDIR)))
+ifeq ($(OS)-$(COM),WNT-MSC)
+$(eval $(call gb_ExternalPackage_add_file,firebird,ifbembed.dll,gen/firebird/bin/ifbembed.dll))
+$(eval $(call gb_ExternalPackage_add_file,firebird,ifbembed.lib,gen/firebird/bin/ifbembed.lib))
+else
$(eval $(call gb_ExternalPackage_add_file,firebird,libfbembed.so.2.5.2,gen/firebird/lib/libfbembed.so.2.5.2))
$(eval $(call gb_ExternalPackage_add_file,firebird,libfbembed.so.2.5,gen/firebird/lib/libfbembed.so.2.5))
$(eval $(call gb_ExternalPackage_add_file,firebird,libfbembed.so,gen/firebird/lib/libfbembed.so))
+endif
# vim: set noet sw=4 ts=4:
diff --git a/firebird/ExternalProject_firebird.mk b/firebird/ExternalProject_firebird.mk
index ca28dbb85197..8853ecadb1a6 100644
--- a/firebird/ExternalProject_firebird.mk
+++ b/firebird/ExternalProject_firebird.mk
@@ -33,14 +33,17 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
$(call gb_ExternalProject_run,build,\
unset MAKEFLAGS \
&& export PKG_CONFIG="" \
- && export CXXFLAGS="-L$(OUTDIR)/lib \
+ && export CXXFLAGS=" \
$(if $(filter NO,$(SYSTEM_BOOST)),-I$(call gb_UnpackedTarball_get_dir,boost),$(BOOST_CPPFLAGS)) \
$(if $(filter NO,$(SYSTEM_ICU)), \
-I$(call gb_UnpackedTarball_get_dir,icu)/source \
-I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \
-I$(call gb_UnpackedTarball_get_dir,icu)/source/common \
- ,$(ICU_CPPFLAGS))" \
- && export LD_LIBRARY_PATH="$(OUTDIR)/lib" \
+ ,$(ICU_CPPFLAGS)) \
+ -L$(OUTDIR)/lib \
+ -L$(call gb_UnpackedTarball_get_dir,boost)/source/lib" \
+ && export LD_LIBRARY_PATH="$(OUTDIR)/lib:$(call gb_UnpackedTarball_get_dir,boost)/source/lib" \
+ && export PATH="$(PATH):$(shell cygpath $(OUTDIR)/lib):$(shell cygpath $(call gb_UnpackedTarball_get_dir,icu)/source/lib)" \
&& ./configure \
--without-editline \
--disable-superserver \
@@ -50,5 +53,4 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
$(if $(filter IOS ANDROID,$(OS)),--disable-shared,--disable-static) \
&& $(MAKE) firebird_embedded \
)
-
# vim: set noet sw=4 ts=4:
diff --git a/firebird/UnpackedTarball_firebird.mk b/firebird/UnpackedTarball_firebird.mk
index 6ecc5fec8678..b37cebbfdc2d 100644
--- a/firebird/UnpackedTarball_firebird.mk
+++ b/firebird/UnpackedTarball_firebird.mk
@@ -15,4 +15,9 @@ $(eval $(call gb_UnpackedTarball_add_patches,firebird,\
firebird/firebird-icu.patch.1 \
))
+ifeq ($(OS)-$(COM),WNT-MSC)
+$(eval $(call gb_UnpackedTarball_add_patches,firebird,\
+ firebird/firebird-cygwin-msvc.patch.1 \
+))
+endif
# vim: set noet sw=4 ts=4:
diff --git a/firebird/firebird-cygwin-msvc.patch.1 b/firebird/firebird-cygwin-msvc.patch.1
new file mode 100644
index 000000000000..4a2b71401ac6
--- /dev/null
+++ b/firebird/firebird-cygwin-msvc.patch.1
@@ -0,0 +1,1242 @@
+diff -u firebird/builds/posix/make.defaults firebird/builds/posix/make.defaults
+--- firebird/builds/posix/make.defaults 2013-07-03 16:23:44.804062000 +0100
++++ firebird/builds/posix/make.defaults 2013-07-05 12:30:01.607151400 +0100
+@@ -49,7 +49,11 @@
+
+ FIREBIRD=$(GEN_ROOT)/firebird
+ INTERBASE=$(FIREBIRD)
++ifeq (@PLATFORM@,win32)
++FIREBIRD_LOCK=$(shell cygpath -w $(shell cd $(FIREBIRD); pwd) )
++else
+ FIREBIRD_LOCK=$(shell cd $(FIREBIRD); pwd)
++endif
+
+ export INTERBASE
+ export FIREBIRD
+@@ -135,7 +139,11 @@
+ CD= cd
+ CAT= cat
+ AR= ar @AR_OPTIONS@ crsu
++ifeq (@PLATFORM@,win32)
++LN= cp
++else
+ LN= @LN_S@
++endif
+ RANLIB= @RANLIB@
+ BTYACC=$(ROOT)/extern/btyacc/btyacc
+
+@@ -152,16 +160,28 @@
+ STATICEXE_LINK:= @CXX@ $(GLOB_OPTIONS) $(CXXFLAGS)
+
+ LINK_LIBS = @LIBS@
++ifeq ($(PLATFORM),win32)
++ICU_LIBS = -licuuc -licudt -licui
++else
+ ICU_LIBS = -licuuc -licudata -licui18n
++endif
+ STATICLINK_LIBS = @LIBS@
+ SO_LINK_LIBS = @LIBS@
+
+ # Default extensions
+
++ifeq (@PLATFORM@,win32)
++ARCH_EXT= .lib
++else
+ ARCH_EXT= .a
++endif
+ EXEC_EXT= @EXEEXT@
+ SHRLIB_EXT=@SHRLIB_EXT@
++ifeq (@PLATFORM@,win32)
++LIB_PREFIX=
++else
+ LIB_PREFIX= lib
++endif
+ SHRLIB_FOREIGN_EXT= $(SHRLIB_EXT)
+
+ #_____________________________________________________________________________
+@@ -179,6 +199,7 @@
+ vpath %.so $(LIB)
+ vpath %.a $(LIB)
+ vpath %.dll $(LIB)
++vpath %.lib $(LIB)
+
+ #_____________________________________________________________________________
+
+@@ -193,9 +214,9 @@
+ # Scold me, but I don't want library names to be in configure.in
+ #
+
+-SharedLibraryName=libfbembed.${SHRLIB_EXT}.${FirebirdVersion}
+-SharedLibrarySoName=libfbembed.${SHRLIB_EXT}.${MajorVer}.${MinorVer}
+-SharedLibraryBaseName=libfbembed.${SHRLIB_EXT}
++SharedLibraryName=ifbembed.${SHRLIB_EXT}
++SharedLibrarySoName=ifbembed.${SHRLIB_EXT}
++SharedLibraryBaseName=ifbembed.${SHRLIB_EXT}
+
+ LIBFBEMBED_SO = $(LIB)/$(SharedLibraryName)
+ LIBFBEMBED_SOBASENAME = $(LIB)/$(SharedLibrarySoName)
+@@ -219,7 +240,11 @@
+
+ LIBFBINTL_SO = $(FIREBIRD)/intl/$(LIB_PREFIX)fbintl.$(SHRLIB_EXT)
+
++ifeq ($(PLATFORM),win32)
++LIBFBSTATIC_A = $(LIB)/fbstatic.lib
++else
+ LIBFBSTATIC_A = $(LIB)/libfbstatic.a
++endif
+
+ ifeq ($(EDITLINE_FLG),Y)
+ ifeq ($(STD_EDITLINE), true)
+unchanged:
+--- firebird.org/builds/posix/make.rules 2013-06-26 10:05:19.351343000 +0100
++++ firebird/builds/posix/make.rules 2013-07-02 10:17:28.056489400 +0100
+@@ -46,7 +46,7 @@
+ endif
+
+ WCFLAGS:= $(WFLAGS) $(THR_FLAGS) $(CFLAGS) $(GLOB_OPTIONS)
+-WCXXFLAGS:= $(WFLAGS) $(THR_FLAGS) $(CXXFLAGS) $(GLOB_OPTIONS)
++WCXXFLAGS:= $(WFLAGS) $(CXXFLAGS) $(GLOB_OPTIONS) $(THR_FLAGS)
+
+ # Here we have definitions for using the preprocessor.
+
+@@ -69,6 +69,13 @@
+ JRD_GPRE_FLAGS = -n -z -gds_cxx -raw -ids
+ DSQL_GPRE_FLAGS = -r -m -z -n
+
++ifeq ($(PLATFORM),win32)
++CC_OUTPUT_FLAG = -Fo
++EXECUTABLE_OUTPUT_FLAG = -Fe
++else
++CC_OUTPUT_FLAG = -o
++EXECUTABLE_OUTPUT_FLAG = -o
++endif
+
+ .SUFFIXES: .c .e .epp .cpp
+
+@@ -89,27 +96,27 @@
+ .SUFFIXES: .lo .o .cpp .c
+
+ $(OBJ)/jrd/%.o: $(SRC_ROOT)/jrd/$(PLATFORM_PATH)/%.cpp
+- $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
++ $(CXX) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCXXFLAGS)
+
+ $(OBJ)/utilities/ntrace/%.o: $(SRC_ROOT)/utilities/ntrace/$(PLATFORM_PATH)/%.cpp
+- $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
++ $(CXX) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCXXFLAGS)
+
+ ifneq ($(strip $(PLATFORM_FALLBACK)),)
+ $(OBJ)/jrd/%.o: $(SRC_ROOT)/jrd/$(PLATFORM_FALLBACK)/%.cpp
+- $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
++ $(CXX) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCXXFLAGS)
+
+ $(OBJ)/utilities/ntrace/%.o: $(SRC_ROOT)/utilities/ntrace/$(PLATFORM_FALLBACK)/%.cpp
+- $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
++ $(CXX) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCXXFLAGS)
+ endif
+
+ $(OBJ)/%.o: $(SRC_ROOT)/%.c
+- $(CC) $(WCFLAGS) -c $(firstword $<) -o $@
++ $(CC) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCFLAGS)
+
+ $(OBJ)/%.o: $(OBJ)/%.cpp
+- $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
++ $(CXX) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCXXFLAGS)
+
+ $(OBJ)/%.o: $(SRC_ROOT)/%.cpp
+- $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
++ $(CXX) -c $(firstword $<) $(CC_OUTPUT_FLAG)$@ $(WCXXFLAGS)
+
+ .SUFFIXES: .epp .e
+
+unchanged:
+--- firebird.org/builds/posix/make.shared.targets 2013-06-26 10:05:19.351343000 +0100
++++ firebird/builds/posix/make.shared.targets 2013-07-01 10:55:25.435124900 +0100
+@@ -29,7 +29,11 @@
+ #
+ #
+
+-
++ifeq ($(PLATFORM),win32)
++EXECUTABLE_OUTPUT_FLAG = -Fe
++else
++EXECUTABLE_OUTPUT_FLAG = -o
++endif
+ #-----------------------------------------------------------
+ # Amongst a number of makefiles some of the targets have
+ # specific rules. Rather than duplicate the rules in a
+@@ -89,7 +93,7 @@
+ $(BLRTABLE) > $(SRC_ROOT)/include/gen/blrtable.h
+
+ $(BLRTABLE): $(BLRTABLE_Objects)
+- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ $(LINK_OPTS) $(GLOB_OPTIONS) $(CXXFLAGS) -L$(LIB) $(LINK_LIBS)
+
+ # Adding resources as prerequisite for some files
+
+unchanged:
+--- firebird.org/builds/posix/make.shared.variables 2013-06-26 10:05:19.351343000 +0100
++++ firebird/builds/posix/make.shared.variables 2013-07-04 08:12:24.432879700 +0100
+@@ -291,7 +291,8 @@
+ OS_SPECIFIC_Sources += $(ROOT)/extern/binreloc/binreloc.c
+ endif
+ OS_SPECIFIC_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(OS_SPECIFIC_Sources))))
+-
++#FBCOMMON_ClientFiles+=$(OS_SPECIFIC_Files)
++#FBCOMMON_Objects+=$(OS_SPECIFIC_Objects)
+
+ #________________________________________________________________________
+ #
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.boot.gpre 2013-06-26 10:05:19.351343000 +0100
++++ firebird/builds/posix/Makefile.in.boot.gpre 2013-06-29 10:18:48.380186000 +0100
+@@ -76,7 +76,7 @@
+ gpre_boot : $(GPRE_BOOT)
+
+ $(GPRE_BOOT): $(GPREBOOT_Objects)
+- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
++ $(LD) $(EXECUTABLE_OUTPUT_FLAG) -Fe$@ $^ -L$(LIB) -doff $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS)
+ -$(RM) $(GPRE_CURRENT)
+ (cd $(@D); $(LN) $(@F) $(notdir $(GPRE_CURRENT)))
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.client.util 2013-06-26 10:05:19.351343000 +0100
++++ firebird/builds/posix/Makefile.in.client.util 2013-07-01 06:24:30.937646200 +0100
+@@ -145,75 +145,75 @@
+ nbackup: $(LIBFBCLIENT_SO) $(NBACKUP)
+
+ $(NBACKUP): $(NBACKUP_Objects) $(CLUMPLETS_Objects) $(COMMON_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LINK_LIBS)
+
+ fb_lock_print: $(LIBFBCLIENT_SO) $(LOCKPRINT)
+
+ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LINK_LIBS)
+
+
+ gstat : $(LIBFBCLIENT_SO) $(GSTAT)
+
+ $(GSTAT): $(GSTAT_Objects) $(CLUMPLETS_Objects) $(COMMON_Objects) $(FBCONFIG_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LINK_LIBS)
+
+
+ gds_drop: $(GDS_DROP)
+
+ $(GDS_DROP): $(DROP_Objects) $(LIBFBCLIENT_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(DROP_Objects) -o $@ -L$(LIB) -lfbclient $(LINK_LIBS)
++ $(EXE_LINK) $(DROP_Objects) $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LINK_LIBS)
+
+
+ fbsvcmgr: $(FBSVCMGR)
+
+ $(FBSVCMGR): $(FBSVCMGR_Objects) $(LIBFBCLIENT_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) $(LINK_LIBS)
+
+
+ fbtracemgr: $(FBTRACEMGR)
+
+ $(FBTRACEMGR): $(FBTRACEMGR_Objects) $(LIBFBCLIENT_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) $(LINK_LIBS)
+
+
+ fbguard: $(LIBFBCLIENT_SO) $(FBGUARD)
+
+ $(FBGUARD): $(FBGUARD_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LIB_GUI) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LIB_GUI) $(LINK_LIBS)
+
+
+ ibguard: $(LIBFBCLIENT_SO) $(IBGUARD)
+
+ $(IBGUARD): $(IBGUARD_A_Objects) $(IBGUARD_B_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(FBCLASSES_Objects) $(FBCOMMON_Objects) -lfbclient \
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ -L$(LIB) $(FBCLASSES_Objects) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS)$(FBCOMMON_Objects) -lfbclient \
+ $(LIB_GUI) $(LINK_LIBS)
+
+
+ fbmgr_bin: $(FBMGR_BIN)
+
+ $(FBMGR_BIN): $(FBMGR_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(FBCLASSES_Objects) $(FBCOMMON_Objects) -lfbclient \
++ $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ -L$(LIB) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBCLASSES_Objects) $(FBCOMMON_Objects) -lfbclient \
+ $(LINK_LIBS)
+
+
+ instreg: $(INSTREG)
+
+ $(INSTREG): $(INSTREG_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ -L$(LIB) $(LINK_LIBS) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS)
+
+
+ instsvc: $(INSTSVC)
+
+ $(INSTSVC): $(INSTSVC_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ -L$(LIB) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(LINK_LIBS)
+
+ # This one needs a bit of work.
+
+ rebuild: $(GDS_REBUILD)
+
+ $(GDS_REBUILD): $(REBUILD_Objects) $(LIBFBCLIENT_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(REBUILD_Objects) -o $@ -L$(LIB) -lfbclient $(LINK_LIBS)
++ $(EXE_LINK) $(REBUILD_Objects) $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LINK_LIBS)
+
+ include $(ROOT)/gen/make.shared.targets
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.codes 2013-06-26 10:05:19.351343000 +0100
++++ firebird/builds/posix/Makefile.in.codes 2013-07-03 16:29:45.287324700 +0100
+@@ -62,7 +62,7 @@
+ $(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
+
+ $(BIN)/codes$(EXEC_EXT): $(CODES_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+
+
+ # Rebuild ids.h
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.embed.gdef 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.embed.gdef 2013-07-01 06:43:13.162649600 +0100
+@@ -63,7 +63,7 @@
+ gdef: $(GDEF)
+
+ $(GDEF): $(GDEF_Objects) $(CLUMPLETS_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.embed.gfix 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.embed.gfix 2013-07-01 06:42:56.860620900 +0100
+@@ -59,7 +59,7 @@
+ gfix : $(LIBFBEMBED_SO) $(GFIX)
+
+ $(GFIX): $(AllObjects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ include $(ROOT)/gen/make.shared.targets
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.embed.gpre 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.embed.gpre 2013-07-01 06:42:39.507726200 +0100
+@@ -58,7 +58,7 @@
+ gpre : $(LIBFBEMBED_SO) $(GPRE)
+
+ $(GPRE): $(GPRE_Objects) $(CLUMPLETS_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ include $(ROOT)/gen/make.shared.targets
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.embed.isql 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.embed.isql 2013-07-01 06:41:27.102820600 +0100
+@@ -59,7 +59,7 @@
+ isql : $(LIBFBEMBED_SO) $(ISQL)
+
+ $(ISQL): $(ISQL_Objects) $(CLUMPLETS_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LIBEDITLINE) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LIBEDITLINE) $(LINK_LIBS)
+
+
+ include $(ROOT)/gen/make.shared.targets
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.embed.qli 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.embed.qli 2013-07-01 06:41:01.690376000 +0100
+@@ -61,7 +61,7 @@
+ qli : create_yachts $(LIBFBEMBED_SO) $(QLI)
+
+ $(QLI): $(QLI_Objects) $(CLUMPLETS_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+ # EKU: At this point yachts.lnk is a link to empty.fdb, but gpre will fail
+ # with it. metadata.fdb is what is needed here.
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.embed.util 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.embed.util 2013-07-01 06:40:25.950713200 +0100
+@@ -139,68 +139,68 @@
+ nbackup: $(LIBFBEMBED_SO) $(NBACKUP)
+
+ $(NBACKUP): $(NBACKUP_Objects) $(CLUMPLETS_Objects) $(COMMON_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ fb_lock_print: $(LIBFBEMBED_SO) $(LOCKPRINT)
+
+ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ gstat : $(LIBFBEMBED_SO) $(GSTAT)
+
+ $(GSTAT): $(GSTAT_Objects) $(CLUMPLETS_Objects) $(COMMON_Objects) $(FBCONFIG_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ gds_drop: $(GDS_DROP)
+
+ $(GDS_DROP): $(DROP_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ fbsvcmgr: $(FBSVCMGR)
+
+ $(FBSVCMGR): $(FBSVCMGR_Objects) $(LIBFBEMBED_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ fbtracemgr: $(FBTRACEMGR)
+
+ $(FBTRACEMGR): $(FBTRACEMGR_Objects) $(LIBFBEMBED_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ gds_relay: $(GDS_RELAY)
+
+ $(GDS_RELAY): $(RELAY_Objects) $(LIBFBEMBED_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(RELAY_Objects) -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $(RELAY_Objects) $^ $(EXECUTABLE_OUTPUT_FLAG) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ gsec: $(GSEC)
+
+ $(GSEC): $(GSEC_Objects) $(CLUMPLETS_Objects) $(COMMON_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+
+ fbguard: $(LIBFBCLIENT_SO) $(FBGUARD)
+
+ $(FBGUARD): $(FBGUARD_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LIB_GUI) $(LINK_LIBS)
++ $(EXE_LINK) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) -L$(LIB) -lfbclient $(LIB_GUI) $(LINK_LIBS)
+
+
+ ibmgr_bin: $(IBMGR_BIN)
+
+ $(IBMGR_BIN): $(IBMGR_Objects) $(LIBFBEMBED_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(IBMGR_Objects) -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $(IBMGR_Objects) $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+ # This one needs a bit of work.
+
+ rebuild: $(GDS_REBUILD)
+
+ $(GDS_REBUILD): $(REBUILD_Objects) $(LIBFBEMBED_SO)
+- $(EXE_LINK) $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(REBUILD_Objects) -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
++ $(EXE_LINK) $(REBUILD_Objects) $^ $(EXECUTABLE_OUTPUT_FLAGS) $@ $(LINK_EMPTY_SYMBOLS) $(LINK_OPTS) $(FBEMBED_LINK) $(LINK_LIBS)
+
+ include $(ROOT)/gen/make.shared.targets
+
+unchanged:
+--- firebird/builds/posix/Makefile.in.examples 2013-07-04 14:22:42.262676600 +0100
++++ firebird/builds/posix/Makefile.in.examples 2013-07-05 10:14:02.897675100 +0100
+@@ -64,10 +64,13 @@
+ EXAMPLES_DEST= $(GEN_ROOT)/examples
+ EXAMPLES_SRC= $(ROOT)/examples
+
+-
++ifeq ($(PLATFORM),win32)
++EMPBLD_Objects= $(EXAMPLES_DEST)/empbuild.obj
++INTLBLD_Objects= $(EXAMPLES_DEST)/intlbld.obj
++else
+ EMPBLD_Objects= $(EXAMPLES_DEST)/empbuild.o
+-
+ INTLBLD_Objects= $(EXAMPLES_DEST)/intlbld.o
++endif
+
+ INPUT_Files = empddl.sql empdml.sql indexoff.sql indexon.sql \
+ job.inp lang.inp proj.inp qtr.inp
+@@ -128,7 +131,11 @@
+ -$(LN) $(ISQL_STATIC) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+
+ $(EXAMPLES_DEST)/empbuild$(EXEC_EXT): $(EMPBLD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
++ifeq (@PLATFORM@,win32)
++ @CXX@ $ $(EMPBLD_Objects) $(COMMON_Objects) $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS)
++else
+ $(EXE_LINK) $(LINK_OPTS) $(EMPBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
++endif
+
+ $(EXAMPLES_DEST)/empbuild.c: $(EXAMPLES_DEST)/empbuild.fdb $(EXAMPLES_DEST)/empbuild.e
+
+@@ -146,7 +153,11 @@
+ -$(CHMOD_6) intlemp.fdb
+
+ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
++ifeq (@PLATFORM@,win32)
++ @CXX@ $(INTLBLD_Objects) $(COMMON_Objects) $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS)
++else
+ $(EXE_LINK) $(LINK_OPTS) $(INTLBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
++endif
+
+ $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_DEST)/intlbuild.fdb $(EXAMPLES_DEST)/intlbld.e
+
+@@ -168,0 +180,3 @@
++
++$(EXAMPLES_DEST)/%.obj: $(EXAMPLES_DEST)/%.c
++ $(CC) -c $(firstword $<) -Fo$@ $(WCFLAGS)
+\ No newline at end of file
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.extlib 2013-06-26 10:05:19.366787100 +0100
++++ firebird/builds/posix/Makefile.in.extlib 2013-07-04 12:31:37.591067100 +0100
+@@ -76,14 +76,20 @@
+ lib_ib_udf: $(LIBIBUTIL_SO) $(UDF)/ib_udf.$(SHRLIB_EXT)
+
+ $(UDF)/ib_udf.$(SHRLIB_EXT): $(UDF_Objects)
+- $(call LINK_UDF,ib_udf) -o $@ $^ $(LINK_UDF_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -LD -L$(LIB) $(GLOB_OPTIONS) $(CXXFLAGS) -lib_util \
++ $(LINK_UDF_LIBS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,ib_udf.$(SHRLIB_EXT))\
++ $(call LIB_LINK_RPATH,lib) \
++ /link /dll
+
+ # ib_util
+
+ lib_ib_util: $(LIBIBUTIL_SO)
+
+ $(LIBIBUTIL_SO): $(UTIL_Objects)
+- $(LINK_IB_UTIL) -o $@ $^ $(LINK_IB_UTIL_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -LD \
++ $(call LIB_LINK_RPATH,lib) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_IBUTIL_SYMBOLS) \
++ $(LIB_LINK_OPTIONS) $(LINK_IB_UTIL_LIBS) $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) \
++ /link /dll
+
+ include $(ROOT)/gen/make.shared.targets
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.firebird 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.firebird 2013-07-04 18:36:17.079544900 +0100
+@@ -145,7 +145,8 @@
+
+ firebird : firebird_@FIREBIRD_ARCH_TYPE@ $(PLATFORM_POSTBUILD_TARGET)
+
+-firebird_classic firebird_embedded: firebird_basic classic_targets fbtrace
++firebird_classic firebird_embedded: firebird_basic classic_targets
++#fbtrace
+ firebird_super firebird_server: firebird_basic super_targets fbtrace
+
+
+@@ -201,7 +202,11 @@
+ btyacc_binary: $(BTYACC)
+
+ $(BTYACC):
++ifeq ($(PLATFORM),win32)
++ $(MAKE) -f $(ROOT)/extern/btyacc/makefile.dos
++else
+ $(MAKE) -C $(ROOT)/extern/btyacc
++endif
+
+ #---------------------------------------------------------------------------
+ # Phase1: make a gpre_static from scratch so we can parse .e and .epp files
+@@ -331,8 +336,9 @@
+ .PHONY: libfbembed inet_server fb_smp_server embed_gfix embed_gbak embed_isql
+ .PHONY: embed_gpre embed_util
+
+-classic_targets: $(PLAT_CLASSIC_PRE_TARGET) libfbembed inet_server fb_smp_server embed_gfix embed_gbak embed_isql \
+- embed_gpre libfbclient embed_util embed_gdef embed_qli embed_fbudf $(PLAT_CLASSIC_POST_TARGET)
++classic_targets: $(PLAT_CLASSIC_PRE_TARGET) libfbembed
++#inet_server fb_smp_server embed_gfix embed_gbak embed_isql \
++# embed_gpre libfbclient embed_util embed_gdef embed_qli embed_fbudf $(PLAT_CLASSIC_POST_TARGET)
+
+ libfbembed:
+ $(MAKE) $(CPU_OPTION) -f $(GEN_ROOT)/Makefile.libfbembed $@
+@@ -446,7 +452,11 @@
+ MAKE_HEADER_Bin = ./makeHeader
+
+ $(INCLUDE_DEST)/ibase.h: $(SRC_IBASE_ExtraFiles)
++ifeq (@PLATFORM@,win32)
++ @CXX@ $(MAKE_HEADER_Src) $(EXECUTABLE_OUTPUT_FLAG)$(MAKE_HEADER_Bin) $(GLOB_OPTIONS) $(CXXFLAGS)
++else
+ $(STATICEXE_LINK) -o $(MAKE_HEADER_Bin) $(MAKE_HEADER_Src)
++endif
+ $(CP) $^ .
+ $(MAKE_HEADER_Bin) <ibase.h >$@
+ $(RM) -f ibase.h
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.intl 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.intl 2013-07-04 12:26:09.029586700 +0100
+@@ -81,8 +81,13 @@
+ libfbintl : $(LIBFBINTL_SO)
+
+ $(LIBFBINTL_SO): $(INTL_Objects) $(FBCOMMON_ClientObjects) $(FBCLASSES_ClientObjects)
++ifeq (@PLATFORM@,win32)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -LD $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_INTL_LIBS)\
++ $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) -lfbstatic $(call LIB_LINK_SONAME,libintl.$(SHRLIB_EXT).1)\
++ $(call LIB_LINK_RPATH,lib) /link /dll
++else
+ $(LINK_INTL) -o $@ $^ $(LINK_INTL_LIBS)
+-
++endif
+
+ include $(ROOT)/gen/make.shared.targets
+
+diff -u firebird/builds/posix/Makefile.in.libfbembed firebird/builds/posix/Makefile.in.libfbembed
+--- firebird/builds/posix/Makefile.in.libfbembed 2013-07-04 17:51:37.197367500 +0100
++++ firebird/builds/posix/Makefile.in.libfbembed 2013-07-05 12:55:58.287451400 +0100
+@@ -62,13 +62,19 @@
+ libfbembed : $(LIBIBUTIL_SO) $(LIBFBEMBED_SONAME)
+
+ $(LIBFBEMBED_SO): $(LIBFBEMBED_Objects) $(SERVER_Objects) $(COMMON_Objects)
++ifeq ($(PLATFORM),win32)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ $(LINK_EMBED_LIBS) $(GLOB_OPTIONS) $(CXXFLAGS)\
++ $(LINK_FIREBIRD_EMBED_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_EMBED_LINK_OPTIONS)\
++ $(call LIB_LINK_SONAME,$(SharedLibrarySoName)) $(call LIB_LINK_RPATH,lib)
++else
+ $(LINK_EMBED) -o $@ $^ $(LINK_EMBED_LIBS)
++endif
+
+ $(LIBFBEMBED_SOBASENAME): $(LIBFBEMBED_SO)
+- (cd $(LIB) && $(LN) -f $(SharedLibraryName) $(SharedLibrarySoName) )
++# (cd $(LIB) && $(LN) -f $(SharedLibraryName) $(SharedLibrarySoName) )
+
+ $(LIBFBEMBED_SONAME): $(LIBFBEMBED_SOBASENAME)
+- (cd $(LIB) && $(LN) -f $(SharedLibrarySoName) $(SharedLibraryBaseName) )
++# (cd $(LIB) && $(LN) -f $(SharedLibrarySoName) $(SharedLibraryBaseName) )
+
+ include $(ROOT)/gen/make.shared.targets
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.libfbstatic 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.libfbstatic 2013-07-03 16:23:14.103208000 +0100
+@@ -57,9 +57,9 @@
+ # will not be different from the above fbmem_boot.a library
+ # compile time macros being the main (if there) difference
+
+-libfbstatic: $(PARSE_Sources) $(LIB)/libfbstatic.a
++libfbstatic: $(PARSE_Sources) $(LIB)/$(LIB_PREFIX)fbstatic$(ARCH_EXT)
+
+-$(LIB)/libfbstatic.a: $(LIBFBSTATIC_Objects)
++$(LIB)/$(LIB_PREFIX)fbstatic$(ARCH_EXT): $(LIBFBSTATIC_Objects)
+ -$(RM) $@
+ $(AR) $@ $^
+ -$(RANLIB) $@
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.msgs 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.msgs 2013-07-03 15:57:24.494213200 +0100
+@@ -98,28 +98,28 @@
+ check_messages : $(CHECK_MESSAGES)
+
+ $(CHECK_MESSAGES): $(CHECK_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $(CHECK_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $(CHECK_Objects) $(COMMON_Objects) $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS)
+ $(CHMOD_7) $@
+
+
+ build_file : $(BUILD_FILE)
+
+ $(BUILD_FILE): $(BUILD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $(BUILD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $(BUILD_Objects) $(COMMON_Objects) $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS)
+ $(CHMOD_7) $@
+
+
+ enter_messages : $(ENTER_MESSAGES)
+
+ $(ENTER_MESSAGES): $(ENTER_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $(ENTER_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $(ENTER_Objects) $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) -lfbstatic $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+ $(CHMOD_7) $@
+
+
+ modify_messages: $(MODIFY_MESSAGES)
+
+ $(MODIFY_MESSAGES): $(MODIFY_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $(MODIFY_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $(MODIFY_Objects) $(COMMON_Objects) $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) -lfbstatic $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+ $(CHMOD_7) $@
+
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.static.createdb 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.static.createdb 2013-07-02 16:25:50.422666900 +0100
+@@ -58,7 +58,7 @@
+ create_db: $(CREATE_DB)
+
+ $(CREATE_DB): $(CREATEDB_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+
+
+ include $(ROOT)/gen/make.shared.targets
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.static.gbak 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.static.gbak 2013-07-03 15:31:36.176227100 +0100
+@@ -59,7 +59,7 @@
+ gbak_static : $(GBAK_STATIC)
+
+ $(GBAK_STATIC) : $(AllObjects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+
+
+ include $(ROOT)/gen/make.shared.targets
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.static.gpre 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.static.gpre 2013-07-02 16:17:07.248351900 +0100
+@@ -59,7 +59,7 @@
+ gpre_static : $(GPRE_STATIC)
+
+ $(GPRE_STATIC): $(GPRESTATIC_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+ -$(RM) $(GPRE_CURRENT)
+ (cd $(@D); $(LN) $(@F) $(notdir $(GPRE_CURRENT)))
+
+unchanged:
+--- firebird.org/builds/posix/Makefile.in.static.isql 2013-06-26 10:05:19.382231200 +0100
++++ firebird/builds/posix/Makefile.in.static.isql 2013-07-03 15:42:23.601957800 +0100
+@@ -58,8 +58,8 @@
+
+ isql_static : $(ISQL_STATIC)
+
+-$(ISQL_STATIC): $(ISQL_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
+- $(STATICEXE_LINK) $(LINK_OPTS) $(ISQL_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS)
++$(ISQL_STATIC): $(ISQL_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
++ @CXX@ $^ $(EXECUTABLE_OUTPUT_FLAG)$@ -L$(LIB) $(LIBEDITLINE) $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_OPTS) $(LINK_LIBS) $(ICU_LIBS)
+
+
+ include $(ROOT)/gen/make.shared.targets
+unchanged:
+--- firebird.org/builds/posix/prefix.mingw 2013-06-26 10:05:19.413119400 +0100
++++ firebird/builds/posix/prefix.mingw 2013-07-04 18:13:52.948234400 +0100
+@@ -20,8 +20,8 @@
+ #
+
+ # -Wno-unused-variable is used due to unused gpre generated variables
+-PROD_FLAGS=-O2 -march=i586 -DMINGW -mno-cygwin -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
+-DEV_FLAGS=-ggdb -march=i586 -DMINGW -mno-cygwin -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
++PROD_FLAGS=-O2 -march=i586 -DMINGW -mno-cygwin -Wall -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads
++DEV_FLAGS=-ggdb -march=i586 -DMINGW -mno-cygwin -Wall -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads
+
+ PLATFORM_PATH=os/win32
+
+@@ -33,13 +33,15 @@
+ LIB_LINK=$(LD)
+
+ LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup
++LIB_PLATFORM_RPATH=
+
+ # Strip symbols from release versions to decrease size
+ ifeq ($(IsProdTypeBuild),Y)
+ LINK_OPTS+=-Wl,-s
+ LIB_LINK_OPTIONS+=-Wl,-s
+ endif
+-
++LIB_LINK_OPTIONS=
++LINK_OPTS=
+ # Generation of fbclient_ms.lib
+ LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib
+ LIB_GUI:= -mwindows -lcomctl32 -lgdi32
+@@ -65,7 +67,7 @@
+ ClientLibrarySoName := $(ClientLibraryName)
+
+ # 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
++LINK_FIREBIRD_SYMBOLS = /def:$(BLD_ROOT)/win32/defs/fbclient_s.def /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
+unchanged:
+--- firebird.org/configure 2013-06-26 10:05:19.675669100 +0100
++++ firebird/configure 2013-06-26 10:14:11.490867900 +0100
+@@ -2796,7 +2796,7 @@
+ SHRLIB_EXT=so
+ ;;
+
+- *-*-mingw*)
++ *-*-mingw* | *-*-cygwin*)
+ MAKEFILE_PREFIX=mingw
+ PLATFORM=win32
+
+@@ -8934,6 +8934,9 @@
+ mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
++cygwin*)
++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
++ ;;
+ esac
+
+ # If we're using GNU nm, then use its standard symbol codes.
+@@ -9882,7 +9885,7 @@
+ esac
+ ;;
+
+- mingw* | pw32* | os2*)
++ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+@@ -14675,7 +14678,7 @@
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+- mingw* | os2* | pw32*)
++ mingw* | cygwin* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+@@ -16452,7 +16455,7 @@
+ # PIC is the default for these OSes.
+ ;;
+
+- mingw* | pw32* | os2*)
++ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+@@ -16522,7 +16525,7 @@
+ esac
+ ;;
+
+- mingw* | pw32* | os2*)
++ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+@@ -19067,7 +19070,7 @@
+ # PIC is the default for these OSes.
+ ;;
+
+- mingw* | pw32* | os2*)
++ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+@@ -19137,7 +19140,7 @@
+ esac
+ ;;
+
+- mingw* | pw32* | os2*)
++ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+unchanged:
+--- firebird.org/configure.in 2013-06-26 10:05:19.675669100 +0100
++++ firebird/configure.in 2013-06-26 14:16:35.816845700 +0100
+@@ -1,30 +1,4 @@
+-dnl ############################# INITIALISATION ###############################
+-
+-AC_PREREQ(2.56)
+-AC_INIT(src)
+-
+-AC_CONFIG_AUX_DIR(builds/make.new/config)
+-AC_CACHE_VAL(ac_cv_prog_make_set, [AC_PROG_MAKE_SET])
+-AC_PREFIX_DEFAULT(/usr/local/firebird)
+-
+-m4_ifdef([AC_CONFIG_MACRO_DIR],
+- [],
+- [m4_define([AC_CONFIG_MACRO_DIR], [])])
+-AC_CONFIG_MACRO_DIR(m4)
+-
+-AC_CONFIG_HEADER(src/include/gen/autoconfig.h:builds/make.new/config/config.h.in)
+-
+-dnl XE_APPEND(value, varname)
+-define([XE_APPEND],[[$2]="$[$2] [$1]"])
+-
+-dnl XE_PREPEND(value, varname)
+-define([XE_PREPEND],[[$2]="[$1] $[$2]"])
+-
+-dnl XE_CONF_DIR(param, help, variable, default)
+-define([XE_CONF_DIR],[
+-AC_ARG_WITH([$1],
+- [AC_HELP_STRING([--with-$1], [$2])],
+- [[$3]="$withval"
++NO
+ AC_DEFINE_UNQUOTED([$3], "$[$3]", [$2])],
+ [[$3]="[`if test ""x$prefix"" = ""xNONE"" ; then echo ""$ac_default_prefix""; else echo ""$prefix""; fi`][$4]"
+ AC_DEFINE_UNQUOTED([$3], [""], [$2])]
+@@ -37,8 +11,8 @@
+
+ dnl ############################# ADD TESTS BELOW ##############################
+
+-AC_CANONICAL_SYSTEM
+-CPU_TYPE=$target_cpu
++AC_CANONICAL_HOST
++CPU_TYPE=$host_cpu
+ AC_SUBST(CPU_TYPE)
+
+
+@@ -61,7 +35,7 @@
+ dnl Test for special ar options?
+ AR_OPT_CHECK=false
+
+-case "$target" in
++case "$host" in
+ i*86-*-darwin*)
+ dnl MAKEFILE_PREFIX=darwin_i386
+ MAKEFILE_PREFIX=darwin_x86_64
+@@ -112,7 +86,7 @@
+
+ amd64-*-freebsd* | x86_64*-*-freebsd* | x86_64*-*-k*bsd*-gnu)
+ MAKEFILE_PREFIX=freebsd_amd64
+- case "$target" in
++ case "$host" in
+ x86_64*-*-k*bsd-gnu) # Debian/kFreeBSD
+ PLATFORM=GENTOOFREEBSD
+ INSTALL_PREFIX=linux
+@@ -138,7 +112,7 @@
+
+ *-*-freebsd* | *-*-k*bsd*-gnu)
+ MAKEFILE_PREFIX=freebsd
+- case "$target" in
++ case "$host" in
+ *-*-k*bsd-gnu) # Debian/kFreeBSD
+ PLATFORM=GENTOOFREEBSD
+ INSTALL_PREFIX=linux
+@@ -394,7 +368,7 @@
+ SHRLIB_EXT=so
+ ;;
+
+- *-*-mingw*)
++ *-*-mingw* | *-*-cygwin*)
+ MAKEFILE_PREFIX=mingw
+ PLATFORM=win32
+ AC_DEFINE(WIN_NT, 1, [Define this if OS is Windows NT])
+@@ -756,7 +730,25 @@
+ AC_CHECK_FUNCS(swab _swab)
+ AC_FUNC_MMAP
+ AC_FUNC_FORK
+-AC_FUNC_SETPGRP
++
++dnl AC_FUNC_SETPGRP does not work if cross compiling
++dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
++if test "$cross_compiling" = no; then
++ AC_FUNC_SETPGRP
++else
++ AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
++ [AC_TRY_COMPILE([
++#include <unistd.h>
++], [
++ if (setpgrp(1,1) == -1)
++ exit (0);
++ else
++ exit (1);
++], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
++if test $ac_cv_func_setpgrp_void = yes; then
++ AC_DEFINE(SETPGRP_VOID, 1)
++fi
++fi
+ AC_CHECK_FUNCS(setpgid)
+ AC_FUNC_GETPGRP
+ AC_CHECK_FUNCS(flock)
+@@ -822,7 +814,9 @@
+ [AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+-AC_SEARCH_LIBS(sem_open, rt)])
++AC_SEARCH_LIBS(sem_open, rt)],
++[AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
++AC_MSG_RESULT(cross-compiling, assuming yes)])
+ fi
+ fi
+
+@@ -885,27 +879,13 @@
+
+ dnl EKU: try to determine the alignment of long and double
+ dnl replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
+-AC_MSG_CHECKING(alignment of long)
+-AC_TRY_RUN([main () {
+- struct s {
+- char a;
+- long long b;
+- };
+- exit((int)&((struct s*)0)->b);
+-}], ac_cv_c_alignment=$ac_status, ac_cv_c_alignment=$ac_status)
+-AC_MSG_RESULT($ac_cv_c_alignment)
+-AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
+-
+-AC_MSG_CHECKING(alignment of double)
+-AC_TRY_RUN([main () {
+- struct s {
+- char a;
+- double b;
+- };
+- exit((int)&((struct s*)0)->b);
+-}], ac_cv_c_double_align=$ac_status, ac_cv_c_double_align=$ac_status)
+-AC_MSG_RESULT($ac_cv_c_double_align)
+-AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_c_double_align, [Alignment of double])
++AC_CHECK_ALIGNOF(long long)
++AC_MSG_RESULT($ac_cv_alignof_long_long)
++AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_alignof_long_long, [Alignment of long])
++
++AC_CHECK_ALIGNOF(double)
++AC_MSG_RESULT($ac_cv_alignof_double)
++AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_alignof_double, [Alignment of double])
+
+ dnl EKU: don't know how to convert this into an autoconf test:
+ dnl #define FB_ALIGN(n,b) ...
+@@ -980,7 +960,7 @@
+ #define FB_PIPE_NAME "interbas"])
+ AC_DEFINE_UNQUOTED(FB_PIPE_NAME,"$FB_PIPE_NAME")
+ AC_SUBST(FB_PIPE_NAME)
+- XE_PREPEND( -mno-cygwin -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
++ XE_PREPEND( -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
+ ;;
+
+ *)
+unchanged:
+--- firebird.org/extern/btyacc/main.c 2013-06-26 10:05:19.907330600 +0100
++++ firebird/extern/btyacc/main.c 2013-06-26 10:25:20.065917200 +0100
+@@ -2,7 +2,7 @@
+ #include <signal.h>
+ #include <stdio.h>
+
+-#if defined(WIN32)
++#if defined(WIN32) || defined(_WIN32)
+ #include <io.h>
+ #else
+ #include <unistd.h>
+unchanged:
+--- firebird.org/src/burp/mvol.cpp 2013-06-26 10:05:24.089577700 +0100
++++ firebird/src/burp/mvol.cpp 2013-07-03 15:29:42.818271200 +0100
+@@ -47,7 +47,7 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+
+-#ifdef HAVE_IO_H
++#if defined(HAVE_IO_H) || defined(WIN_NT)
+ #include <io.h> // isatty
+ #endif
+
+unchanged:
+--- firebird.org/src/burp/restore.epp 2013-06-26 10:05:24.089577700 +0100
++++ firebird/src/burp/restore.epp 2013-07-03 15:25:34.792722000 +0100
+@@ -54,6 +54,10 @@
+ #include "../common/classes/SafeArg.h"
+ #include "memory_routines.h"
+
++#ifdef WIN_NT
++#define snprintf _snprintf
++#endif
++
+ using MsgFormat::SafeArg;
+
+
+unchanged:
+--- firebird.org/src/common/classes/BaseStream.cpp 2013-06-26 10:05:24.106566100 +0100
++++ firebird/src/common/classes/BaseStream.cpp 2013-06-27 19:12:19.694346700 +0100
+@@ -28,6 +28,10 @@
+ #include "BaseStream.h"
+ #include <string.h>
+
++#if defined(WIN_NT)
++#include <io.h>
++#endif
++
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+unchanged:
+--- firebird.org/src/common/classes/fb_string.cpp 2013-06-26 10:05:24.123554500 +0100
++++ firebird/src/common/classes/fb_string.cpp 2013-07-03 18:12:28.168333200 +0100
+@@ -32,6 +32,10 @@
+ #include <ctype.h>
+ #include <stdarg.h>
+
++#ifdef WIN_NT
++#pragma comment(lib, "User32.lib")
++#endif
++
+ #ifdef HAVE_STRCASECMP
+ #define STRNCASECMP strncasecmp
+ #else
+unchanged:
+--- firebird.org/src/common/classes/FpeControl.h 2013-06-26 10:05:24.123554500 +0100
++++ firebird/src/common/classes/FpeControl.h 2013-06-28 13:19:21.411841900 +0100
+@@ -204,7 +204,7 @@
+ #ifdef WIN_NT
+ inline bool isinf(double x)
+ {
+- return (!_finite (x) && !isnan(x));
++ return (!_finite (x) && !_isnan(x));
+ }
+ #else
+ #ifndef isinf
+unchanged:
+--- firebird.org/src/isql/isql.epp 2013-06-26 10:05:24.718148500 +0100
++++ firebird/src/isql/isql.epp 2013-07-03 15:39:19.475181200 +0100
+@@ -98,6 +98,7 @@
+ #include "../jrd/common.h"
+ #if defined(WIN_NT)
+ #include <windows.h>
++#define isnan _isnan
+ #endif
+ #include "../jrd/ibase.h"
+ #include "../isql/isql.h"
+unchanged:
+--- firebird.org/src/jrd/divorce.cpp 2013-06-26 10:05:24.786102100 +0100
++++ firebird/src/jrd/divorce.cpp 2013-06-29 11:37:36.553854700 +0100
+@@ -54,7 +54,7 @@
+ #include "../jrd/divorce.h"
+ #include "../common/classes/semaphore.h"
+
+-#ifdef HAVE_IO_H
++#if defined(HAVE_IO_H) || defined(WIN_NT)
+ #include <io.h>
+ #endif
+
+unchanged:
+--- firebird.org/src/jrd/fun.epp 2013-06-26 10:05:24.888032500 +0100
++++ firebird/src/jrd/fun.epp 2013-06-29 11:19:52.564078500 +0100
+@@ -733,7 +733,7 @@
+ status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
+ Arg::Gds(isc_udf_fp_overflow) << Arg::Str(function->fun_name));
+ }
+- else if (isnan(value->vlu_misc.vlu_double))
++ else if (_isnan(value->vlu_misc.vlu_double))
+ {
+ status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
+ Arg::Gds(isc_udf_fp_nan) << Arg::Str(function->fun_name));
+unchanged:
+--- firebird.org/src/jrd/gds.cpp 2013-06-26 10:05:24.888032500 +0100
++++ firebird/src/jrd/gds.cpp 2013-06-29 10:38:05.140333200 +0100
+@@ -71,6 +71,8 @@
+ #include <stdarg.h>
+
+ #if defined(WIN_NT)
++#pragma comment(lib, "advapi32")
++#pragma comment(lib, "Shell32")
+ #include <io.h> // umask, close, lseek, read, open, _sopen
+ #include <process.h>
+ #include <sys/types.h>
+@@ -121,7 +123,7 @@
+
+ #ifdef WIN_NT
+ #include <shlobj.h>
+-#include <shfolder.h>
++//#include <shfolder.h>
+ #define _WINSOCKAPI_
+ #include <share.h>
+ #include "err_proto.h"
+unchanged:
+--- firebird.org/src/jrd/isc.cpp 2013-06-26 10:05:24.922009300 +0100
++++ firebird/src/jrd/isc.cpp 2013-06-29 10:38:56.698423800 +0100
+@@ -58,7 +58,7 @@
+ /* Win32 specific stuff */
+
+ #ifdef WIN_NT
+-
++#pragma comment(lib, "User32")
+ #include <windows.h>
+ #include <aclapi.h>
+ #include <lmcons.h>
+unchanged:
+--- firebird.org/src/jrd/isc_sync.cpp 2013-06-26 10:05:24.938997700 +0100
++++ firebird/src/jrd/isc_sync.cpp 2013-06-30 18:45:43.811961300 +0100
+@@ -127,10 +127,10 @@
+ #include <sys/param.h>
+ #endif
+
+-#ifndef HAVE_GETPAGESIZE
++#if !defined(HAVE_GETPAGESIZE) && !defined(WIN_NT)
+ static size_t getpagesize()
+ {
+- return PAGESIZE;
++ return _PAGESIZE;
+ }
+ #endif
+
+@@ -4320,7 +4320,13 @@
+ *
+ **************************************/
+ char hostname[64];
+- const int rc = snprintf(buffer, bufsize, object_name, ISC_get_host(hostname, sizeof(hostname)));
++ const int rc =
++ #ifdef WIN_NT
++ _snprintf(
++ #else
++ snprintf(
++ #endif
++ buffer, bufsize, object_name, ISC_get_host(hostname, sizeof(hostname)));
+ if (size_t(rc) == bufsize || rc <= 0)
+ {
+ SetLastError(ERROR_FILENAME_EXCED_RANGE);
+unchanged:
+--- firebird.org/src/jrd/os/win32/mod_loader.cpp 2013-06-26 10:05:25.006951300 +0100
++++ firebird/src/jrd/os/win32/mod_loader.cpp 2013-06-27 18:30:42.642374700 +0100
+@@ -93,6 +93,10 @@
+ "msvcr80.dll",
+ #elif _MSC_VER == 1500
+ "msvcr90.dll",
++#elif _MSC_VER == 1600
++ "mscvr100.dll",
++#elif _MSC_VER == 1700
++ "mscvr110.dll",
+ #else
+ #error Specify CRT DLL name here !
+ #endif
+unchanged:
+--- firebird.org/src/jrd/trace/TraceConfigStorage.cpp 2013-06-26 10:05:25.754440900 +0100
++++ firebird/src/jrd/trace/TraceConfigStorage.cpp 2013-07-02 12:32:31.799779900 +0100
+@@ -42,9 +42,10 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+-#ifdef HAVE_IO_H
++#if defined(HAVE_IO_H) || defined(WIN_NT)
+ #include <io.h>
+ #endif
++
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+unchanged:
+--- firebird.org/src/jrd/trace/TraceLog.cpp 2013-06-26 10:05:25.958301700 +0100
++++ firebird/src/jrd/trace/TraceLog.cpp 2013-07-02 12:32:49.747208200 +0100
+@@ -29,7 +29,7 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+-#ifdef HAVE_IO_H
++#if defined(HAVE_IO_H) || defined(WIN_NT)
+ #include <io.h>
+ #endif
+ #include <fcntl.h>
+unchanged:
+--- firebird.org/src/misc/makeHeader.cpp 2013-06-26 10:05:26.230116100 +0100
++++ firebird/src/misc/makeHeader.cpp 2013-07-04 12:43:53.149081800 +0100
+@@ -1,9 +1,9 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <errno.h>
+-//#ifdef HAVE_UNISTD_H
++#ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+-//#endif
++#endif
+
+
+
+unchanged:
+--- firebird.org/extern/btyacc/Makefile 2013-07-05 07:58:12.591917200 +0100
++++ firebird/extern/btyacc/Makefile 2013-07-05 09:31:07.589691500 +0100
+@@ -42,7 +42,10 @@
+ all: $(PROGRAM)
+
+ $(PROGRAM): $(OBJS) $(LIBS)
+- $(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
++ $(CC) -Fe$(PROGRAM) $(OBJS) $(LIBS) $(LDFLAGS)
++
++%.o: %.c
++ $(CC) -c $< -Fo$@ $(CCFLAGS)
+
+ clean:; rm -f $(OBJS)
+
+only in patch2: