summaryrefslogtreecommitdiffstats
path: root/src/rocksdb/build_tools/update_dependencies.sh
blob: a2fdcd0ee4a598c98c401d3c38810c53c286b2d3 (plain)
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
138
139
140
141
142
143
144
145
146
147
148
149
#!/bin/sh
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
#
# Update dependencies.sh file with the latest avaliable versions

BASEDIR=$(dirname $0)
OUTPUT=""

function log_header()
{
  echo "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved." >> "$OUTPUT"
  echo "# The file is generated using update_dependencies.sh." >> "$OUTPUT"
}


function log_variable()
{
  echo "$1=${!1}" >> "$OUTPUT"
}


TP2_LATEST="/data/users/$USER/fbsource/fbcode/third-party2/"
## $1 => lib name
## $2 => lib version (if not provided, will try to pick latest)
## $3 => platform (if not provided, will try to pick latest gcc)
##
## get_lib_base will set a variable named ${LIB_NAME}_BASE to the lib location
function get_lib_base()
{
  local lib_name=$1
  local lib_version=$2
  local lib_platform=$3

  local result="$TP2_LATEST/$lib_name/"
  
  # Lib Version
  if [ -z "$lib_version" ] || [ "$lib_version" = "LATEST" ]; then
    # version is not provided, use latest
    result=`ls -dr1v $result/*/ | head -n1`
  else
    result="$result/$lib_version/"
  fi
  
  # Lib Platform
  if [ -z "$lib_platform" ]; then
    # platform is not provided, use latest gcc
    result=`ls -dr1v $result/gcc-*[^fb]/ | head -n1`
  else
    echo $lib_platform
    result="$result/$lib_platform/"
  fi
  
  result=`ls -1d $result/*/ | head -n1`

  echo Finding link $result
  
  # lib_name => LIB_NAME_BASE
  local __res_var=${lib_name^^}"_BASE"
  __res_var=`echo $__res_var | tr - _`
  # LIB_NAME_BASE=$result
  eval $__res_var=`readlink -f $result`
  
  log_variable $__res_var
}

###########################################################
#                platform010 dependencies                 #
###########################################################

OUTPUT="$BASEDIR/dependencies_platform010.sh"

rm -f "$OUTPUT"
touch "$OUTPUT"

echo "Writing dependencies to $OUTPUT"

# Compilers locations
GCC_BASE=`readlink -f $TP2_LATEST/gcc/11.x/centos7-native/*/`
CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/12/platform010/*/`

log_header
log_variable GCC_BASE
log_variable CLANG_BASE

# Libraries locations
get_lib_base libgcc     11.x    platform010
get_lib_base glibc      2.34    platform010
get_lib_base snappy     LATEST  platform010
get_lib_base zlib       LATEST  platform010
get_lib_base bzip2      LATEST  platform010
get_lib_base lz4        LATEST  platform010
get_lib_base zstd       LATEST  platform010
get_lib_base gflags     LATEST  platform010
get_lib_base jemalloc   LATEST  platform010
get_lib_base numa       LATEST  platform010
get_lib_base libunwind  LATEST  platform010
get_lib_base tbb        2018_U5 platform010
get_lib_base liburing   LATEST  platform010
get_lib_base benchmark  LATEST  platform010

get_lib_base kernel-headers fb platform010
get_lib_base binutils   LATEST centos7-native
get_lib_base valgrind   LATEST platform010
get_lib_base lua        5.3.4  platform010

git diff $OUTPUT


###########################################################
#                platform009 dependencies                 #
###########################################################

OUTPUT="$BASEDIR/dependencies_platform009.sh"

rm -f "$OUTPUT"
touch "$OUTPUT"

echo "Writing dependencies to $OUTPUT"

# Compilers locations
GCC_BASE=`readlink -f $TP2_LATEST/gcc/9.x/centos7-native/*/`
CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/9.0.0/platform009/*/`

log_header
log_variable GCC_BASE
log_variable CLANG_BASE

# Libraries locations
get_lib_base libgcc     9.x     platform009
get_lib_base glibc      2.30    platform009
get_lib_base snappy     LATEST  platform009
get_lib_base zlib       LATEST  platform009
get_lib_base bzip2      LATEST  platform009
get_lib_base lz4        LATEST  platform009
get_lib_base zstd       LATEST  platform009
get_lib_base gflags     LATEST  platform009
get_lib_base jemalloc   LATEST  platform009
get_lib_base numa       LATEST  platform009
get_lib_base libunwind  LATEST  platform009
get_lib_base tbb        2018_U5 platform009
get_lib_base liburing   LATEST  platform009
get_lib_base benchmark  LATEST  platform009

get_lib_base kernel-headers fb platform009
get_lib_base binutils   LATEST centos7-native
get_lib_base valgrind   LATEST platform009
get_lib_base lua        5.3.4  platform009

git diff $OUTPUT