forked from rudimeier/twsapi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgen_twsapi_config_h
executable file
·137 lines (107 loc) · 3.87 KB
/
gen_twsapi_config_h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/sh
config_h="${1}"
api_version_txt="${2}"
socket_base_impl_h="${3}"
debug=0
my_name="`basename "$0"`"
if test -z "${config_h}" -o -z "${api_version_txt}" -o -z "${socket_base_impl_h}"; then
echo "usage: ${my_name} config.h API_VersionNum.txt EClientSocketBaseImpl.h" 1>&2
exit 1
fi
major_ver="-1"
minor_ver="-1"
micro_ver="-1"
pack_ver=""
ib_major="-1"
ib_minor="-1"
ib_ver=""
ib_client_version=""
## get twsapi version
version_cmd="`sed -n -e 's/^#define[ \t][ \t]*PACKAGE_VERSION[ \t][ \t]*"\([^\.]*\)\.\([^\.]*\)\.\([^\.]\)"$/major_ver="\1";minor_ver="\2";micro_ver="\3"/p' "${config_h}"`"
test "${debug}" != "0" && echo "eval ${version_cmd}" 1>&2
eval "${version_cmd}" || exit 1
version_cmd="`sed -n -e 's/^#define[ \t][ \t]*PACKAGE_VERSION[ \t][ \t]*\(.*\)$/pack_ver=\1/p' "${config_h}"`"
test "${debug}" != "0" && echo "eval ${version_cmd}" 1>&2
eval "${version_cmd}" || exit 1
fail="0"
test "${major_ver}" -ge "0" || fail=1
test "${minor_ver}" -ge "0" || fail=1
test "${micro_ver}" -ge "0" || fail=1
test "${pack_ver}" = "${major_ver}.${minor_ver}.${micro_ver}" || fail=1
if test ${fail} != "0" -o "${debug}" != "0" ; then
echo "major_ver: '${major_ver}'" 1>&2
echo "minor_ver: '${minor_ver}'" 1>&2
echo "micro_ver: '${micro_ver}'" 1>&2
echo "pack_ver: '${pack_ver}'" 1>&2
fi
if test ${fail} != "0"; then
echo "${my_name}: failed to get version info from '${config_h}'" 1>&2
exit 1
fi
## get IB API version
API_Version="none"
. "${api_version_txt}" || exit 1
ib_ver="${API_Version}"
version_cmd="`sed -n -e 's/^API_Version=\([^\.]*\)\.\([^\.]*\)$/ib_major="\1";ib_minor="\2"/p' "${api_version_txt}"`"
test "${debug}" != "0" && echo "eval ${version_cmd}" 1>&2
eval "${version_cmd}" || exit 1
fail="0"
test "${ib_major}" -ge "0" || fail=1
test "${ib_minor}" -ge "0" || fail=1
test "${ib_ver}" = "${ib_major}.${ib_minor}" || fail=1
if test ${fail} != "0" -o "${debug}" != "0" ; then
echo "ib_major: '${ib_major}'" 1>&2
echo "ib_minor: '${ib_minor}'" 1>&2
echo "ib_ver: '${ib_ver}'" 1>&2
fi
if test ${fail} != "0"; then
echo "${my_name}: failed to get version info from '${api_version_txt}'" 1>&2
exit 1
fi
## get CLIENT_VERSION
version_cmd="`sed -n 's/^[ \t]*const[ \t]*int[ \t]*\(CLIENT_VERSION\)[ \t]*=[ \t]*\([0-9]*\)[ \t]*;[ \t]*/ib_client_version=\2/p' "${socket_base_impl_h}"`"
test "${debug}" != "0" && echo "eval ${version_cmd}" 1>&2
eval "${version_cmd}" || exit 1
fail="0"
test "${ib_client_version}" -ge "0" || fail=1
if test ${fail} != "0" -o "${debug}" != "0" ; then
echo "ib_client_version: '${ib_client_version}'" 1>&2
fi
if test ${fail} != "0"; then
echo "${my_name}: failed to get version info from '${socket_base_impl_h}'" 1>&2
exit 1
fi
## export our version numbers
TWSAPI_VERSION="${pack_ver}"
TWSAPI_VERSION_NUMBER="`expr "${major_ver}" \* 10000 + "${minor_ver}" \* 100 + "${micro_ver}"`"
TWSAPI_IB_VERSION="${ib_ver}"
TWSAPI_IB_VERSION_NUMBER="`expr "${ib_major}" \* 100 + "${ib_minor}"`"
TWSAPI_IB_CLIENT_VERSION="${ib_client_version}"
if test "${debug}" != "0"; then
echo "${TWSAPI_VERSION}" 1>&2
echo "${TWSAPI_VERSION_NUMBER}" 1>&2
echo "${TWSAPI_IB_VERSION}" 1>&2
echo "${TWSAPI_IB_VERSION_NUMBER}" 1>&2
fi
cat <<EOF
/***
* twsapi_config.h
* compile-time version and configure informations for the twsapi library
*
* Author: Ruediger Meier <[email protected]>
*
***/
#ifndef TWSAPI_VERSION_H
#define TWSAPI_VERSION_H
/* the version string like "1.2.3" */
#define TWSAPI_VERSION "${TWSAPI_VERSION}"
/* the version number: 1.2.3 value is 10203 */
#define TWSAPI_VERSION_NUMBER ${TWSAPI_VERSION_NUMBER}
/* IB's original version string like "1.2.3" */
#define TWSAPI_IB_VERSION "${TWSAPI_IB_VERSION}"
/* IB's original version number: 1.2.3 value is 10203 */
#define TWSAPI_IB_VERSION_NUMBER ${TWSAPI_IB_VERSION_NUMBER}
/* IB's CLIENT_VERSION (protocol version) */
#define TWSAPI_IB_CLIENT_VERSION ${TWSAPI_IB_CLIENT_VERSION}
#endif
EOF