Makefile 13.9 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 209 210 211
ifndef PYLON_ROOT
PYLON_ROOT	:= /opt/pylon
endif

BASLER_LDFLAGS	:= $(LDFLAGS) -L. -L$(PYLON_ROOT)/lib -L$(PYLON_ROOT)/lib64
212
BASLER_LDLIBS	:= $(LDLIBS) -lpylongigesupp
213

214
basler-name	:= basler
215
basler-objs	:= ../camera/basler/src/Basler.o
216
basler-ver	:= ../camera/basler/VERSION
217 218 219
basler-flags	:= $(BASLER_LDFLAGS)
basler-deps	:= $(BASLER_LDLIBS)

220 221 222 223 224 225 226
$(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
227 228
endif

Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
229 230 231 232 233 234
############################
# LIMA - UEYE
############################

ifneq ($(COMPILE_UEYE),0)

235 236
UEYE_LDFLAGS	:= $(LDFLAGS)
UEYE_LDLIBS	:= $(LDLIBS) -lueye_api
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
237

238
ueye-name	:= ueye
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
239
ueye-objs	:= ../camera/ueye/src/Ueye.o
240
ueye-ver	:= ../camera/ueye/VERSION
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
241 242 243
ueye-flags	:= $(UEYE_LDFLAGS)
ueye-deps	:= $(UEYE_LDLIBS)

244 245 246 247 248 249 250
$(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
251 252
endif

Florent Langlois's avatar
Florent Langlois committed
253 254 255 256 257 258 259 260 261 262
############################
# 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
263 264
PROSILICA_LDFLAGS	:= -L. -L../camera/prosilica/sdk/bin/x64 \
			   -L../camera/prosilica/sdk/bin/x86
Florent Langlois's avatar
Florent Langlois committed
265 266 267
endif
PROSILICA_LDLIBS	:= -lPvAPI

268
prosilica-name	:= prosilica
Florent Langlois's avatar
Florent Langlois committed
269
prosilica-objs	:= ../camera/prosilica/src/Prosilica.o
270
prosilica-ver	:= ../camera/prosilica/VERSION
271 272
prosilica-flags	:= $(LDFLAGS) $(PROSILICA_LDFLAGS)
prosilica-deps	:= $(LDLIBS) $(PROSILICA_LDLIBS)
273

274 275 276 277 278 279 280
$(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))

281 282
endif

teresa's avatar
teresa committed
283 284 285 286 287 288 289

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

ifneq ($(COMPILE_ROPERSCIENTIFIC),0)

290
ROPERSCIENTIFIC_LDLIBS	:= $(LDLIBS) -lpvcam -lraw1394
teresa's avatar
teresa committed
291

292 293 294 295 296
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
297

298 299 300 301
$(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
302

303
build_targets	+= $(call lib-full,$(ropersci-name),$(ropersci-ver))
teresa's avatar
teresa committed
304 305 306

endif

307

308 309 310 311 312 313
############################
# LIMA - ADSC
############################

ifneq ($(COMPILE_ADSC),0)

314 315
ADSC_LDFLAGS	:= $(LDFLAGS) -L. -L../camera/adsc/sdk/adsc_sources/lib/linux
ADSC_LDLIBS	:= $(LDLIBS) -lauxlib -ldetcon_th
316 317

adsc-name	:= adsc
318
adsc-objs	:= ../camera/adsc/src/Adsc.o
319
adsc-ver	:= ../camera/adsc/VERSION
320 321 322
adsc-flags	:= $(ADSC_LDFLAGS)
adsc-deps	:= $(ADSC_LDLIBS)

323 324 325 326
$(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))
327

328
build_targets	+= $(call lib-full,$(adsc-name),$(adsc-ver))
329 330 331 332

endif


teresa's avatar
teresa committed
333 334 335 336 337 338
############################
# LIMA - MYTHEN
############################

ifneq ($(COMPILE_MYTHEN),0)

339
MYTHEN_LDLIBS	:= $(LDLIBS) -lSlsDetector
340 341

mythen-name	:= mythen
teresa's avatar
teresa committed
342
mythen-objs	:= ../camera/mythen/src/Mythen.o
343
mythen-ver	:= ../camera/mythen/VERSION
teresa's avatar
teresa committed
344 345 346
mythen-flags	:= $(LDFLAGS)
mythen-deps	:= $(MYTHEN_LDLIBS)

347 348 349 350
$(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))
351

352
build_targets	+= $(call lib-full,$(mythen-name),$(mythen-ver))
353

354
endif
teresa's avatar
teresa committed
355

356

357 358 359 360 361 362
############################
# LIMA - ANDOR
############################

ifneq ($(COMPILE_ANDOR),0)

363 364
ANDOR_LDFLAGS	:= $(LDFLAGS) -L. -L/usr/local/lib
ANDOR_LDLIBS	:= $(LDLIBS) -landor
365

366
andor-name	:= andor
367
andor-objs	:= ../camera/andor/src/Andor.o
368
andor-ver	:= ../camera/andor/VERSION
369 370 371
andor-flags	:= $(ANDOR_LDFLAGS)
andor-deps	:= $(ANDOR_LDLIBS)

372 373 374 375 376 377 378
$(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))

379 380
endif

381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403
############################
# 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
404

405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428

############################
# LIMA - XH
############################

ifneq ($(COMPILE_XH),0)

XH_LDLIBS	:= 

xh-name	:= xh
xh-objs	:= ../camera/xh/src/Xh.o
xh-ver	:= ../camera/xh/VERSION
xh-flags	:= $(LDFLAGS)
xh-deps	:= $(XH_LDLIBS)

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

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

endif

429 430 431 432 433 434
############################
# LIMA - XPAD
############################

ifneq ($(COMPILE_XPAD),0)

435
XPAD_LDLIBS	:= $(LDLIBS) -L/home/xpix_user/PCI_VALIDATED/trunk/sw/xpci_lib \
436 437 438
		   -lxpci_lib -L../third-party/yat/lib/i386/static -lyat

xpad-name	:= xpad
439
xpad-objs	:= ../camera/xpad/src/Xpad.o
440
xpad-ver	:= ../camera/xpad/VERSION
441 442 443
xpad-flags	:= $(LDFLAGS)
xpad-deps	:= $(XPAD_LDLIBS)

444 445 446 447
$(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))
448

449
build_targets	+= $(call lib-full,$(xpad-name),$(xpad-ver))
450 451 452

endif

453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
############################
# 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
476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498
############################
# 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

Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
############################
# LIMA - IMXPAD
############################
ifneq ($(COMPILE_IMXPAD),0)

IMXPAD_LDFLAGS	:= $(LDFLAGS)
IMXPAD_LDLIBS	:= $(LDLIBS)

imxpad-name	:= imxpad
imxpad-objs	:= ../camera/imxpad/src/imXpad.o
imxpad-ver	:= ../camera/imxpad/VERSION
imxpad-flags	:= $(IMXPAD_LDFLAGS)
imxpad-deps	:= $(IMXPAD_LDLIBS)

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

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

endif

522
src:		$(build_targets)
523 524 525 526

test:
	@true

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