blob: c4b40b5983ba3d48be2dd68e61c809911a5ad203 [file] [log] [blame]
# @@@ START COPYRIGHT @@@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# @@@ END COPYRIGHT @@@
# Makefile for building Type 2 driver native code on Linux
#
include $(TRAF_HOME)/macros.gmk # top level
include ./macros.gmk
#
# Source files required to build sql server:
COMMON_OBJS =
T2_OBJS = $(OUTDIR)/CommonDiags.o \
$(OUTDIR)/Debug.o \
$(OUTDIR)/CSrvrConnect.o \
$(OUTDIR)/CSrvrStmt.o \
$(OUTDIR)/GlobalInformation.o \
$(OUTDIR)/JdbcDriverGlobal.o \
$(OUTDIR)/JdbcDebug.o \
$(OUTDIR)/SrvrSmd.o \
$(OUTDIR)/SqlInterface.o \
$(OUTDIR)/SQLMXCommonFunctions.o \
$(OUTDIR)/SQLMXConnection.o \
$(OUTDIR)/SQLMXCallableStatement.o \
$(OUTDIR)/SQLMXDatabaseMetaData.o \
$(OUTDIR)/SQLMXPreparedStatement.o \
$(OUTDIR)/SQLMXResultSet.o \
$(OUTDIR)/SQLMXStatement.o \
$(OUTDIR)/SQLMXClobReader.o \
$(OUTDIR)/SQLMXClobWriter.o \
$(OUTDIR)/SQLMXLobInputStream.o \
$(OUTDIR)/SQLMXLobOutputStream.o \
$(OUTDIR)/SrvrJdbcConnect.o \
$(OUTDIR)/CDesc.o \
$(OUTDIR)/SrvrCommon.o \
$(OUTDIR)/SrvrKds.o \
$(OUTDIR)/SrvrOthers.o \
$(OUTDIR)/SQLMXDriver.o \
$(OUTDIR)/ResStatistics.o \
$(OUTDIR)/ResStatisticsSession.o \
$(OUTDIR)/ResStatisticsStatement.o \
$(OUTDIR)/Vproc.o \
$(OUTDIR)/type2version.o
CSES := org.apache.trafodion.jdbc.t2.JdbcDebug \
org.apache.trafodion.jdbc.t2.DataWrapper \
org.apache.trafodion.jdbc.t2.SQLMXCallableStatement \
org.apache.trafodion.jdbc.t2.SQLMXConnection \
org.apache.trafodion.jdbc.t2.SQLMXDatabaseMetaData \
org.apache.trafodion.jdbc.t2.T2Driver \
org.apache.trafodion.jdbc.t2.SQLMXPreparedStatement \
org.apache.trafodion.jdbc.t2.SQLMXResultSet \
org.apache.trafodion.jdbc.t2.SQLMXClobReader \
org.apache.trafodion.jdbc.t2.SQLMXClobWriter \
org.apache.trafodion.jdbc.t2.SQLMXLobInputStream \
org.apache.trafodion.jdbc.t2.SQLMXLobOutputStream \
org.apache.trafodion.jdbc.t2.SQLMXStatement
OBJS = $(COMMON_OBJS) $(T2_OBJS)
MXODIR = $(TRAF_HOME)/../conn/odbc/src/odbc
INCLUDES = -I. -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -Inative -I$(MXODIR)/Krypton/generated_incs -I$(MXODIR)/dependencies/include -I$(MXODIR)/dependencies/linux -I$(TRAF_HOME)/export/include/sql -I$(TRAF_HOME)/inc/tmf_tipapi -I$(TRAF_HOME)/inc -I$(TRAF_HOME)/export/include -I$(TRAF_HOME)/inc/rosetta -I$(TRAF_HOME)/../sql/cli -I$(TRAF_HOME)/../sql/common -I$(TRAF_HOME)/../dbsecurity/cert/inc -I$(TRAF_HOME)/../dbsecurity/auth/inc -I$(TRAF_HOME)/commonLogger -I$(LOG4CXX_INC_DIR) -I$(LOG4CXX_INC_DIR)/lib4cxx
COMMON_DEFINES = -DTRAFODION_JDBCT2_VER_MAJOR=$(TRAFODION_VER_MAJOR) -DTRAFODION_JDBCT2_VER_MINOR=$(TRAFODION_VER_MINOR) -D_LP64 -DNA_LINUX -DSIZEOF_LONG_INT=4 -DSQ_GUARDIAN_CALL -DDISABLE_NOWAIT -D_FASTPATH -DTODO -D_SQ64 -w
DEFINES = $(COMMON_DEFINES)
CODEGEN = -fPIC
.PHONY: all
java_files:=$(shell find src/main/java -name *.java*|grep -v DriverInfo.java)
LN :=/bin/ln -sf
JAVAH :=$(JAVA_HOME)/bin/javah
EXPROOT := ${TRAF_HOME}/export
CP := /bin/cp -f
all: LICENSE NOTICE $(LIBEXPDIR)/libjdbcT2.so
$(EXPROOT)/lib/jdbcT2.jar: $(java_files)
./getBuildInfo
$(MAVEN) install -DskipTests
$(CP) target/trafjdbcT2-${TRAFODION_VER}.jar $(EXPROOT)/lib
`cd ${TRAF_HOME}/export/lib;$(LN) trafjdbcT2-${TRAFODION_VER}.jar jdbcT2.jar`
$(JAVAH) -cp $(EXPROOT)/lib/jdbcT2.jar -d native $(CSES)
$(LIBEXPDIR)/libjdbcT2.so: $(OBJS)
$(CXX) -shared $(GCCMODE) -o $@ $(DBG_FLGS) -L$(LIBEXPDIR) -lsbfs -lsbms -levlsq -lwin -ltdm_sqlcli -larkcmp_dll -larkcmplib -lcommon -lsort -lexecutor -lcomexe -lcli $(OBJS)
$(OBJS): $(EXPROOT)/lib/jdbcT2.jar
$(OUTDIR)/type2version.o: $(TRAF_HOME)/export/include/SCMBuildStr.h
mvn_clean:
-$(MAVEN) clean | grep -e '\[INFO\] Building' -e '\[INFO\] BUILD SUCCESS' -e 'ERROR'
clean: $(shell if [ -d target ]; then echo "mvn_clean"; fi)
$(RM) $(LIBEXPDIR)/libjdbcT2.so
$(RM) -f $(EXPROOT)/lib/jdbcT2*.jar
$(RM) -rf $(OUTDIR)
$(RM) -rf $(BUILD_PLAT)
echo '$(CSES)'|sed -e 's/\./_/g' -e 's/[[:space:]]/\n/g' |xargs -i rm -f 'native/{}.h'
cleanall: clean
$(RM) -rf $(BUILD_PLAT)
LICENSE: ../../../licenses/LICENSE-clients
cp -f $? $@
../../../licenses/LICENSE-clients:
cd $(@D) && $(MAKE) $(@F)
NOTICE: ../../../NOTICE
cp -f $? $@