# C++ TWS API Client
#
# Copyright (C) 2013-2026  Interactive Brokers LLC
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.

CXX=g++
CXXFLAGS=-pthread -Wall -Wno-switch -Wpedantic -Wno-unused-function -std=c++11 -shared -fPIC
ROOT_DIR=.
BASE_SRC_DIR=${ROOT_DIR}
PROTOBUF_DIR=$(BASE_SRC_DIR)/protobufUnix
INCLUDES=-I${ROOT_DIR} -I${PROTOBUF_DIR}
LIB_DIR=lib
LIB_NAME=libbid.so
TARGET=libTwsSocketClient.so

$(TARGET):
	$(CXX) $(CXXFLAGS) $(INCLUDES) $(BASE_SRC_DIR)/*.cpp ${PROTOBUF_DIR}/*.cc -L$(LIB_DIR) -l:$(LIB_NAME) -o$(TARGET) -lprotobuf

clean:
	rm -f $(TARGET) *.o

