Makefile 11.4 KB
Newer Older
Florent Lamiraux's avatar
Florent Lamiraux committed
1
2
3
4
5
6
#
# Copyright (c) 2014 CNRS-LAAS
# Author: Florent Lamiraux
#

FCL_REPO=https://github.com/flexible-collision-library
Florent Lamiraux's avatar
Florent Lamiraux committed
7
JRL_REPO=https://github.com/jrl-umi3218
Florent Lamiraux's avatar
Florent Lamiraux committed
8
9
LAAS_REPO=https://github.com/laas
HPP_REPO=https://github.com/humanoid-path-planner
10
SOT_REPO=https://github.com/stack-of-tasks
Florent Lamiraux's avatar
Florent Lamiraux committed
11
12

SRC_DIR=${DEVEL_DIR}/src
13
14
INSTALL_DIR=${DEVEL_DIR}/install

Florent Lamiraux's avatar
Florent Lamiraux committed
15
BUILD_TYPE=Debug
16
17
18
19
20
ifeq (${BUILD_TYPE},Debug)
  BUILD_FOLDER=build
else
  BUILD_FOLDER=build-rel
endif
Florent Lamiraux's avatar
Florent Lamiraux committed
21

22
hpp-fcl_branch=devel
23
hpp-fcl_repository=${HPP_REPO}
24
hpp-fcl_extra_flags= -DCMAKE_BUILD_TYPE=Release
Florent Lamiraux's avatar
Florent Lamiraux committed
25

26
hpp-util_branch=devel
Florent Lamiraux's avatar
Florent Lamiraux committed
27
28
hpp-util_repository=${HPP_REPO}

29
hpp-model_branch=xxx
Florent Lamiraux's avatar
Florent Lamiraux committed
30
31
hpp-model_repository=${HPP_REPO}

32
pinocchio_branch=devel
33
34
35
36
37
38
39
pinocchio_repository=${SOT_REPO}
pinocchio_extra_flags= -DBUILD_PYTHON_INTERFACE=OFF

hpp-pinocchio_branch=master
hpp-pinocchio_repository=${HPP_REPO}

hpp-model-urdf_branch=xxx
Florent Lamiraux's avatar
Florent Lamiraux committed
40
41
hpp-model-urdf_repository=${HPP_REPO}

42
hpp-statistics_branch=devel
43
hpp-statistics_repository=${HPP_REPO}
44

45
hpp-core_branch=devel
46
hpp-core_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
47

48
hpp-template-corba_branch=devel
Florent Lamiraux's avatar
Florent Lamiraux committed
49
50
hpp-template-corba_repository=${LAAS_REPO}

51
hpp-corbaserver_branch=devel
52
hpp-corbaserver_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
53

54
qpOASES_branch=devel
55
56
qpOASES_repository=${HPP_REPO}

57
hpp-constraints_branch=devel
58
hpp-constraints_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
59

60
hpp-walkgen_branch=devel
Joseph Mirabel's avatar
Joseph Mirabel committed
61
62
hpp-walkgen_repository=${HPP_REPO}

63
hpp-wholebody-step_branch=devel
Florent Lamiraux's avatar
Florent Lamiraux committed
64
65
hpp-wholebody-step_repository=${HPP_REPO}

66
hpp-wholebody-step-corba_branch=devel
Florent Lamiraux's avatar
Florent Lamiraux committed
67
68
hpp-wholebody-step-corba_repository=${HPP_REPO}

69
test-hpp_branch=devel
70
test-hpp_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
71
72

hrp2_branch=groovy
Marine Heckler's avatar
Marine Heckler committed
73
hrp2_repository=${JRL_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
74

75
hpp-hrp2_branch=devel
76
hpp-hrp2_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
77

Florent Lamiraux's avatar
Florent Lamiraux committed
78
79
80
81
82
83
robot_capsule_urdf_branch=groovy
robot_capsule_urdf_repository=${LAAS_REPO}

robot_model_py_branch=groovy
robot_model_py_repository=${LAAS_REPO}

84
hpp-doc_branch=devel
85
hpp-doc_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
86

87
hpp-manipulation_branch=devel
88
hpp-manipulation_repository=${HPP_REPO}
89

90
hpp-manipulation-urdf_branch=devel
91
hpp-manipulation-urdf_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
92

93
hpp-manipulation-corba_branch=devel
94
hpp-manipulation-corba_repository=${HPP_REPO}
95

96
97
98
robot_state_chain_publisher_branch=master
robot_state_chain_publisher_repository=${HPP_REPO}

99
iai_maps_branch=devel
100
101
iai_maps_repository=${HPP_REPO}

102
hpp_tutorial_branch=devel
103
hpp_tutorial_repository=${HPP_REPO}
104
105
106

hpp_benchmark_branch=master
hpp_benchmark_repository=${HPP_REPO}
Florent Lamiraux's avatar
Florent Lamiraux committed
107

108
109
110
collada-dom_branch=master
collada-dom_repository=${HPP_REPO}

111
112
113
OpenSceneGraph-dae-plugin_branch=master
OpenSceneGraph-dae-plugin_repository=${HPP_REPO}

114
gepetto-viewer_branch=devel
115
116
gepetto-viewer_repository=${HPP_REPO}

117
gepetto-viewer-corba_branch=devel
118
119
gepetto-viewer-corba_repository=${HPP_REPO}

120
hpp-gepetto-viewer_branch=devel
121
hpp-gepetto-viewer_repository=${HPP_REPO}
122

123
124
125
126
127
pythonqt_branch=patched-5
pythonqt_repository=${HPP_REPO}
pythonqt_extra_flags= -DPythonQt_Wrap_QtAll=ON -DPythonQt_Extensions=ON

qgv_branch=devel
128
129
qgv_repository=${HPP_REPO}

130
hpp-environments_branch=devel
131
132
hpp-environments_repository=${HPP_REPO}

133
hpp-baxter_branch=devel
134
135
hpp-baxter_repository=${HPP_REPO}

136
OpenSceneGraph-dae-plugin_extra_flags= -DCOLLADA_DYNAMIC_LIBRARY=${INSTALL_DIR}/lib/libcollada14dom.so -DCOLLADA_INCLUDE_DIR=${INSTALL_DIR}/include/collada-dom
137

Joseph Mirabel's avatar
Joseph Mirabel committed
138
139
doxygen-Release_1_8_10_extra_flags= -DCMAKE_BUILD_TYPE=Release

140
141
142
143
144
145
roboptim-core-3.1_extra_flags= -DCMAKE_BUILD_TYPE=Release

roboptim-trajectory-3.1_extra_flags= -DCMAKE_BUILD_TYPE=Release

qpOASES_extra_flags= -DCMAKE_BUILD_TYPE=Release

Joseph Mirabel's avatar
Joseph Mirabel committed
146
all: doxygen-Release_1_8_10.install hpp_tutorial.install \
147
	hpp-manipulation-corba.install 	hpp-gepetto-viewer.install
148
	${MAKE} hpp-doc.install
Florent Lamiraux's avatar
Florent Lamiraux committed
149

Marine Heckler's avatar
Marine Heckler committed
150
# source $DEVEL_DIR/install/setup.bash before installing hrp2.
151
152
hrp2: test-hpp.install

Joseph Mirabel's avatar
Joseph Mirabel committed
153
hpp-fcl.configure.dep: eigen3.install hpp-fcl.checkout
154
eigen3.configure.dep: eigen3.checkout
Joseph Mirabel's avatar
Joseph Mirabel committed
155
doxygen-Release_1_8_10.configure.dep: doxygen-Release_1_8_10.checkout
Joseph Mirabel's avatar
Joseph Mirabel committed
156
157
roboptim-core-3.1.configure.dep: eigen3.install roboptim-core-3.1.checkout
roboptim-trajectory-3.1.configure.dep: roboptim-core-3.1.install \
158
	roboptim-trajectory-3.1.checkout
Joseph Mirabel's avatar
Joseph Mirabel committed
159
160
hpp-walkgen.configure.dep: hpp-util.install hpp-core.install \
        roboptim-trajectory-3.1.install hpp-walkgen.checkout
161
hpp-util.configure.dep: hpp-util.checkout
162
hpp-model.configure.dep: hpp-util.install hpp-fcl.install \
163
164
	eigen3.install hpp-model.checkout
hpp-model-urdf.configure.dep: hpp-model.install hpp-model-urdf.checkout
165
166
167
pinocchio.configure.dep: eigen3.install hpp-fcl.install pinocchio.checkout
hpp-pinocchio.configure.dep: pinocchio.install hpp-util.install \
	hpp-pinocchio.checkout
168
169
170
hpp-statistics.configure.dep: hpp-statistics.checkout
hpp-core.configure.dep: hpp-constraints.install hpp-statistics.install \
	hpp-core.checkout
171
qpOASES.configure.dep: qpOASES.checkout
172
173
hpp-constraints.configure.dep: qpOASES.install \
	hpp-pinocchio.install hpp-constraints.checkout
Joseph Mirabel's avatar
Joseph Mirabel committed
174
hpp-wholebody-step.configure.dep: hpp-constraints.install hpp-walkgen.install \
175
176
	hpp-wholebody-step.checkout
hpp-manipulation.configure.dep: hpp-core.install hpp-constraints.install \
177
	hpp-manipulation.checkout
178
hpp-manipulation-urdf.configure.dep:hpp-manipulation.install \
179
180
	hpp-manipulation-urdf.checkout
hpp-corbaserver.configure.dep: hpp-core.install \
181
182
183
184
185
	hpp-constraints.install hpp-corbaserver.checkout
hpp-wholebody-step-corba.configure.dep: hpp-corbaserver.install \
	hpp-wholebody-step.install hpp-template-corba.install \
	hpp-wholebody-step-corba.checkout
hpp-template-corba.configure.dep: hpp-util.install hpp-template-corba.checkout
186
hpp-manipulation-corba.configure.dep: hpp-manipulation-urdf.install \
187
188
189
190
191
192
193
194
195
	hpp-wholebody-step-corba.install hpp-manipulation.install \
	hpp-manipulation-corba.checkout
robot_model_py.configure.dep: robot_model_py.checkout
robot_capsule_urdf.configure.dep: robot_model_py.install \
	robot_capsule_urdf.checkout
hpp-hrp2.configure.dep: hrp2.install hpp-corbaserver.install hpp-hrp2.checkout
hrp2.configure.dep: robot_capsule_urdf.install robot_model_py.install \
	hrp2.checkout
test-hpp.configure.dep: hpp-wholebody-step-corba.install \
196
	hpp-gepetto-viewer.install hpp-hrp2.install test-hpp.checkout
197
198
robot_state_chain_publisher.configure.dep: robot_state_chain_publisher.checkout
iai_maps.configure.dep: robot_state_chain_publisher.install iai_maps.checkout
199
200
hpp_tutorial.configure.dep: hpp-gepetto-viewer.install iai_maps.install \
	hpp-corbaserver.install hpp_tutorial.checkout
201
hpp_benchmark.configure.dep: hpp_benchmark.checkout
202
collada-dom.configure.dep: collada-dom.checkout
203
204
205
OpenSceneGraph-dae-plugin.configure.dep: collada-dom.install \
	OpenSceneGraph-dae-plugin.checkout
gepetto-viewer.configure.dep: OpenSceneGraph-dae-plugin.install \
206
207
208
209
	gepetto-viewer.checkout
gepetto-viewer-corba.configure.dep: gepetto-viewer.install \
	gepetto-viewer-corba.checkout
hpp-gepetto-viewer.configure.dep: gepetto-viewer-corba.install \
Florent Lamiraux's avatar
Florent Lamiraux committed
210
	hpp-corbaserver.install \
211
	hpp-gepetto-viewer.checkout
212
hpp-baxter.configure.dep: hpp-corbaserver.install hpp-baxter.checkout
213
pythonqt.configure.dep: pythonqt.checkout
214
215

status:
216
217
218
219
220
221
	@for child_dir in $$(ls ${SRC_DIR}); do \
		test -d "$$child_dir" || continue; \
		test -d "$$child_dir/.git" || continue; \
		cd "$$child_dir";\
		echo \
		"\033[1;36m------- Folder $$child_dir ---------------\033[0m"; \
222
		git --no-pager -c status.showUntrackedFiles=no status --short --branch; \
223
224
		cd ..; \
	done
225

Florent Lamiraux's avatar
Florent Lamiraux committed
226
227
228
229
230
231
232
log:
	@for child_dir in $$(ls ${SRC_DIR}); do \
		test -d "$$child_dir" || continue; \
		test -d "$$child_dir/.git" || continue; \
		${MAKE} "$$child_dir".log; \
	done

233
update:
234
	for d in hpp-util hpp-pinocchio hpp-core hpp-template-corba hpp-corbaserver hpp-constraints hpp-wholebody-step hpp-wholebody-step-corba hpp-doc ; do \
235
	echo "Updating $$d";\
236
	${MAKE} $$d.update; done
Florent Lamiraux's avatar
Florent Lamiraux committed
237
238
239

%.checkout:
	if [ -d $(@:.checkout=) ]; then \
240
		echo "$(@:.checkout=) already checkout out."; \
Florent Lamiraux's avatar
Florent Lamiraux committed
241
242
243
244
245
246
	else \
		git clone --recursive -b ${$(@:.checkout=)_branch} ${$(@:.checkout=)_repository}/$(@:.checkout=); \
	fi \

%.update:
	cd ${SRC_DIR}/$(@:.update=);\
247
248
	git remote rm origin;\
	git remote add origin ${$(@:.update=)_repository}/$(@:.update=);\
Florent Lamiraux's avatar
Florent Lamiraux committed
249
250
251
252
253
254
255
	git fetch origin;\
	git checkout -b bce46g origin/${$(@:.update=)_branch};\
	git branch -D ${$(@:.update=)_branch};\
	git checkout -b ${$(@:.update=)_branch} bce46g;\
	git branch -D bce46g;\
	git submodule update

256
257
258
259
260
261
262
%.configure:%.configure.dep %.confthis
	: # Do nothing else

%.confthis:%.checkout
	mkdir -p ${SRC_DIR}/$(@:.confthis=)/${BUILD_FOLDER}; \
	cd ${SRC_DIR}/$(@:.confthis=)/${BUILD_FOLDER}; \
	cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" ${$(@:.confthis=)_extra_flags} ..
Florent Lamiraux's avatar
Florent Lamiraux committed
263

Florent Lamiraux's avatar
Florent Lamiraux committed
264
%.install:%.configure
265
266
267
268
	${MAKE} -C ${SRC_DIR}/$(@:.install=)/${BUILD_FOLDER} install

%.instthis:%.confthis
	${MAKE} -C ${SRC_DIR}/$(@:.instthis=)/${BUILD_FOLDER} install
Florent Lamiraux's avatar
Florent Lamiraux committed
269
270

%.uninstall:
271
	${MAKE} -C ${SRC_DIR}/$(@:.uninstall=)/${BUILD_FOLDER} uninstall
Florent Lamiraux's avatar
Florent Lamiraux committed
272
273

%.clean:
274
	${MAKE} -C ${SRC_DIR}/$(@:.clean=)/${BUILD_FOLDER} clean
Florent Lamiraux's avatar
Florent Lamiraux committed
275

276
%.very-clean:
277
	rm -rf ${SRC_DIR}/$(@:.very-clean=)/${BUILD_FOLDER}/*
278

Florent Lamiraux's avatar
Florent Lamiraux committed
279
280
281
%.status:
	cd ${SRC_DIR}/$(@:.status=); git status

Florent Lamiraux's avatar
Florent Lamiraux committed
282
283
284
285
286
287
288
289
%.log:
	@cd ${SRC_DIR}/$(@:.log=); \
	if [ -f .git/refs/heads/${$(@:.log=)_branch} ]; then \
		echo -n "$(@:.log=): "; \
		cat .git/refs/heads/${$(@:.log=)_branch}; \
	fi


Florent Lamiraux's avatar
Florent Lamiraux committed
290
hpp-doc.configure: hpp-doc.checkout
Florent Lamiraux's avatar
Florent Lamiraux committed
291
292
	cd ${SRC_DIR}/$(@:.configure=);\
	./bootstrap;\
293
294
	mkdir -p ${BUILD_FOLDER}; \
	cd ${SRC_DIR}/$(@:.configure=)/${BUILD_FOLDER}; \
295
	../configure --prefix=${INSTALL_DIR}
Florent Lamiraux's avatar
Florent Lamiraux committed
296
297

eigen3.checkout:
298
299
300
	if [ -d $(@:.checkout=) ]; then \
		echo "$(@:.checkout=) already checkout out."; \
	else \
301
302
		wget -O - "http://bitbucket.org/eigen/eigen/get/3.2.4.tar.bz2" | tar -xj; \
		mv eigen-eigen-10219c95fe65 eigen3;\
303
	fi
Florent Lamiraux's avatar
Florent Lamiraux committed
304

305
eigen3.configure: eigen3.configure.dep
Florent Lamiraux's avatar
Florent Lamiraux committed
306
	cd ${SRC_DIR}/eigen3;\
307
308
	mkdir -p ${BUILD_FOLDER}; \
	cd ${SRC_DIR}/eigen3/${BUILD_FOLDER}; \
309
	cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -Dpkg_config_libdir=${INSTALL_DIR}/lib ..
Florent Lamiraux's avatar
Florent Lamiraux committed
310

Joseph Mirabel's avatar
Joseph Mirabel committed
311
312
313
314
roboptim-core-3.1.checkout:
	if [ -d $(@:.checkout=) ]; then \
		echo "$(@:.checkout=) already checkout out."; \
	else \
315
		wget -O - "https://github.com/roboptim/roboptim-core/releases/download/v3.1/roboptim-core-3.1.tar.bz2" | tar -xj; \
Joseph Mirabel's avatar
Joseph Mirabel committed
316
317
318
319
320
321
322
323
324
	fi

roboptim-trajectory-3.1.checkout:
	if [ -d $(@:.checkout=) ]; then \
		echo "$(@:.checkout=) already checkout out."; \
	else \
	        wget -O - "https://github.com/roboptim/roboptim-trajectory/releases/download/v3.1/roboptim-trajectory-3.1.tar.bz2" | tar -xj; \
	fi

Joseph Mirabel's avatar
Joseph Mirabel committed
325
326
327
328
329
330
331
doxygen-Release_1_8_10.checkout:
	if [ -d $(@:.checkout=) ]; then \
		echo "$(@:.checkout=) already checkout out."; \
	else \
		wget -O - "https://github.com/doxygen/doxygen/archive/Release_1_8_10.tar.gz" | tar -xz;\
	fi

332
hrp2.configure: hrp2.configure.dep
333
	. ${INSTALL_DIR}/setup.sh; \
Florent Lamiraux's avatar
Florent Lamiraux committed
334
	cd ${SRC_DIR}/hrp2/hrp2_14_description;\
335
336
	mkdir -p ${BUILD_FOLDER}; \
	cd ${SRC_DIR}/hrp2/hrp2_14_description/${BUILD_FOLDER}; \
337
	cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
Florent Lamiraux's avatar
Florent Lamiraux committed
338

Florent Lamiraux's avatar
Florent Lamiraux committed
339
hrp2.install: hrp2.configure
340
	${MAKE} -C ${SRC_DIR}/hrp2/hrp2_14_description/${BUILD_FOLDER} install
Florent Lamiraux's avatar
Florent Lamiraux committed
341

342
robot_model_py.configure: robot_model_py.configure.dep
Florent Lamiraux's avatar
Florent Lamiraux committed
343
	cd ${SRC_DIR}/$(@:.configure=)/xml_reflection;\
344
345
	mkdir -p ${BUILD_FOLDER}; \
	cd ${BUILD_FOLDER}; \
346
	cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
Florent Lamiraux's avatar
Florent Lamiraux committed
347
	cd ${SRC_DIR}/$(@:.configure=)/urdf_parser_py;\
348
349
	mkdir -p ${BUILD_FOLDER}; \
	cd ${BUILD_FOLDER}; \
350
	cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
Marine Heckler's avatar
Marine Heckler committed
351

Florent Lamiraux's avatar
Florent Lamiraux committed
352
robot_model_py.install: robot_model_py.configure
353
354
	${MAKE} -C ${SRC_DIR}/$(@:.install=)/xml_reflection/${BUILD_FOLDER} install; \
	${MAKE} -C ${SRC_DIR}/$(@:.install=)/urdf_parser_py/${BUILD_FOLDER} install;