Skip to content

Commit 7473e24

Browse files
committed
update makefiles
Add support for MinGW
1 parent 68ba4e2 commit 7473e24

10 files changed

+291
-66
lines changed

builds/posix/Makefile.in

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,11 @@ endif
256256
%.vers: $(ROOT)/builds/posix/%.vers
257257
sh vers.sh $(firstword $@)
258258

259+
ifeq ($(PLATFORM),win32)
260+
export_lists:
261+
else
259262
export_lists: $(ALLVERS)
263+
endif
260264

261265
#___________________________________________________________________________
262266
# LibTomMath - used by cross-builds
@@ -315,7 +319,7 @@ $(RE2_LIB): $(RE2_Objs)
315319
libcds:
316320
mkdir -p $(LIBCDS)/lib/$(TARGET)
317321
cd $(LIBCDS)/lib/$(TARGET); \
318-
cmake -DCMAKE_BUILD_TYPE=$(FB_CMAKE_BUILD_TYPE) -DCMAKE_CXX_COMPILER="$(CXX)" -DCMAKE_CXX_FLAGS=-fPIC $(LIBCDS)
322+
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=$(FB_CMAKE_BUILD_TYPE) -DCMAKE_CXX_COMPILER="$(CXX)" -DCMAKE_CXX_FLAGS=-fPIC $(LIBCDS)
319323
AR="$(AR)" $(MAKE) -C $(LIBCDS)/lib/$(TARGET)
320324

321325
ifeq ($(TARGET),Debug)
@@ -547,14 +551,18 @@ $(LIBIBUTIL_SO): $(UTIL_Objects)
547551
# most of utilities, including network server and UDF support
548552
#
549553

550-
.PHONY: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix gsec gsplit gstat isql nbackup
554+
.PHONY: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix gsec gsplit gstat isql nbackup instreg instsvc instclient
551555

556+
ifeq ($(PLATFORM),win32)
557+
utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix gsec gsplit gstat isql nbackup udfsupport instreg instsvc instclient
558+
else
552559
utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix gsec gsplit gstat isql nbackup udfsupport
560+
endif
553561

554562
firebird_server: $(FB_DAEMON)
555563

556564
$(FB_DAEMON): $(Remote_Server_Objects) $(COMMON_LIB)
557-
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
565+
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIB_GUI) $(LINK_LIBS)
558566

559567
fb_lock_print: $(LOCKPRINT)
560568

@@ -564,7 +572,7 @@ $(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB)
564572
fbguard: $(FBGUARD)
565573

566574
$(FBGUARD): $(FBGUARD_Objects) $(COMMON_LIB)
567-
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
575+
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIB_GUI) $(LINK_LIBS)
568576

569577
fbsvcmgr: $(FBSVCMGR)
570578

@@ -614,6 +622,21 @@ nbackup: $(NBACKUP)
614622
$(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB)
615623
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
616624

625+
instreg: $(INSTREG)
626+
627+
$(INSTREG): $(INSTREG_Objects) $(COMMON_LIB)
628+
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
629+
630+
instsvc: $(INSTSVC)
631+
632+
$(INSTSVC): $(INSTSVC_Objects) $(COMMON_LIB)
633+
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
634+
635+
instclient: $(INSTCLIENT)
636+
637+
$(INSTCLIENT): $(INSTCLIENT_Objects) $(COMMON_LIB)
638+
$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
639+
617640

618641
#___________________________________________________________________________
619642
# plugins - some of them are required to build examples, use separate entry for them
@@ -636,6 +659,12 @@ ifeq ($(TARGET),Debug)
636659
BUILD_DEBUG:=auth_debug
637660
endif
638661

662+
ifeq ($(PLATFORM),win32)
663+
PLUGIN_SONAME=$(notdir $@)
664+
else
665+
PLUGIN_SONAME=$(notdir $@).0
666+
endif
667+
639668
plugins: udr legacy_user_management legacy_auth_server srp_user_management trace $(BUILD_DEBUG) udf_compat chacha profiler
640669

641670
udr: $(UDR_PLUGIN) $(PLUGINS)/udr_engine.conf
@@ -644,31 +673,31 @@ $(PLUGINS)/udr_engine.conf: $(ROOT)/src/plugins/udr_engine/udr_engine.conf
644673
cp $^ $@
645674

646675
$(UDR_PLUGIN): $(UDRENG_Objects) $(COMMON_LIB)
647-
$(LINK_UDRENG) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_UDRENG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
676+
$(LINK_UDRENG) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_UDRENG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
648677
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libudr_engine.$(SHRLIB_EXT))
649678

650679
legacy_user_management: $(LEGACY_USER_MANAGER)
651680

652681
$(LEGACY_USER_MANAGER): $(LEGACY_USERS_MANAGE_Objects) $(COMMON_LIB)
653-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(RE2LIB) $(FIREBIRD_LIBRARY_LINK)\
682+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(RE2LIB) $(FIREBIRD_LIBRARY_LINK)\
654683
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libLegacy_UserManager.$(SHRLIB_EXT))
655684

656685
chacha: $(CHACHA)
657686

658687
$(CHACHA): $(Chacha_Objects) $(COMMON_LIB)
659-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
688+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
660689
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libChaCha.$(SHRLIB_EXT))
661690

662691
legacy_auth_server: $(LEGACY_AUTH_SERVER)
663692

664693
$(LEGACY_AUTH_SERVER): $(LEGACY_AUTH_SERVER_Objects) $(COMMON_LIB)
665-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
694+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
666695
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libLegacy_Auth.$(SHRLIB_EXT))
667696

668697
profiler: $(PROFILER)
669698

670699
$(PROFILER): $(Profiler_Objects) $(COMMON_LIB)
671-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
700+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
672701
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libDefault_Profiler.$(SHRLIB_EXT))
673702

674703
trace: $(FBTRACE)
@@ -679,13 +708,13 @@ $(FBTRACE): $(FBTRACE_UTIL_Objects) $(COMMON_LIB)
679708
auth_debug: $(AUTH_DEBUGGER)
680709

681710
$(AUTH_DEBUGGER): $(AUTH_DEBUGGER_Objects) $(COMMON_LIB)
682-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
711+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
683712
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libAuth_Debug.$(SHRLIB_EXT))
684713

685714
srp_user_management: $(SRP_USER_MANAGER)
686715

687716
$(SRP_USER_MANAGER): $(SRP_USERS_MANAGE_Objects) $(COMMON_LIB)
688-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
717+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
689718
$(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libSrp.$(SHRLIB_EXT))
690719

691720
udf_compat: $(UDF_BACKWARD_COMPATIBILITY) $(COMPAT_SQL)

builds/posix/Makefile.in.examples

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,16 @@ export PATH
6767
#endif
6868
GPRE_FLAGS= -m -z -n
6969

70-
LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,$(if $(subst intl,,$(1)),$(LIB),$(LIB)/../intl))
71-
LINK_DARWIN_RPATH = -Wl,-rpath,@loader_path/../$(TARGET)/firebird
70+
ifeq (@USE_RPATH@,1)
71+
LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,$(if $(subst intl,,$(1)),$(LIB),$(LIB)/../intl))
72+
else
73+
LIB_LINK_RPATH =
74+
endif
75+
ifeq ($(PLATFORM),DARWIN)
76+
LINK_DARWIN_RPATH = -Wl,-rpath,@loader_path/../$(TARGET)/firebird
77+
else
78+
LINK_DARWIN_RPATH =
79+
endif
7280
LIB_LINK_MAPFILE =
7381

7482
EXAMPLES_DEST= $(GEN_ROOT)/examples
@@ -91,7 +99,7 @@ EMPLOYEE_DB= $(EXAMPLES_DEST)/employee.fdb
9199
FINAL_EMPDB= $(EXAMPLES_FB)/empbuild/employee.fdb
92100
INTLEMP_DB= $(EXAMPLES_DEST)/intlemp.fdb
93101

94-
EXTAUTH_PLUGIN= $(EXAMPLES_FB)/prebuilt/libfbSampleExtAuth.$(SHRLIB_EXT)
102+
EXTAUTH_PLUGIN= $(EXAMPLES_FB)/prebuilt/$(LIB_PREFIX)fbSampleExtAuth.$(SHRLIB_EXT)
95103

96104
.PHONY: all examples
97105

builds/posix/Makefile.in.extauth

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# The contents of this file are subject to the Initial
2+
# Developer's Public License Version 1.0 (the "License");
3+
# you may not use this file except in compliance with the
4+
# License. You may obtain a copy of the License at
5+
# https://www.firebirdsql.org/en/initial-developer-s-public-license-version-1-0/
6+
#
7+
# Software distributed under the License is distributed AS IS,
8+
# WITHOUT WARRANTY OF ANY KIND, either express or implied.
9+
# See the License for the specific language governing rights
10+
# and limitations under the License.
11+
#
12+
# The Original Code was created by Alexander Peshkoff
13+
# for the Firebird Open Source RDBMS project.
14+
#
15+
# Copyright (c) 2020 Alexander Peshkoff <peshkoff@mail.ru>
16+
# and all contributors signed below.
17+
#
18+
# All Rights Reserved.
19+
# Contributor(s): ______________________________________.
20+
21+
ifndef ROOT
22+
ROOT=../..
23+
endif
24+
#ROOT=$(shell cd ../..; pwd)
25+
26+
PLUGINS=$(ROOT)/plugins
27+
BIN=$(ROOT)/bin
28+
LIB=$(ROOT)/lib
29+
30+
LIB_PREFIX=
31+
SHRLIB_EXT=@SHRLIB_EXT@
32+
EXEC_EXT=@EXEEXT@
33+
34+
ifndef INTERMED
35+
INTERMED=.
36+
endif
37+
38+
ifdef OUT
39+
OUT_BIN=$(OUT)/bin
40+
OUT_PLUG=$(OUT)/plugins
41+
else
42+
OUT_BIN=.
43+
OUT_PLUG=.
44+
endif
45+
46+
TOMCRYPT_COMPILE=-DUSE_LTM -DLTM_DESC
47+
48+
SIMPLE_KEY_AUTH_NAME=$(LIB_PREFIX)fbSampleExtAuth.$(SHRLIB_EXT)
49+
BLD_SIMPLE_KEY_AUTH=$(OUT_PLUG)/$(SIMPLE_KEY_AUTH_NAME)
50+
SIMPLE_KEY_AUTH=$(PLUGINS)/$(SIMPLE_KEY_AUTH_NAME)
51+
52+
KEYGEN_NAME=fbSampleExtAuthKeygen$(EXEC_EXT)
53+
BLD_KEYGEN=$(OUT_BIN)/$(KEYGEN_NAME)
54+
KEYGEN=$(BIN)/$(KEYGEN_NAME)
55+
56+
KEYGEN_objects=$(INTERMED)/keygen.o
57+
TCWRAP_objects=$(INTERMED)/TcWrapper.o
58+
KEY_AUTH_objects=$(INTERMED)/ExtAuth.o
59+
60+
CXXFLAGS=-std=c++17 -I$(ROOT)/include $(TOMCRYPT_COMPILE)
61+
LDFLAGS=-L$(LIB)
62+
63+
LINK_LIBS=-lfbclient -ltomcrypt -ltommath
64+
65+
$(INTERMED)/%.o: ./%.cpp
66+
$(CXX) $(CXXFLAGS) -c $(firstword $<) -o $@
67+
68+
.PHONY: all keygen plugin install
69+
70+
all: keygen plugin
71+
72+
keygen: $(BLD_KEYGEN)
73+
74+
$(BLD_KEYGEN): $(KEYGEN_objects) $(TCWRAP_objects)
75+
$(CXX) $(LDFLAGS) $^ -o $@ $(LINK_LIBS)
76+
77+
plugin: $(BLD_SIMPLE_KEY_AUTH)
78+
79+
$(BLD_SIMPLE_KEY_AUTH): $(KEY_AUTH_objects) $(TCWRAP_objects)
80+
$(CXX) -shared $(LDFLAGS) $^ -o $@ $(LINK_LIBS)
81+
82+
clean:
83+
rm -f $(INTERMED)/*.o* $(BLD_KEYGEN) $(BLD_SIMPLE_KEY_AUTH)
84+
85+
install: $(SIMPLE_KEY_AUTH) $(KEYGEN)
86+
87+
$(SIMPLE_KEY_AUTH): $(BLD_SIMPLE_KEY_AUTH)
88+
cp $^ $@
89+
90+
$(KEYGEN): $(BLD_KEYGEN)
91+
cp $^ $@
92+

builds/posix/Makefile.in.plugins_examples

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ include $(ROOT)/gen/make.shared.variables
6060

6161
all: udrcpp_example dc_example kh_example crypt_app
6262

63+
ifeq ($(PLATFORM),win32)
64+
PLUGIN_SONAME=$(notdir $@)
65+
PLUGINS_DIR=$(FIREBIRD)/examples/prebuilt/plugins
66+
SAMPLES_DIR=$(FIREBIRD)/examples/prebuilt/bin
67+
makePluginName=$(PLUGINS_DIR)/$(LIB_PREFIX)$(1).$(SHRLIB_EXT)
68+
else
69+
PLUGIN_SONAME=$(notdir $@).0
70+
PLUGINS_DIR=$(PLUGINS)
71+
SAMPLES_DIR=$(BIN)
72+
endif
6373

6474
UDR_Objects = $(call dirObjects,../examples/udr)
6575
UDR_Plugin = $(PLUGINS)/udr/$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT)
@@ -72,7 +82,7 @@ ifeq ($(PLATFORM),DARWIN)
7282
$(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -o $@ $^ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ \
7383
$(FIREBIRD_LIBRARY_LINK)
7484
else
75-
$(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \
85+
$(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,udrcpp_example.$(SHRLIB_EXT)) \
7686
$(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) \
7787
$(FIREBIRD_LIBRARY_LINK)
7888
endif
@@ -85,8 +95,8 @@ AllObjects += $(DC_Objects)
8595
dc_example: $(DC_Plugin)
8696

8797
$(DC_Plugin): $(DC_Objects)
88-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
89-
$(CP) $(EXA_ROOT)/dbcrypt/fbSampleDbCrypt.conf $(PLUGINS)
98+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
99+
$(CP) $(EXA_ROOT)/dbcrypt/fbSampleDbCrypt.conf $(PLUGINS_DIR)
90100

91101

92102
KH_Objects = $(call makeObjects,../examples/dbcrypt,CryptKeyHolder.cpp)
@@ -96,12 +106,12 @@ AllObjects += $(KH_Objects)
96106
kh_example: $(KH_Plugin)
97107

98108
$(KH_Plugin): $(KH_Objects)
99-
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
100-
$(CP) $(EXA_ROOT)/dbcrypt/fbSampleKeyHolder.conf $(PLUGINS)
109+
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(PLUGIN_SONAME)) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
110+
$(CP) $(EXA_ROOT)/dbcrypt/fbSampleKeyHolder.conf $(PLUGINS_DIR)
101111

102112

103113
CA_Objects = $(call makeObjects,../examples/dbcrypt,CryptApplication.cpp)
104-
CRYPT_APP = $(BIN)/fbSampleDbCryptApp$(EXEC_EXT)
114+
CRYPT_APP = $(SAMPLES_DIR)/fbSampleDbCryptApp$(EXEC_EXT)
105115
AllObjects += $(CA_Objects)
106116

107117
crypt_app: $(CRYPT_APP)

0 commit comments

Comments
 (0)