#**************************************************************
#  
#  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.
#  
#**************************************************************



# ----------------------------ADO settings------------------------------------#
# target
ADO_TARGET=ado

# ----------------------------ODBC BASE settings-----------------------------------#
# target
ODBC2_TARGET=odbcbase

# ----------------------------ODBC settings-----------------------------------#
# target
ODBC_TARGET=odbc

# ----------------------------JDBC settings-----------------------------------#
# target
JDBC_TARGET=jdbc

# ----------------------------dbtools settings-----------------------------------#
# target
DBTOOLS_TARGET=dbtools

# -----------------------DRIVER MANAGER settings--------------------------------#
# target
SDBC_TARGET=sdbc

# the major 
SDBC_MAJOR=2
# the minor 
SDBC_MINOR=0
# the micro 
SDBC_MICRO=0


# -----------------------Connection Pool settings--------------------------------#
# target
DBPOOL_TARGET=dbpool

# the major 
DBPOOL_MAJOR=2
# the minor 
DBPOOL_MINOR=0
# the micro 
DBPOOL_MICRO=0


# ----------------------------DBASE settings-----------------------------------#
# target
DBASE_TARGET=dbase

# ----------------------------MOZAB settings-----------------------------------#
# the major 
MOZAB_MAJOR=2
# the minor 
MOZAB_MINOR=0
# the micro 
MOZAB_MICRO=0

# ----------------------------MySQL settings-----------------------------------#
# target
MYSQL_TARGET=mysql


# ----------------------------Evoab settings-----------------------------------#
# target
EVOAB_TARGET=evoab

# ----------------------------Kab settings-------------------------------------#
# target
KAB_TARGET=kab

# the major 
KAB_MAJOR=1
# the minor 
KAB_MINOR=0
# the micro 
KAB_MICRO=0


# ----------------------------Macab settings-------------------------------------#
# target
MACAB_TARGET=macab

# the major 
MACAB_MAJOR=1
# the minor 
MACAB_MINOR=0
# the micro 
MACAB_MICRO=0

# ----------------------------HSQLDB settings-----------------------------------#
# target
HSQLDB_TARGET=hsqldb

