forked from ecmwf/ecflow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jamroot.jam
137 lines (115 loc) · 4.46 KB
/
Jamroot.jam
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
## Copyright 2009- ECMWF.
## This software is licensed under the terms of the Apache Licence version 2.0
## which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
## In applying this licence, ECMWF does not waive the privileges and immunities
## granted to it by virtue of its status as an intergovernmental organisation
## nor does it submit to any jurisdiction
#
# export BOOST_ROOT=...
# alias b8r='$BOOST_ROOT/bjam c++-template-depth=512 cxxflags="-Wno-unused-local-typedefs -Wno-unused-variable" -j8 -q release'
# ======================================================================
project ecflow_top : requirements <define>ECF_OPENSSL
;
# ===============================================================================
# To clean all the sub projects just use: bjam --clean
#
path-constant TOP : . ; # After that, the TOP variable can be used in every Jamfile.
build-project ACore ;
build-project ANattr ;
build-project ANode ;
build-project Base ;
build-project Client ;
build-project CSim ;
build-project Server ;
build-project Test ;
# The gui is not built on HPUX and IBM(power6) platforms
import os ;
ARCH = [ os.environ ARCH ] ;
ARCH default = UNDEF ; # if arch not defined set as UNDEF, otherwise if $(ARCH) will be true
# Some user do no want python: They must define ECF_NO_PYTHON
NO_PYTHON = [ os.environ ECF_NO_PYTHON ] ;
#echo "NO_PYTHON = $(NO_PYTHON)" ;
if ! $(NO_PYTHON) {
# echo "building python" ;
build-project Pyext ;
}
# ==================== INSTALL ==========================================================
local dest_dir = [ os.environ ECFLOW_DESTDIR ] ;
dest_dir default = "" ;
constant ECFLOW_DESTDIR : $(dest_dir) ;
local ECFLOW_VERSION = [ SHELL "cd $(TOP); ./version.sh" ] ;
#echo "ECFLOW_VERSION = '$(ECFLOW_VERSION)'" ;
local install_dir = [ os.environ ECFLOW_INSTALL_DIR ] ;
if $(install_dir) {
#echo "ECFLOW_INSTALL_DIR = '$(install_dir)'" ;
install_dir = "$(install_dir)/ecflow/$(ECFLOW_VERSION)" ;
#echo "ECFLOW_INSTALL_DIR = '$(install_dir)'" ;
}
install_dir default = "$(ECFLOW_INSTALL_PREFIX)/ecflow/$(ECFLOW_VERSION)" ; # ECFLOW_INSTALL_PREFIX is defined in site-config.jam
constant ECFLOW_INSTALL_DIR : $(install_dir) ;
echo "ECFLOW_INSTALL_DIR = '$(ECFLOW_INSTALL_DIR)'" ;
#echo "ECFLOW_DESTDIR = '$(ECFLOW_DESTDIR)'" ;
# ** NO LONGER used **
# Allow the installation directory be be defined externally, by the environment variable ECFLOW_INSTALL_DIR
#
# However we want this to be explicit, as we dont need it on a day to day basis.
# Usage:
# bjam install variant=release
#
# to install the debug version
# bjam install | bjam install variant=debug
#
# To preview the installation witout actaully doing it:
# bjam install variant=release -d2 -n
#
# Note: if you find that the install has started to create directories
# of name install-server,install-client,,install-py
# Then *ensure* you have set the environment variables ECFLOW_INSTALL_DIR,
#
# Note: Not all system have XLib, hence install ecFlowview manually by using:
# bjam -d2 install-viewer
#
# Some linux RPM have requirements that 64 bit libs must be under lib64
# See http://software.ecmwf.int/issues/browse/ECFLOW-30, 64-bit Linux platforms expect libraries to go to the $PREFIX/lib64 directory, not $PREFIX/lib
#
install install-server
: Server//ecflow_server
: <location>$(ECFLOW_DESTDIR)/$(ECFLOW_INSTALL_DIR)/bin
;
install install-client
: Client//ecflow_client
: <location>$(ECFLOW_DESTDIR)/$(ECFLOW_INSTALL_DIR)/bin
;
install install-tools
: [ glob tools/*.sh ]
[ glob tools/*.pl ]
: <location>$(ECFLOW_DESTDIR)/$(ECFLOW_INSTALL_DIR)/bin
;
install install-doc
: [ glob Doc/user-manual/client_*.docx ]
: <location>$(ECFLOW_DESTDIR)/$(ECFLOW_INSTALL_DIR)/doc/ecflow
;
# ===============================================================================================
# Use this for a non-python install
alias install-base :
install-server
install-client
install-tools
install-doc
;
alias install :
install-base
Pyext//install
;
alias install-all :
install
;
# make install explicit, otherwise we end installing for all calls to bjam
explicit install-server ;
explicit install-client ;
explicit install-tools ;
explicit install-doc ;
explicit install ;
explicit install-base ;
explicit install-all ;
explicit install-all64 ;