Makefile 12.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
############################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2011
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
22

23 24
include ../config.inc

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

############################
# HELPER MACROS
############################

full-version	= $(shell cat $(1))
minor-version	= $(shell echo $(call full-version,$(1)) | cut -f1-2 -d.)
ifneq ($(LINK_STRICT_VERSION),0)
link-version	= $(call full-version,$(1))
else
link-version	= $(call minor-version,$(1))
endif

lib-base        = liblima$(1).so
lib-full        = $(call lib-base,$(1)).$(call full-version,$(2))
lib-minor       = $(call lib-base,$(1)).$(call minor-version,$(2))
lib-link	= $(call lib-base,$(1)).$(call link-version,$(2))
lib-flags	= -fPIC -Wl,-soname,$(call lib-link,$(1),$(2))

# 1=name, 2=ver-file 3=flags 4=deps, 5=target, 6=objs
compile-lib	= \
	$(CXX) -shared -o $(5) $(3) $(call lib-flags,$(1),$(2)) $(6) $(4)

create-links	= \
	rm -f $(call lib-minor,$(1),$(2)) && \
	rm -f $(call lib-base,$(1),$(2)) && \
	ln -s $(call lib-full,$(1),$(2))  $(call lib-minor,$(1),$(2)) && \
	ln -s $(call lib-minor,$(1),$(2)) $(call lib-base,$(1),$(2))


55 56 57 58
############################
# LIMA - CORE
############################

59
CORE_LDFLAGS	:= -L../third-party/Processlib/build -Wl,-rpath=$(shell pwd)/../third-party/Processlib/build
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
60
CORE_LDLIBS	:= -lprocesslib -lrt
61

seb's avatar
seb committed
62 63 64 65 66
ifneq ($(COMPILE_CBF_SAVING),0)
CORE_LDFLAGS += -L../third-party/CBFLib/lib
CORE_LDLIBS += -lcbf
endif

67
ifneq ($(COMPILE_FITS_SAVING),0)
68
CORE_LDFLAGS += -L../third-party/cfitsio/lib -L../third-party/CCfits/.libs
69 70 71
CORE_LDLIBS += -lCCfits -lcfitsio
endif

72 73 74 75
ifneq ($(COMPILE_EDFGZ_SAVING),0)
CORE_LDLIBS += -lz
endif

76 77 78 79
ifneq ($(COMPILE_CONFIG),0)
CORE_LDLIBS += -L../third-party/libconfig/lib/.libs -Wl,-rpath=$(shell pwd)/../third-party/libconfig/lib/.libs  -lconfig++
endif

80 81
ifneq ($(COMPILE_CORE),0)

82
core-name	:= core
ahoms's avatar
ahoms committed
83 84
core-objs	:= ../common/src/Common.o \
		   ../hardware/src/Hw.o \
ahoms's avatar
ahoms committed
85
		   ../control/src/Ct.o
86
core-ver	:= ../common/VERSION
ahoms's avatar
ahoms committed
87 88
core-flags	:= $(CORE_LDFLAGS)
core-deps	:= $(CORE_LDLIBS)
89

90 91 92 93
$(call lib-full,$(core-name),$(core-ver)): $(core-objs)
	$(call compile-lib,$(core-name),$(core-ver),\
			   $(core-flags),$(core-deps),$@,$+)
	$(call create-links,$(core-name),$(core-ver))
ahoms's avatar
ahoms committed
94

95
build_targets	:= $(call lib-full,$(core-name),$(core-ver))
96 97 98

endif

ahoms's avatar
ahoms committed
99 100
LDFLAGS		:= $(CORE_LDFLAGS) -L.
LDLIBS		:= $(CORE_LDLIBS) -llimacore
101 102 103 104 105 106 107 108


############################
# LIMA - SIMULATOR
############################

ifneq ($(COMPILE_SIMULATOR),0)

109
simu-name	:= simulator
ahoms's avatar
ahoms committed
110
simu-objs	:= ../camera/simulator/src/Simu.o
111
simu-ver	:= ../camera/simulator/VERSION
ahoms's avatar
ahoms committed
112 113 114
simu-flags	:= $(LDFLAGS)
simu-deps	:= $(LDLIBS)

115 116 117 118
$(call lib-full,$(simu-name),$(simu-ver)): $(simu-objs)
	$(call compile-lib,$(simu-name),$(simu-ver),\
			   $(simu-flags),$(simu-deps),$@,$+)
	$(call create-links,$(simu-name),$(simu-ver))
ahoms's avatar
ahoms committed
119

120
build_targets	+= $(call lib-full,$(simu-name),$(simu-ver))
121 122

endif
ahoms's avatar
ahoms committed
123

124 125 126 127 128

############################
# LIMA - ESPIA
############################

129 130 131

ifneq ($(COMPILE_ESPIA),0)

132
include ../camera/common/espia/include/espia.inc
ahoms's avatar
ahoms committed
133 134
ESPIA_LDFLAGS	:= $(LDFLAGS) -L$(ESPIA_DRV_LIB)
ESPIA_LDLIBS	:= $(LDLIBS) -lespia
135

136
espia-name	:= espia
ahoms's avatar
ahoms committed
137
espia-objs	:= ../camera/common/espia/src/Espia.o
138
espia-ver	:= ../camera/common/espia/VERSION
ahoms's avatar
ahoms committed
139 140 141
espia-flags	:= $(ESPIA_LDFLAGS)
espia-deps	:= $(ESPIA_LDLIBS)

142 143 144 145
$(call lib-full,$(espia-name),$(espia-ver)): $(espia-objs)
	$(call compile-lib,$(espia-name),$(espia-ver),\
			   $(espia-flags),$(espia-deps),$@,$+)
	$(call create-links,$(espia-name),$(espia-ver))
ahoms's avatar
ahoms committed
146

147
build_targets	+= $(call lib-full,$(espia-name),$(espia-ver))
148

149 150
endif

151 152 153 154 155

############################
# LIMA - FRELON
############################

156
ifneq ($(COMPILE_FRELON),0)
157

ahoms's avatar
ahoms committed
158 159 160
FRELON_LDFLAGS	:= $(ESPIA_LDFLAGS) -L.
FRELON_LDLIBS	:= $(ESPIA_LDLIBS) -llimaespia

161
frelon-name	:= frelon
ahoms's avatar
ahoms committed
162
frelon-objs	:= ../camera/frelon/src/Frelon.o
163
frelon-ver	:= ../camera/frelon/VERSION
ahoms's avatar
ahoms committed
164 165 166
frelon-flags	:= $(FRELON_LDFLAGS)
frelon-deps	:= $(FRELON_LDLIBS)

167 168 169 170
$(call lib-full,$(frelon-name),$(frelon-ver)): $(frelon-objs)
	$(call compile-lib,$(frelon-name),$(frelon-ver),\
			   $(frelon-flags),$(frelon-deps),$@,$+)
	$(call create-links,$(frelon-name),$(frelon-ver))
171

172
build_targets	+= $(call lib-full,$(frelon-name),$(frelon-ver))
173

174 175
endif

176 177 178 179 180

############################
# LIMA - MAXIPIX
############################

181
ifneq ($(COMPILE_MAXIPIX),0)
182

ahoms's avatar
ahoms committed
183 184 185
MAXIPIX_LDFLAGS	:= $(ESPIA_LDFLAGS) -L.
MAXIPIX_LDLIBS	:= $(ESPIA_LDLIBS) -llimaespia

186
maxipix-name	:= maxipix
ahoms's avatar
ahoms committed
187
maxipix-objs	:= ../camera/maxipix/src/Maxipix.o
188
maxipix-ver	:= ../camera/maxipix/VERSION
ahoms's avatar
ahoms committed
189 190 191
maxipix-flags	:= $(MAXIPIX_LDFLAGS)
maxipix-deps	:= $(MAXIPIX_LDLIBS)

192 193 194 195
$(call lib-full,$(maxipix-name),$(maxipix-ver)): $(maxipix-objs)
	$(call compile-lib,$(maxipix-name),$(maxipix-ver),\
			   $(maxipix-flags),$(maxipix-deps),$@,$+)
	$(call create-links,$(maxipix-name),$(maxipix-ver))
196

197
build_targets	+= $(call lib-full,$(maxipix-name),$(maxipix-ver))
198 199 200

endif

201 202 203 204 205 206
############################
# LIMA - BASLER
############################

ifneq ($(COMPILE_BASLER),0)

207 208
BASLER_LDFLAGS	:= $(LDFLAGS) -L. -L/opt/pylon/lib -L/opt/pylon/lib64
BASLER_LDLIBS	:= $(LDLIBS) -lpylongigesupp
209

210
basler-name	:= basler
211
basler-objs	:= ../camera/basler/src/Basler.o
212
basler-ver	:= ../camera/basler/VERSION
213 214 215
basler-flags	:= $(BASLER_LDFLAGS)
basler-deps	:= $(BASLER_LDLIBS)

216 217 218 219 220 221 222
$(call lib-full,$(basler-name),$(basler-ver)): $(basler-objs)
	$(call compile-lib,$(basler-name),$(basler-ver),\
			   $(basler-flags),$(basler-deps),$@,$+)
	$(call create-links,$(basler-name),$(basler-ver))

build_targets	+= $(call lib-full,$(basler-name),$(basler-ver))

Florent Langlois's avatar
Florent Langlois committed
223 224
endif

Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
225 226 227 228 229 230
############################
# LIMA - UEYE
############################

ifneq ($(COMPILE_UEYE),0)

231 232
UEYE_LDFLAGS	:= $(LDFLAGS)
UEYE_LDLIBS	:= $(LDLIBS) -lueye_api
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
233

234
ueye-name	:= ueye
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
235
ueye-objs	:= ../camera/ueye/src/Ueye.o
236
ueye-ver	:= ../camera/ueye/VERSION
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
237 238 239
ueye-flags	:= $(UEYE_LDFLAGS)
ueye-deps	:= $(UEYE_LDLIBS)

240 241 242 243 244 245 246
$(call lib-full,$(ueye-name),$(ueye-ver)): $(ueye-objs)
	$(call compile-lib,$(ueye-name),$(ueye-ver),\
			   $(ueye-flags),$(ueye-deps),$@,$+)
	$(call create-links,$(ueye-name),$(ueye-ver))

build_targets	+= $(call lib-full,$(ueye-name),$(ueye-ver))

Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
247 248
endif

Florent Langlois's avatar
Florent Langlois committed
249 250 251 252 253 254 255 256 257 258
############################
# LIMA - PROSILICA
############################

ifneq ($(COMPILE_PROSILICA),0)

PROCESSOR_TYPE := $(shell uname -i)
ifeq ($(PROCESSOR_TYPE),i386)
PROSILICA_LDFLAGS	:= -L. -L../camera/prosilica/sdk/bin/x86
else
259 260
PROSILICA_LDFLAGS	:= -L. -L../camera/prosilica/sdk/bin/x64 \
			   -L../camera/prosilica/sdk/bin/x86
Florent Langlois's avatar
Florent Langlois committed
261 262 263
endif
PROSILICA_LDLIBS	:= -lPvAPI

264
prosilica-name	:= prosilica
Florent Langlois's avatar
Florent Langlois committed
265
prosilica-objs	:= ../camera/prosilica/src/Prosilica.o
266
prosilica-ver	:= ../camera/prosilica/VERSION
267 268
prosilica-flags	:= $(LDFLAGS) $(PROSILICA_LDFLAGS)
prosilica-deps	:= $(LDLIBS) $(PROSILICA_LDLIBS)
269

270 271 272 273 274 275 276
$(call lib-full,$(prosilica-name),$(prosilica-ver)): $(prosilica-objs)
	$(call compile-lib,$(prosilica-name),$(prosilica-ver),\
			   $(prosilica-flags),$(prosilica-deps),$@,$+)
	$(call create-links,$(prosilica-name),$(prosilica-ver))

build_targets	+= $(call lib-full,$(prosilica-name),$(prosilica-ver))

277 278
endif

teresa's avatar
teresa committed
279 280 281 282 283 284 285

############################
# LIMA - ROPERSCIENTIFIC
############################

ifneq ($(COMPILE_ROPERSCIENTIFIC),0)

286
ROPERSCIENTIFIC_LDLIBS	:= $(LDLIBS) -lpvcam -lraw1394
teresa's avatar
teresa committed
287

288 289 290 291 292
ropersci-name	:= roperscientific
ropersci-objs	:= ../camera/roperscientific/src/RoperScientific.o
ropersci-ver	:= ../camera/roperscientific/VERSION
ropersci-flags	:= $(LDFLAGS)
ropersci-deps	:= $(ROPERSCIENTIFIC_LDLIBS)
teresa's avatar
teresa committed
293

294 295 296 297
$(call lib-full,$(ropersci-name),$(ropersci-ver)): $(ropersci-objs)
	$(call compile-lib,$(ropersci-name),$(ropersci-ver),\
			   $(ropersci-flags),$(ropersci-deps),$@,$+)
	$(call create-links,$(ropersci-name),$(ropersci-ver))
teresa's avatar
teresa committed
298

299
build_targets	+= $(call lib-full,$(ropersci-name),$(ropersci-ver))
teresa's avatar
teresa committed
300 301 302

endif

303

304 305 306 307 308 309
############################
# LIMA - ADSC
############################

ifneq ($(COMPILE_ADSC),0)

310 311
ADSC_LDFLAGS	:= $(LDFLAGS) -L. -L../camera/adsc/sdk/adsc_sources/lib/linux
ADSC_LDLIBS	:= $(LDLIBS) -lauxlib -ldetcon_th
312 313

adsc-name	:= adsc
314
adsc-objs	:= ../camera/adsc/src/Adsc.o
315
adsc-ver	:= ../camera/adsc/VERSION
316 317 318
adsc-flags	:= $(ADSC_LDFLAGS)
adsc-deps	:= $(ADSC_LDLIBS)

319 320 321 322
$(call lib-full,$(adsc-name),$(adsc-ver)): $(adsc-objs)
	$(call compile-lib,$(adsc-name),$(adsc-ver),\
			   $(adsc-flags),$(adsc-deps),$@,$+)
	$(call create-links,$(adsc-name),$(adsc-ver))
323

324
build_targets	+= $(call lib-full,$(adsc-name),$(adsc-ver))
325 326 327 328

endif


teresa's avatar
teresa committed
329 330 331 332 333 334
############################
# LIMA - MYTHEN
############################

ifneq ($(COMPILE_MYTHEN),0)

335
MYTHEN_LDLIBS	:= $(LDLIBS) -lSlsDetector
336 337

mythen-name	:= mythen
teresa's avatar
teresa committed
338
mythen-objs	:= ../camera/mythen/src/Mythen.o
339
mythen-ver	:= ../camera/mythen/VERSION
teresa's avatar
teresa committed
340 341 342
mythen-flags	:= $(LDFLAGS)
mythen-deps	:= $(MYTHEN_LDLIBS)

343 344 345 346
$(call lib-full,$(mythen-name),$(mythen-ver)): $(mythen-objs)
	$(call compile-lib,$(mythen-name),$(mythen-ver),\
			   $(mythen-flags),$(mythen-deps),$@,$+)
	$(call create-links,$(mythen-name),$(mythen-ver))
347

348
build_targets	+= $(call lib-full,$(mythen-name),$(mythen-ver))
349

350
endif
teresa's avatar
teresa committed
351

352

353 354 355 356 357 358
############################
# LIMA - ANDOR
############################

ifneq ($(COMPILE_ANDOR),0)

359 360
ANDOR_LDFLAGS	:= $(LDFLAGS) -L. -L/usr/local/lib
ANDOR_LDLIBS	:= $(LDLIBS) -landor
361

362
andor-name	:= andor
363
andor-objs	:= ../camera/andor/src/Andor.o
364
andor-ver	:= ../camera/andor/VERSION
365 366 367
andor-flags	:= $(ANDOR_LDFLAGS)
andor-deps	:= $(ANDOR_LDLIBS)

368 369 370 371 372 373 374
$(call lib-full,$(andor-name),$(andor-ver)): $(andor-objs)
	$(call compile-lib,$(andor-name),$(andor-ver),\
			   $(andor-flags),$(andor-deps),$@,$+)
	$(call create-links,$(andor-name),$(andor-ver))

build_targets	+= $(call lib-full,$(andor-name),$(andor-ver))

375 376
endif

377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
############################
# LIMA - MARCCD
############################

ifneq ($(COMPILE_MARCCD),0)

MARCCD_LDFLAGS	:= $(LDFLAGS) -L. -L../third-party/yat/src/.libs
MARCCD_LDLIBS	:= $(LDLIBS) -lyat -lrt

marccd-name	:= marccd
marccd-objs	:= ../camera/marccd/src/Marccd.o
marccd-ver	:= ../camera/marccd/VERSION
marccd-flags	:= $(MARCCD_LDFLAGS)
marccd-deps	:= $(MARCCD_LDLIBS)

$(call lib-full,$(marccd-name),$(marccd-ver)): $(marccd-objs)
	$(call compile-lib,$(marccd-name),$(marccd-ver),\
			   $(marccd-flags),$(marccd-deps),$@,$+)
	$(call create-links,$(marccd-name),$(marccd-ver))

build_targets	+= $(call lib-full,$(marccd-name),$(marccd-ver))

endif
400

401 402 403 404 405 406
############################
# LIMA - XPAD
############################

ifneq ($(COMPILE_XPAD),0)

407
XPAD_LDLIBS	:= $(LDLIBS) -L/home/xpix_user/PCI_VALIDATED/trunk/sw/xpci_lib \
408 409 410
		   -lxpci_lib -L../third-party/yat/lib/i386/static -lyat

xpad-name	:= xpad
411
xpad-objs	:= ../camera/xpad/src/Xpad.o
412
xpad-ver	:= ../camera/xpad/VERSION
413 414 415
xpad-flags	:= $(LDFLAGS)
xpad-deps	:= $(XPAD_LDLIBS)

416 417 418 419
$(call lib-full,$(xpad-name),$(xpad-ver)): $(xpad-objs)
	$(call compile-lib,$(xpad-name),$(xpad-ver),\
			   $(xpad-flags),$(xpad-deps),$@,$+)
	$(call create-links,$(xpad-name),$(xpad-ver))
420

421
build_targets	+= $(call lib-full,$(xpad-name),$(xpad-ver))
422 423 424

endif

425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447
############################
# LIMA - PILATUS
############################

ifneq ($(COMPILE_PILATUS),0)

PILATUS_LDLIBS	:= 

pilatus-name	:= pilatus
pilatus-objs	:= ../camera/pilatus/src/Pilatus.o
pilatus-ver	:= ../camera/pilatus/VERSION
pilatus-flags	:= $(LDFLAGS)
pilatus-deps	:= $(PILATUS_LDLIBS)

$(call lib-full,$(pilatus-name),$(pilatus-ver)): $(pilatus-objs)
	$(call compile-lib,$(pilatus-name),$(pilatus-ver),\
			   $(pilatus-flags),$(pilatus-deps),$@,$+)
	$(call create-links,$(pilatus-name),$(pilatus-ver))

build_targets	+= $(call lib-full,$(pilatus-name),$(pilatus-ver))

endif

Andreas Persson's avatar
Andreas Persson committed
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
############################
# LIMA - POINTGREY
############################
ifneq ($(COMPILE_POINTGREY),0)

POINTGREY_LDFLAGS	:= $(LDFLAGS)
POINTGREY_LDLIBS	:= $(LDLIBS) -lflycapture

pointgrey-name	:= pointgrey
pointgrey-objs	:= ../camera/pointgrey/src/PointGrey.o
pointgrey-ver	:= ../camera/pointgrey/VERSION
pointgrey-flags	:= $(POINTGREY_LDFLAGS)
pointgrey-deps	:= $(POINTGREY_LDLIBS)

$(call lib-full,$(pointgrey-name),$(pointgrey-ver)): $(pointgrey-objs)
	$(call compile-lib,$(pointgrey-name),$(pointgrey-ver),\
			   $(pointgrey-flags),$(pointgrey-deps),$@,$+)
	$(call create-links,$(pointgrey-name),$(pointgrey-ver))

build_targets	+= $(call lib-full,$(pointgrey-name),$(pointgrey-ver))

endif

471
src:		$(build_targets)
472 473 474 475

test:
	@true

kirov's avatar
kirov committed
476
clean:
ahoms's avatar
ahoms committed
477
	rm -f *.o liblima*.so*