160
163
LLVM_CLANG_TAR=clang-$(LLVM_VER).src.tar.gz
161
164
LLVM_COMPILER_RT_TAR=compiler-rt-$(LLVM_VER).src.tar.gz
168
LLVM_COMPILER_RT_TAR=
171
LLVM_FLAGS = --disable-threads --disable-profiling --enable-shared --enable-targets=host --disable-bindings --disable-docs
173
ifeq ($(LLVM_ASSERTIONS), 1)
174
LLVM_FLAGS += --enable-assertions --enable-optimized
176
LLVM_FLAGS += --disable-embed-stdcxx
179
LLVM_FLAGS += --disable-assertions --enable-optimized
182
ifeq ($(BUILD_LLDB),1)
184
LLVM_FLAGS += --enable-cxx11
186
LLVM_MFLAGS += CXXFLAGS=-std=c++0x
190
ifeq ($(ARCH), ppc64)
191
LLVM_FLAGS += CXXFLAGS=-mminimal-toc
192
LLVM_MFLAGS += CXXFLAGS=-mminimal-toc
166
195
ifneq ($(LLVM_CLANG_TAR),)
167
196
$(LLVM_CLANG_TAR):
168
197
$(WGET) http://llvm.org/releases/$(LLVM_VER)/$@
171
199
ifneq ($(LLVM_COMPILER_RT_TAR),)
172
200
$(LLVM_COMPILER_RT_TAR):
173
201
$(WGET) http://llvm.org/releases/$(LLVM_VER)/$@
178
204
$(WGET) http://llvm.org/releases/$(LLVM_VER)/$@
180
ifeq ($(BUILD_LLDB), 1)
206
ifeq ($(BUILD_LLDB),1)
181
207
llvm-$(LLVM_VER)/tools/lldb:
182
208
llvm-$(LLVM_VER)/configure: llvm-$(LLVM_VER)/tools/lldb
211
## LLVM needs python 2.x, but doesn't check for it, so we have to use an ugly workaround to make it compile
212
llvm-$(LLVM_VER)/python2_path:
213
mkdir -p llvm-$(LLVM_VER)/python2_path
214
-python -c 'import sys; sys.exit(not sys.version_info > (3, 0))' && \
215
/usr/bin/python2 -c 'import sys; sys.exit(not sys.version_info < (3, 0))' && \
216
ln -sf /usr/bin/python2 "llvm-$(LLVM_VER)/python2_path/python"
217
llvm_python_workaround=llvm-$(LLVM_VER)/python2_path
185
219
llvm-$(LLVM_VER)/configure: $(LLVM_TAR) $(LLVM_CLANG_TAR) $(LLVM_COMPILER_RT_TAR)
186
220
mkdir -p llvm-$(LLVM_VER) && \
187
221
tar -C llvm-$(LLVM_VER) --strip-components 1 -xf $(LLVM_TAR)
199
233
git clone http://llvm.org/git/lldb.git)) || \
200
234
([ -d llvm-$(LLVM_VER)/tools/lldb ] && \
201
235
(cd llvm-$(LLVM_VER)/tools/lldb && \
206
## LLVM needs python 2.x, but doesn't check for it, so we have to use an ugly workaround to make it compile
207
llvm_python_workaround:
208
-python -c 'import sys; sys.exit(not sys.version_info > (3, 0))' && \
209
/usr/bin/python2 -c 'import sys; sys.exit(not sys.version_info < (3, 0))' && \
210
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
211
test ! -e llvm-$(LLVM_VER)/python2_path/python && \
212
mkdir -p llvm-$(LLVM_VER)/python2_path && \
213
ln -s /usr/bin/python2 "llvm-$(LLVM_VER)/python2_path/python"
215
LLVM_FLAGS = --disable-threads --enable-optimized --disable-profiling --enable-shared --enable-targets=host --disable-bindings --disable-docs
217
ifeq ($(LLVM_ASSERTIONS), 1)
218
LLVM_FLAGS += --enable-assertions
220
LLVM_FLAGS += --disable-assertions
222
ifeq ($(BUILD_LLDB),1)
223
ifeq ($(USE_CLANG),1)
224
LLVM_FLAGS += --enable-cxx11
226
LLVM_MFLAGS += CXXFLAGS=-std=c++0x
229
ifeq ($(ARCH), ppc64)
230
LLVM_FLAGS += CXXFLAGS=-mminimal-toc
231
LLVM_MFLAGS += CXXFLAGS=-mminimal-toc
234
ifeq (exists, $(shell [ -e llvm-$(LLVM_VER)/config.log ] && echo exists ))
235
# temporary hack to force rebuild of llvm if it was previously configured
236
# in the source directory
237
llvm-$(LLVM_VER)/configure: FORCE_LLVM_RECONFIGURE
238
FORCE_LLVM_RECONFIGURE:
239
rm -rf llvm-$(LLVM_VER)
242
$(LLVM_OBJ_SOURCE): llvm-$(LLVM_VER)/configure | llvm_python_workaround
237
cd llvm-$(LLVM_VER)/tools/lldb && git checkout origin/release_32
241
llvm-$(LLVM_VER)/build/config.status: llvm-$(LLVM_VER)/configure | $(llvm_python_workaround)
243
242
cd llvm-$(LLVM_VER) && \
244
243
mkdir -p build && cd build && \
245
244
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
246
../configure $(CONFIGURE_COMMON) $(LLVM_FLAGS) && \
245
../configure $(CONFIGURE_COMMON) $(LLVM_FLAGS)
247
$(LLVM_OBJ_SOURCE): llvm-$(LLVM_VER)/build/config.status | $(llvm_python_workaround)
248
cd llvm-$(LLVM_VER)/build && \
249
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
247
250
$(MAKE) $(LLVM_MFLAGS)
248
$(LLVM_OBJ_TARGET): $(LLVM_OBJ_SOURCE) | llvm_python_workaround
252
llvm-$(LLVM_VER)/build/checked: $(LLVM_OBJ_SOURCE) | $(llvm_python_workaround)
253
ifeq ($(OS),$(BUILD_OS))
254
cd llvm-$(LLVM_VER)/build && \
255
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
256
$(MAKE) $(LLVM_MFLAGS) check
259
$(LLVM_OBJ_TARGET): $(LLVM_OBJ_SOURCE) | $(llvm_python_workaround)
249
260
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
250
261
$(MAKE) -C llvm-$(LLVM_VER)/build install
251
262
$(INSTALL_NAME_CMD)$(LLVM_LIB_FILE) $(BUILD)/lib/$(LLVM_LIB_FILE)
263
$(AUTOTOOLS_PATH_CORRECT)
255
267
-$(MAKE) -C llvm-$(LLVM_VER)/build clean
258
270
-rm -rf llvm-$(LLVM_VER).tar.gz llvm-$(LLVM_VER).src.tar.gz clang-$(LLVM_VER).src.tar.gz clang-$(LLVM_VER).tar.gz compiler-rt-$(LLVM_VER).src.tar.gz llvm-$(LLVM_VER)
272
get-llvm: $(LLVM_TAR) $(LLVM_CLANG_TAR) $(LLVM_COMPILER_RT_TAR)
273
configure-llvm: llvm-$(LLVM_VER)/build/config.status
274
compile-llvm: $(LLVM_OBJ_SOURCE)
275
check-llvm: llvm-$(LLVM_VER)/build/checked
276
install-llvm: $(LLVM_OBJ_TARGET)
277
#todo: LLVM make check target is broken on julia.mit.edu (and really slow elsewhere)
260
280
## GNU readline ##
262
READLINE_OBJ_TARGET = $(BUILD)/lib/libreadline.$(SHLIB_EXT)
263
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/shlib/libreadline.$(READLINE_VER).$(SHLIB_EXT)
265
READLINE_OPTS = --disable-shared --enable-static
267
READLINE_URL = https://github.com/JuliaLang/readline/tarball/master
268
READLINE_CFLAGS = LOCAL_DEFS="-include $(abspath .)/readline-win.h"
270
READLINE_URL = ftp://ftp.gnu.org/gnu/readline/readline-$(READLINE_VER).tar.gz
271
READLINE_OPTS += --with-curses
275
compile-readline: $(READLINE_OBJ_SOURCE)
276
install-readline: $(READLINE_OBJ_TARGET)
284
READLINE_OBJ_TARGET = $(BUILD)/lib/libreadline.a
285
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/libreadline.a
286
READLINE_URL = https://github.com/JuliaLang/readline/tarball/master
287
READLINE_OPTS = --disable-shared --enable-static --with-curses
288
READLINE_CFLAGS = LOCAL_DEFS="-include $(abspath .)/readline-win.h"
280
289
readline-$(READLINE_VER).tar.gz:
281
290
$(WGET_DASH_O) $@ $(READLINE_URL)
282
292
readline-$(READLINE_VER)/configure: readline-$(READLINE_VER).tar.gz
283
293
mkdir readline-$(READLINE_VER)
284
294
tar -C readline-$(READLINE_VER) --strip-components 1 -xf $<
286
$(READLINE_OBJ_SOURCE): readline-$(READLINE_VER)/configure
287
cd readline-$(READLINE_VER) && \
288
chmod a+x ./configure && \
289
./configure $(CONFIGURE_COMMON) $(READLINE_OPTS) && \
290
$(MAKE) $(READLINE_CFLAGS)
292
$(READLINE_OBJ_TARGET): $(READLINE_OBJ_SOURCE)
296
$(READLINE_OBJ_TARGET): $(READLINE_OBJ_SOURCE) readline-$(READLINE_VER)/checked
293
297
$(MAKE) -C readline-$(READLINE_VER) $(READLINE_CFLAGS) install
297
-$(MAKE) -C readline-$(READLINE_VER) clean
298
-rm -f $(READLINE_OBJ_TARGET)
300
-rm -rf readline-$(READLINE_VER).tar.gz readline-$(READLINE_VER)
300
READLINE_OBJ_TARGET = $(BUILD)/lib/libreadline.$(SHLIB_EXT)
302
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/shlib/libreadline.$(SHLIB_EXT).$(READLINE_VER)
304
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/shlib/libreadline.$(READLINE_VER).$(SHLIB_EXT)
306
READLINE_URL = ftp://ftp.gnu.org/gnu/readline/readline-$(READLINE_VER).tar.gz
307
READLINE_OPTS = --enable-shared --enable-static --with-curses
304
309
readline-$(READLINE_VER).tar.gz:
305
$(WGET) http://ftp.gnu.org/gnu/readline/$@
306
310
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001
307
311
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-002
308
312
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-003
309
313
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-004
314
$(WGET) http://ftp.gnu.org/gnu/readline/$@
310
316
readline-$(READLINE_VER)/configure: readline-$(READLINE_VER).tar.gz
312
318
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-001
313
319
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-002
314
320
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-003
315
321
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-004
317
$(READLINE_OBJ_SOURCE): readline-$(READLINE_VER)/configure
318
cd readline-$(READLINE_VER) && \
319
./configure $(CONFIGURE_COMMON) --enable-shared --enable-static --with-curses && \
322
$(READLINE_OBJ_TARGET): $(READLINE_OBJ_SOURCE)
323
$(READLINE_OBJ_TARGET): $(READLINE_OBJ_SOURCE) readline-$(READLINE_VER)/checked
323
324
$(MAKE) -C readline-$(READLINE_VER) install
324
325
chmod +w $(BUILD)/lib/libreadline.* $(BUILD)/lib/libhistory.*
325
326
ifeq ($(OS), Darwin)
355
377
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
356
378
$(UV_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/libuv/HEAD
380
LIBUV_MAKE_FLAGS = -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
358
381
$(UV_OBJ_SOURCE): libuv/Makefile
359
382
ifneq ($(OS), WINNT)
360
$(MAKE) libuv.${SHLIB_EXT} -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
362
$(MAKE) libuv.a -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
383
$(MAKE) libuv.${SHLIB_EXT} $(LIBUV_MAKE_FLAGS)
385
$(MAKE) libuv.a $(LIBUV_MAKE_FLAGS)
387
libuv/checked: $(LIBUV_OBJ_SOURCE)
388
ifeq ($(OS),$(BUILD_OS))
389
$(MAKE) test $(LIBUV_MAKE_FLAGS)
392
#todo: libuv tests are really slow
363
393
$(UV_OBJ_TARGET): $(UV_OBJ_SOURCE)
364
394
mkdir -p $(BUILD)/include
365
395
cp $(UV_OBJ_SOURCE) $(BUILD)/lib/
366
396
cp -r libuv/include/* $(BUILD)/include
367
install-uv: $(UV_OBJ_TARGET)
370
399
-$(MAKE) -C libuv clean uname_S=$(uname_S)
371
400
-rm -rf $(BUILD)/lib/libuv.a $(BUILD)/include/uv.h $(BUILD)/include/uv-private
372
401
distclean-uv: clean-uv
403
get-uv: libuv/Makefile
405
compile-uv: $(UV_OBJ_SOURCE)
406
check-uv: libuv/checked
407
install-uv: $(UV_OBJ_TARGET)
412
PCRE_SRC_TARGET = pcre-$(PCRE_VER)/.libs/libpcre.$(SHLIB_EXT)
376
413
PCRE_OBJ_TARGET = $(BUILD)/lib/libpcre.$(SHLIB_EXT)
378
compile-pcre: install-pcre
379
install-pcre: $(PCRE_OBJ_TARGET)
381
415
pcre-$(PCRE_VER).tar.bz2:
382
416
$(WGET) ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$@
383
417
pcre-$(PCRE_VER)/configure: pcre-$(PCRE_VER).tar.bz2
386
420
pcre-$(PCRE_VER)/config.status: pcre-$(PCRE_VER)/configure
387
421
cd pcre-$(PCRE_VER) && \
388
422
./configure $(CONFIGURE_COMMON) --enable-utf --enable-unicode-properties --enable-jit
389
$(PCRE_OBJ_TARGET): pcre-$(PCRE_VER)/config.status
424
$(PCRE_SRC_TARGET): pcre-$(PCRE_VER)/config.status
425
$(MAKE) -C pcre-$(PCRE_VER) $(LIBTOOL_CCLD)
427
pcre-$(PCRE_VER)/checked: $(PCRE_SRC_TARGET)
428
ifeq ($(OS),$(BUILD_OS))
429
$(MAKE) -C pcre-$(PCRE_VER) check
432
$(PCRE_OBJ_TARGET): $(PCRE_SRC_TARGET) pcre-$(PCRE_VER)/checked
390
433
$(MAKE) -C pcre-$(PCRE_VER) $(LIBTOOL_CCLD) install
391
434
$(INSTALL_NAME_CMD)libpcre.dylib $@
392
435
ifeq ($(OS),WINNT)
393
436
-rm $(BUILD)/lib/libpcre.dll
394
437
mv $(BUILD)/bin/libpcre.dll $(BUILD)/lib/libpcre.dll
399
442
-$(MAKE) -C pcre-$(PCRE_VER) clean
427
481
OPENLIBM_FLAGS = ARCH="$(ARCH)"
484
OPENLIBM_FLAGS += CC="$(CC)" FC="$(FC)" AR="$(AR)" OS="$(OS)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
430
486
OPENLIBM_OBJ_TARGET = $(BUILD)/lib/libopenlibm.$(SHLIB_EXT)
431
487
OPENLIBM_OBJ_SOURCE = openlibm/libopenlibm.$(SHLIB_EXT)
488
OPENLIBMEXT_OBJ_TARGET = $(BUILD)/lib/libopenlibm-extras.$(SHLIB_EXT)
489
OPENLIBMEXT_OBJ_SOURCE = openlibm/libopenlibm-extras.$(SHLIB_EXT)
433
491
ifeq (exists, $(shell [ -d openlibm/.git ] && echo exists ))
434
492
$(OPENLIBM_OBJ_SOURCE): openlibm/.git/HEAD
493
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/.git/HEAD
436
495
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
437
496
$(OPENLIBM_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
497
$(OPENLIBMEXT_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
439
499
$(OPENLIBM_OBJ_SOURCE): openlibm/Makefile
440
$(MAKE) -C openlibm $(OPENLIBM_FLAGS) CC="$(CC)" FC="$(FC)" AR="$(AR)" OS="$(OS)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
500
$(MAKE) -C openlibm $(OPENLIBM_FLAGS)
502
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/Makefile.extras
503
$(MAKE) -C openlibm -f Makefile.extras $(OPENLIBM_FLAGS)
441
505
$(OPENLIBM_OBJ_TARGET): $(OPENLIBM_OBJ_SOURCE) | $(BUILD)/lib
443
507
$(INSTALL_NAME_CMD)libopenlibm.$(SHLIB_EXT) $@
444
install-openlibm: $(OPENLIBM_OBJ_TARGET)
508
$(OPENLIBMEXT_OBJ_TARGET): $(OPENLIBMEXT_OBJ_SOURCE) | $(BUILD)/lib
510
$(INSTALL_NAME_CMD)libopenlibm-extras.$(SHLIB_EXT) $@
447
513
-$(MAKE) -C openlibm distclean
448
514
-rm $(OPENLIBM_OBJ_TARGET)
449
distclean-openlibm: clean-openlibm
453
OPENLIBMEXT_OBJ_TARGET = $(BUILD)/lib/libopenlibm-extras.$(SHLIB_EXT)
454
OPENLIBMEXT_OBJ_SOURCE = openlibm/libopenlibm-extras.$(SHLIB_EXT)
456
openlibm-extras/Makefile:
457
(cd .. && git submodule init && git submodule update)
458
ifeq (exists, $(shell [ -d openlibm/.git ] && echo exists ))
459
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/.git/HEAD
461
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
462
$(OPENLIBMEXT_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
464
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/Makefile.extras
465
$(MAKE) -C openlibm -f Makefile.extras $(OPENLIBM_FLAGS) CC="$(CC)" FC="$(FC)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
466
$(OPENLIBMEXT_OBJ_TARGET): $(OPENLIBMEXT_OBJ_SOURCE) | $(BUILD)/lib
468
$(INSTALL_NAME_CMD)libopenlibm-extras.$(SHLIB_EXT) $@
469
install-openlibm-extras: $(OPENLIBMEXT_OBJ_TARGET) $(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT)
515
distclean-openlibm: clean-openlibm
471
517
clean-openlibm-extras:
472
518
-$(MAKE) -C openlibm -f Makefile.extras distclean
473
519
-rm $(OPENLIBMEXT_OBJ_TARGET)
474
520
distclean-openlibm-extras: clean-openlibm-extras
477
# Wrapper for openlibm/Faddeeva since ccall doesn't support C99 complex:
478
$(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT): Faddeeva_wrapper.c $(OPENLIBMEXT_OBJ_TARGET)
479
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -O2 -shared $(fPIC) -I openlibm/Faddeeva Faddeeva_wrapper.c -o $@ -L $(BUILD)/lib -lopenlibm-extras
480
$(INSTALL_NAME_CMD)libFaddeeva_wrapper.$(SHLIB_EXT) $@
482
install-Faddeeva-wrapper: $(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT)
484
clean-Faddeeva-wrapper:
485
-rm -f $(OPENLIBMEXT_OBJ_TARGET) $(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT)
486
distclean-Faddeeva-wrapper: clean-Faddeeva-wrapper
490
RMATH_OBJ_TARGET = $(BUILD)/lib/libRmath.$(SHLIB_EXT)
491
RMATH_OBJ_SOURCE = Rmath/src/libRmath.$(SHLIB_EXT)
493
compile-rmath: $(RMATH_OBJ_SOURCE)
494
install-rmath: $(RMATH_OBJ_TARGET)
496
$(RMATH_OBJ_SOURCE): Rmath/src/Makefile install-random
498
$(MAKE) CC="$(CC)" && \
499
$(INSTALL_NAME_CMD)libRmath.$(SHLIB_EXT) libRmath.$(SHLIB_EXT)
500
$(RMATH_OBJ_TARGET): $(RMATH_OBJ_SOURCE)
504
-cd Rmath/src && $(MAKE) clean
505
-rm -f $(RMATH_OBJ_SOURCE) $(RMATH_OBJ_TARGET)
506
distclean-rmath: clean-rmath
522
get-openlibm: openlibm/Makefile
523
configure-openlibm: get-openlibm
524
compile-openlibm: $(OPENLIBM_OBJ_SOURCE)
525
check-openlibm: compile-openlibm
526
install-openlibm: $(OPENLIBM_OBJ_TARGET)
528
get-openlibm-extras: openlibm/Makefile.extras
529
configure-openlibm-extras: get-openlibm-extras
530
compile-openlibm-extras: $(OPENLIBMEXT_OBJ_SOURCE)
531
check-openlibm-extras: compile-openlibm-extras
532
install-openlibm-extras: $(OPENLIBMEXT_OBJ_TARGET)
542
564
distclean-random: clean-random
543
565
-cd random && rm -rf *.tar.gz dsfmt-$(DSFMT_VER)
567
get-random: random/dsfmt-$(DSFMT_VER).tar.gz
568
configure-random: random/dsfmt-$(DSFMT_VER)/config.status
569
compile-random: $(LIBRANDOM_OBJ_SOURCE)
570
check-random: compile-random
571
install-random: $(LIBRANDOM_OBJ_TARGET)
576
RMATH_OBJ_TARGET = $(BUILD)/lib/libRmath.$(SHLIB_EXT)
577
RMATH_OBJ_SOURCE = Rmath/src/libRmath.$(SHLIB_EXT)
579
RMATH_FLAGS += CC="$(CC)" USECLANG=$(USECLANG) USEGCC=$(USEGCC) \
580
OS="$(OS)" ARCH="$(ARCH)" \
581
USE_LIBRANDOM=1 LIBRANDOM_PATH="$(BUILD)/lib"
583
ifeq (exists, $(shell [ -d Rmath/.git ] && echo exists ))
584
$(RMATH_OBJ_SOURCE): Rmath/.git/HEAD
586
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
587
$(RMATH_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/Rmath/HEAD
589
$(RMATH_OBJ_SOURCE): Rmath/Make.inc $(LIBRANDOM_OBJ_TARGET)
590
$(MAKE) -C Rmath/src $(RMATH_FLAGS)
592
$(RMATH_OBJ_TARGET): $(RMATH_OBJ_SOURCE) | $(BUILD)/lib
594
$(INSTALL_NAME_CMD)libRmath.$(SHLIB_EXT) $@
597
-$(MAKE) -C Rmath/src clean
598
-rm $(RMATH_OBJ_TARGET)
599
distclean-Rmath: clean-Rmath
601
get-Rmath: Rmath/Make.inc
602
configure-Rmath: get-Rmath
603
compile-Rmath: $(RMATH_OBJ_SOURCE)
604
check-Rmath: compile-Rmath
605
install-Rmath: $(RMATH_OBJ_TARGET)
547
ifeq ($(USE_SYSTEM_BLAS), 0)
548
610
OPENBLAS_OBJ_SOURCE = openblas-$(OPENBLAS_VER)/libopenblas.$(SHLIB_EXT)
550
OPENBLAS_OBJ_SOURCE =
611
OPENBLAS_OBJ_TARGET = $(BUILD)/lib/libopenblas.$(SHLIB_EXT)
553
613
OPENBLAS_BUILD_OPTS = CC="$(CC)" FC="$(FC)" RANLIB="$(RANLIB)" FFLAGS="$(FFLAGS) $(JFFLAGS)" USE_THREAD=$(OPENBLAS_USE_THREAD) TARGET=$(OPENBLAS_TARGET_ARCH)
554
614
ifeq ($(OPENBLAS_DYNAMIC_ARCH), 1)
589
647
distclean-openblas:
590
648
-rm -rf openblas-$(OPENBLAS_VER).tar.gz openblas-$(OPENBLAS_VER)
650
get-openblas: openblas-$(OPENBLAS_VER).tar.gz
651
configure-openblas: get-openblas
652
compile-openblas: $(OPENBLAS_OBJ_SOURCE)
653
check-openblas: compile-openblas
654
install-openblas: $(OPENBLAS_OBJ_TARGET)
657
## ATLAS (currently 3.10.0) ##
659
# no threading, with full lapack, shared library
660
# should always be compiled with (a real) gcc, it's
661
# configure script will search for the best match
662
# (gcc 4.7, gcc, clang,ICC/microsoft/others)
663
ATLAS_OBJ_SOURCE = atlas/build/lib/libsatlas.$(SHLIB_EXT)
664
ATLAS_FLAGS = --shared --prefix=$(BUILD) --cc=gcc -t 0 \
665
--with-netlib-lapack-tarfile=$(JULIAHOME)/deps/lapack-$(LAPACK_VER).tgz
670
#force backwards compatibility (pick any 1)
671
#ATLAS_FLAGS += -V 192 -A 13 # requires SSE2 (P4 & later)
672
#ATLAS_FLAGS += -V 128 -A 12 # requires SSE1 (P3 & later)
673
#ATLAS_FLAGS += -V -1 -A 11 # any x87 (PentiumPro or Athlon & later)
674
#ATLAS_FLAGS += -A 25 # requires Corei132 (Corei232 doesn't have definition yet)
677
git clone git://github.com/vtjnash/atlas-3.10.0.git atlas
678
ifeq "$(MAKECMDGOALS)" "build-atlas"
679
# only allow building atlas as the sole target (without -jN)
680
# since it internally handles parallelism, for tuning timing accuracy
681
atlas/build/Make.top: atlas/configure lapack-$(LAPACK_VER).tgz
683
(test -d build || mkdir build) && cd build && \
684
../configure $(ATLAS_FLAGS)
686
$(ATLAS_OBJ_SOURCE): atlas/build/Make.top
687
$(MAKE) -C atlas/build -j1
691
$(error cannot build atlas in parallel with anything else)
693
$(BUILD)/lib/libsatlas.$(SHLIB_EXT): $(ATLAS_OBJ_SOURCE)
694
cp -f atlas/build/lib/libsatlas.$(SHLIB_EXT) $(BUILD)/lib
695
$(INSTALL_NAME_CMD)libsatlas.$(SHLIB_EXT) $(BUILD)/lib/libsatlas.$(SHLIB_EXT)
699
distclean-atlas: clean-atlas
702
get-atlas: atlas/configure
703
configure-atlas: atlas/build/Make.top
704
compile-atlas: $(ATLAS_OBJ_SOURCE)
705
check-atlas: compile-atlas
706
install-atlas: $(BUILD)/lib/libsatlas.$(SHLIB_EXT)
594
711
ifeq ($(USE_SYSTEM_LAPACK), 0)
633
760
ARPACK_OBJ_TARGET = $(BUILD)/lib/libarpack.$(SHLIB_EXT)
634
762
ARPACK_OBJ_SOURCE = arpack-ng_$(ARPACK_VER)/libarpack.$(SHLIB_EXT)
636
compile-arpack: $(ARPACK_OBJ_SOURCE)
637
install-arpack: $(ARPACK_OBJ_TARGET)
764
ARPACK_OBJ_SOURCE = arpack-ng_$(ARPACK_VER)/.libs/libarpack.$(SHLIB_EXT)
766
ARPACK_ARGS = F77="$(FC)" MPIF77="$(FC)"
767
ARPACK_OPTS = $(FFLAGS) $(JFFLAGS)
639
769
arpack-ng_$(ARPACK_VER).tar.gz:
640
770
$(WGET_DASH_O) $@ http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_$(ARPACK_VER).tar.gz
642
772
arpack-ng_$(ARPACK_VER)/configure: arpack-ng_$(ARPACK_VER).tar.gz
645
$(ARPACK_OBJ_SOURCE): arpack-ng_$(ARPACK_VER)/configure $(OPENBLAS_OBJ_SOURCE)
775
ifeq ($(USE_SYSTEM_BLAS), 0)
776
arpack-ng_$(ARPACK_VER)/config.status: $(OPENBLAS_OBJ_TARGET)
778
arpack-ng_$(ARPACK_VER)/config.status: arpack-ng_$(ARPACK_VER)/configure
780
cd arpack-ng_$(ARPACK_VER) && \
781
rm -f UTIL/second_NONE.f
646
784
cd arpack-ng_$(ARPACK_VER) && \
647
785
./configure $(CONFIGURE_COMMON) --with-blas="$(LIBBLAS)" --with-lapack="$(LIBLAPACK)" --disable-mpi --enable-shared FFLAGS="$(ARPACK_FFLAGS)"
649
$(ARPACK_OBJ_TARGET): $(ARPACK_OBJ_SOURCE) | $(BUILD)/lib
650
cd arpack-ng_$(ARPACK_VER) && \
651
$(MAKE) install F77="$(FC)" MPIF77="$(FC)"
788
$(ARPACK_OBJ_SOURCE): arpack-ng_$(ARPACK_VER)/config.status
790
cd arpack-ng_$(ARPACK_VER) && \
791
$(FC) -shared $(ARPACK_OPTS) SRC/*.f UTIL/*.f $(LIBLAPACK) $(LIBBLAS) -o libarpack.$(SHLIB_EXT)
793
cd arpack-ng_$(ARPACK_VER) && \
794
$(MAKE) $(ARPACK_ARGS)
797
arpack-ng_$(ARPACK_VER)/checked: $(ARPACK_OBJ_SOURCE)
799
cd arpack-ng_$(ARPACK_VER) && \
800
$(MAKE) check $(ARPACK_ARGS)
803
$(ARPACK_OBJ_TARGET): $(ARPACK_OBJ_SOURCE) arpack-ng_$(ARPACK_VER)/checked | $(BUILD)/lib
805
cd arpack-ng_$(ARPACK_VER) && \
806
cp libarpack.$(SHLIB_EXT) $(BUILD)/lib/libarpack.$(SHLIB_EXT)
808
cd arpack-ng_$(ARPACK_VER) && \
809
$(MAKE) install $(ARPACK_ARGS)
652
810
$(INSTALL_NAME_CMD)libarpack.$(SHLIB_EXT) $(BUILD)/lib/libarpack.$(SHLIB_EXT)
653
811
ifeq ($(OS), Linux)
654
812
for filename in $(BUILD)/lib/libarpack.so* ; do \
655
813
$(BUILD)/bin/patchelf --set-rpath '$$ORIGIN' $$filename ;\
661
820
-$(MAKE) -C arpack-ng_$(ARPACK_VER) clean
765
969
SUITE_SPARSE_LIB = -lm
766
970
ifneq ($(OS), Darwin)
767
971
ifneq ($(OS), WINNT)
768
SUITE_SPARSE_LIB += -lrt
772
compile-suitesparse: $(SUITESPARSE_OBJ_SOURCE)
773
install-suitesparse: $(SUITESPARSE_OBJ_TARGET) $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
972
SUITE_SPARSE_LIB += -lrt
976
SUITE_SPARSE_LIB += -Wl,-rpath,'$(BUILD)/lib'
775
979
SuiteSparse-$(SUITESPARSE_VER).tar.gz:
776
980
$(WGET) http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-$(SUITESPARSE_VER).tar.gz
777
981
SuiteSparse-$(SUITESPARSE_VER)/Makefile: SuiteSparse-$(SUITESPARSE_VER).tar.gz
778
982
mkdir -p SuiteSparse-$(SUITESPARSE_VER)
779
983
tar -C SuiteSparse-$(SUITESPARSE_VER) --strip-components 1 -zxf $<
781
$(SUITESPARSE_OBJ_SOURCE): $(OPENBLAS_OBJ_SOURCE) SuiteSparse-$(SUITESPARSE_VER)/Makefile
985
ifeq ($(USE_SYSTEM_BLAS), 0)
986
$(SUITESPARSE_OBJ_SOURCE): $(OPENBLAS_OBJ_TARGET)
988
#todo: rpath is missing on mac for tests
989
$(SUITESPARSE_OBJ_SOURCE): SuiteSparse-$(SUITESPARSE_VER)/Makefile
782
990
cd SuiteSparse-$(SUITESPARSE_VER) && \
783
991
$(MAKE) CC="$(CC)" CXX="$(CXX)" F77="$(FC)" AR="$(AR)" RANLIB="$(RANLIB)" BLAS="$(LIBBLAS)" LAPACK="$(LIBLAPACK)" \
784
992
INSTALL_LIB="$(BUILD)/lib" INSTALL_INCLUDE="$(BUILD)/include" LIB="$(SUITE_SPARSE_LIB)" \
785
993
UMFPACK_CONFIG="$(UMFPACK_CONFIG)" CHOLMOD_CONFIG="$(CHOLMOD_CONFIG)"
788
ifeq ($(USE_SYSTEM_SUITESPARSE), 0)
789
995
$(SUITESPARSE_OBJ_TARGET): $(SUITESPARSE_OBJ_SOURCE)
790
996
mkdir -p SuiteSparse-$(SUITESPARSE_VER)/lib && \
791
997
cd SuiteSparse-$(SUITESPARSE_VER)/lib && \
818
1029
SUITESPARSE_INC = -I SuiteSparse-$(SUITESPARSE_VER)/CHOLMOD/Include -I SuiteSparse-$(SUITESPARSE_VER)/SuiteSparse_config -I SuiteSparse-$(SUITESPARSE_VER)/SPQR/Include
819
1030
SUITESPARSE_LIB = -L$(BUILD)/lib -lcholmod -lumfpack -lspqr $(RPATH_ORIGIN)
1031
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): $(SUITESPARSE_OBJ_TARGET)
822
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): SuiteSparse_wrapper.c $(SUITESPARSE_OBJ_TARGET)
1034
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): SuiteSparse_wrapper.c
823
1035
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -O2 -shared $(fPIC) $(SUITESPARSE_INC) SuiteSparse_wrapper.c -o $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT) $(SUITESPARSE_LIB)
824
1036
$(INSTALL_NAME_CMD)libsuitesparse_wrapper.$(SHLIB_EXT) $@
826
install-suitesparse-wrapper: $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
828
1039
clean-suitesparse-wrapper:
829
1040
-rm -f $(SUITESPARSE_OBJ_TARGET) $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
830
1041
distclean-suitesparse-wrapper: clean-suitesparse-wrapper
834
CLP_OBJ_TARGET = $(BUILD)/lib/libClp.$(SHLIB_EXT)
836
compile-clp: install-clp
837
install-clp: $(CLP_OBJ_TARGET)
839
clp-$(CLP_VER).tar.gz:
840
$(WGET_DASH_O) $@ http://www.coin-or.org/download/source/Clp/Clp-1.14.5.tgz
841
clp-$(CLP_VER)/configure: clp-$(CLP_VER).tar.gz
842
mkdir -p clp-$(CLP_VER)
843
tar -C clp-$(CLP_VER) --strip-components 1 -zxf $<
845
clp-$(CLP_VER)/config.status: clp-$(CLP_VER)/configure
846
cd clp-$(CLP_VER) && \
847
./configure $(CONFIGURE_COMMON) MPIF77="$(FC)" MPICXX="$(CXX)" MPICC="$(CC)"
848
$(CLP_OBJ_TARGET): clp-$(CLP_VER)/config.status
849
$(MAKE) -C clp-$(CLP_VER) install
853
-$(MAKE) -C clp-$(CLP_VER) clean
854
-rm -f $(CLP_OBJ_TARGET)
856
-rm -rf clp-$(CLP_VER).tar.gz clp-$(CLP_VER)
1043
get-suitesparse-wrapper:
1044
configure-suitesparse-wrapper:
1045
compile-suitesparse-wrapper:
1046
check-suitesparse-wrapper:
1047
install-suitesparse-wrapper: $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
860
ifeq ($(USE_SYSTEM_LIBUNWIND), 0)
861
1052
LIBUNWIND_TARGET_OBJ = $(BUILD)/lib/libunwind.a
862
1053
LIBUNWIND_TARGET_SOURCE = libunwind-$(UNWIND_VER)/src/.libs/libunwind.a
864
LIBUNWIND_TARGET_OBJ =
865
LIBUNWIND_TARGET_SOURCE =
868
1054
LIBUNWIND_CFLAGS = $(CFLAGS) -U_FORTIFY_SOURCE $(fPIC)
869
ifeq ($(ARCH), ppc64)
870
LIBUNWIND_CFLAGS += -m64
873
compile-unwind: $(LIBUNWIND_TARGET_SOURCE)
874
install-unwind: $(LIBUNWIND_TARGET_OBJ)
876
1056
libunwind-$(UNWIND_VER).tar.gz:
877
1057
$(WGET) http://savannah.spinellicreations.com/libunwind/libunwind-$(UNWIND_VER).tar.gz
878
libunwind-$(UNWIND_VER)/Makefile: libunwind-$(UNWIND_VER).tar.gz
1058
libunwind-$(UNWIND_VER)/configure: libunwind-$(UNWIND_VER).tar.gz
880
cd libunwind-$(UNWIND_VER) && ./configure $(CONFIGURE_COMMON) CFLAGS="$(LIBUNWIND_CFLAGS)"
882
$(LIBUNWIND_TARGET_SOURCE): libunwind-$(UNWIND_VER)/Makefile
883
cd libunwind-$(UNWIND_VER) && $(MAKE)
1061
libunwind-$(UNWIND_VER)/config.status: libunwind-$(UNWIND_VER)/configure
1062
cd libunwind-$(UNWIND_VER) && \
1063
./configure $(CONFIGURE_COMMON) CFLAGS="$(LIBUNWIND_CFLAGS)" --disable-shared --disable-minidebuginfo
1065
$(LIBUNWIND_TARGET_SOURCE): libunwind-$(UNWIND_VER)/config.status
1066
$(MAKE) -C libunwind-$(UNWIND_VER)
1068
libunwind-$(UNWIND_VER)/checked: $(LIBUNWIND_TARGET_SOURCE)
1069
ifeq ($(OS),$(BUILD_OS))
1070
$(MAKE) -C libunwind-$(UNWIND_VER) check
1073
#todo: libunwind tests known to fail
885
1074
$(LIBUNWIND_TARGET_OBJ): $(LIBUNWIND_TARGET_SOURCE)
886
cd libunwind-$(UNWIND_VER) && $(MAKE) install
1075
$(MAKE) install -C libunwind-$(UNWIND_VER)
1076
ifeq ($(ARCH), ppc64)
1077
# workaround for configure script bug
1078
mv $(BUILD)/lib64/libunwind*.a $(BUILD)/lib/
889
1082
-$(MAKE) -C libunwind-$(UNWIND_VER) clean
890
1083
-rm -f $(LIBUNWIND_TARGET_OBJ) $(LIBUNWIND_TARGET_SOURCE)
892
1084
distclean-unwind:
893
1085
-rm -rf libunwind-$(UNWIND_VER).tar.gz libunwind-$(UNWIND_VER)
897
ifeq ($(USE_SYSTEM_LIGHTTPD), 0)
898
LIGHTTPD_OBJ_TARGET = $(BUILD)/sbin/lighttpd
1087
get-unwind: libunwind-$(UNWIND_VER).tar.gz
1088
configure-unwind: libunwind-$(UNWIND_VER)/config.status
1089
compile-unwind: $(LIBUNWIND_TARGET_SOURCE)
1090
check-unwind: libunwind-$(UNWIND_VER)/checked
1091
install-unwind: $(LIBUNWIND_TARGET_OBJ)
1096
ifneq ($(OS), WINNT)
1097
NGINX_OBJ_TARGET = $(BUILD)/sbin/nginx
1098
NGINX_SRC_TARGET = nginx/objs/nginx
1099
NGINX_FLAGS = --with-ld-opt="-L'$(BUILD)/lib' -lpcre -Wl,-rpath,'$(BUILD)/lib' $(RPATH)"
1103
for x in .gitignore Makefile config.status objs; do echo /$$x >> $@; done
1104
nginx/auto/configure: | compile-pcre
1105
(cd .. && git submodule update --init)
1107
nginx/config.status: nginx/auto/configure nginx/.gitignore
1109
./auto/configure --without-http_gzip_module --without-http_rewrite_module $(NGINX_FLAGS) --with-debug --prefix=".."
1111
$(NGINX_SRC_TARGET): nginx/config.status nginx/.gitignore
1114
$(NGINX_OBJ_TARGET): $(NGINX_SRC_TARGET) nginx/.gitignore
1115
$(MAKE) -C nginx install DESTDIR="$(abspath $(BUILD)/bin)/"
1119
-$(MAKE) -C nginx clean
1123
get-nginx: nginx/auto/configure
1124
configure-nginx: nginx/config.status
1125
compile-nginx: $(NGINX_SRC_TARGET)
1126
check-nginx: $(NGINX_SRC_TARGET)
1127
install-nginx: $(NGINX_OBJ_TARGET)
900
LIGHTTPD_OBJ_TARGET =
1130
NGINX_SRC_TARGET = nginx-$(NGINX_VER).zip
1131
NGINX_OBJ_TARGET = nginx-$(NGINX_VER)/nginx.exe
1132
$(NGINX_SRC_TARGET):
1133
$(WGET) http://nginx.org/download/$@
1134
$(NGINX_OBJ_TARGET): $(NGINX_SRC_TARGET)
1137
$(BUILD)/sbin/nginx.exe: $(NGINX_OBJ_TARGET)
1138
mkdir -p $(BUILD)/sbin
1139
cp -a nginx-$(NGINX_VER)/* $(BUILD)/sbin
1141
get-nginx: $(NGINX_SRC_TARGET)
1142
configure-nginx: get-nginx
1143
compile-nginx: $(NGINX_OBJ_TARGET)
1144
check-nginx: compile-nginx
1145
install-nginx: $(BUILD)/sbin/nginx.exe
903
compile-lighttpd: install-lighttpd
904
install-lighttpd: $(LIGHTTPD_OBJ_TARGET) lighttpd.conf
905
mkdir -p $(BUILD)/etc
906
cp -f lighttpd.conf $(BUILD)/etc/lighttpd.conf
908
lighttpd-$(LIGHTTPD_VER).tar.gz:
909
$(WGET) http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-$(LIGHTTPD_VER).tar.gz
910
lighttpd-$(LIGHTTPD_VER)/configure: lighttpd-$(LIGHTTPD_VER).tar.gz
913
lighttpd-$(LIGHTTPD_VER)/config.status: lighttpd-$(LIGHTTPD_VER)/configure
914
mkdir -p $(BUILD)/lib/lighttpd && \
915
cd lighttpd-$(LIGHTTPD_VER) && \
916
./configure $(CONFIGURE_COMMON) --libdir=$(BUILD)/lib/lighttpd --without-pcre --without-zlib --without-bzip2
917
$(LIGHTTPD_OBJ_TARGET): lighttpd-$(LIGHTTPD_VER)/config.status
918
$(MAKE) -C lighttpd-$(LIGHTTPD_VER) install
919
$(INSTALL_NAME_CMD)lighttpd/liblightcomp.$(SHLIB_EXT) $(BUILD)/lib/lighttpd/liblightcomp.$(SHLIB_EXT)
920
$(INSTALL_NAME_CHANGE_CMD) $(BUILD)/lib/lighttpd/liblightcomp.dylib @executable_path/../lib/lighttpd/liblightcomp.dylib $(BUILD)/sbin/lighttpd
924
-$(MAKE) -C lighttpd-$(LIGHTTPD_VER) clean
925
-rm -f $(LIGHTTPD_OBJ_TARGET)
927
-rm -rf lighttpd-$(LIGHTTPD_VER).tar.gz lighttpd-$(LIGHTTPD_VER)
931
ifeq ($(USE_SYSTEM_GMP), 0)
1151
GMP_SRC_TARGET = gmp-$(GMP_VER)/.libs/libgmp.$(SHLIB_EXT)
932
1152
GMP_OBJ_TARGET = $(BUILD)/lib/libgmp.$(SHLIB_EXT)
937
compile-gmp: install-gmp
938
install-gmp: $(GMP_OBJ_TARGET)
940
1154
gmp-$(GMP_VER).tar.bz2:
941
1155
$(WGET) ftp://ftp.gmplib.org/pub/gmp-$(GMP_VER)/$@
942
1156
gmp-$(GMP_VER)/configure: gmp-$(GMP_VER).tar.bz2
945
1159
gmp-$(GMP_VER)/config.status: gmp-$(GMP_VER)/configure
946
1160
cd gmp-$(GMP_VER) && \
947
./configure --prefix=$(abspath $(BUILD)) CC="$(CC)" CXX="$(CXX)" --enable-shared --disable-static
948
$(GMP_OBJ_TARGET): gmp-$(GMP_VER)/config.status
1161
./configure $(CONFIGURE_COMMON) F77= --enable-shared --disable-static
1163
$(GMP_SRC_TARGET): gmp-$(GMP_VER)/config.status
949
1164
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD)
1165
gmp-$(GMP_VER)/checked: $(GMP_SRC_TARGET)
950
1166
ifeq ($(OS),$(BUILD_OS))
951
1167
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD) check
1170
$(GMP_OBJ_TARGET): $(GMP_SRC_TARGET) gmp-$(GMP_VER)/checked
953
1171
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD) install
954
1172
$(INSTALL_NAME_CMD)libgmp.dylib $@
958
1176
-$(MAKE) -C gmp-$(GMP_VER) clean
969
1193
GMPW_INC = -I $(BUILD)/include
970
1194
GMPW_LIB = -L$(BUILD)/lib/ -lgmp
1195
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): $(GMP_OBJ_TARGET)
973
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): gmp_wrapper.c $(GMP_OBJ_TARGET) | $(BUILD)/lib
1198
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): gmp_wrapper.c | $(BUILD)/lib
974
1199
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -O2 -shared $(fPIC) $(GMPW_INC) gmp_wrapper.c -o $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT) $(RPATH_ORIGIN) $(GMPW_LIB)
975
1200
$(INSTALL_NAME_CMD)libgmp_wrapper.$(SHLIB_EXT) $@
977
install-gmp-wrapper: $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
979
1203
clean-gmp-wrapper:
980
1204
-rm -f $(GMP_OBJ_TARGET) $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
981
1205
distclean-gmp-wrapper: clean-gmp-wrapper
1208
configure-gmp-wrapper:
1209
compile-gmp-wrapper:
1211
install-gmp-wrapper: $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
985
ifeq ($(USE_SYSTEM_GLPK), 1)
1216
GLPK_SRC_TARGET = glpk-$(GLPK_VER)/src/.libs/libglpk.$(SHLIB_EXT)
988
1217
GLPK_OBJ_TARGET = $(BUILD)/lib/libglpk.$(SHLIB_EXT)
991
compile-glpk: install-glpk
992
install-glpk: $(GLPK_OBJ_TARGET) $(BUILD)/lib/libglpk_wrapper.$(SHLIB_EXT)
994
1219
glpk-$(GLPK_VER).tar.gz:
995
1220
$(WGET) http://ftp.gnu.org/gnu/glpk/$@
997
1221
glpk-$(GLPK_VER)/configure: glpk-$(GLPK_VER).tar.gz
1000
1224
glpk-$(GLPK_VER)/config.status: glpk-$(GLPK_VER)/configure
1001
1225
cd glpk-$(GLPK_VER) && \
1002
1226
./configure $(CONFIGURE_COMMON)
1003
$(GLPK_OBJ_TARGET): glpk-$(GLPK_VER)/config.status
1228
$(GLPK_SRC_TARGET): glpk-$(GLPK_VER)/config.status
1229
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD)
1231
glpk-$(GLPK_VER)/checked: $(GLPK_SRC_TARGET)
1232
ifeq ($(OS),$(BUILD_OS))
1233
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD) check
1236
$(GLPK_OBJ_TARGET): $(GLPK_SRC_TARGET) glpk-$(GLPK_VER)/checked
1004
1237
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD) install
1005
1238
$(INSTALL_NAME_CMD)libglpk.dylib $@
1239
$(AUTOTOOLS_PATH_CORRECT)
1009
1243
-$(MAKE) -C glpk-$(GLPK_VER) uninstall || true
1010
1244
-$(MAKE) -C glpk-$(GLPK_VER) clean
1011
1245
distclean-glpk: clean-glpk
1012
-rm -rf glpk-$(GLPK_VER).tar.bz2 glpk-$(GLPK_VER)
1246
-rm -rf glpk-$(GLPK_VER).tar.gz glpk-$(GLPK_VER)
1248
get-glpk: glpk-$(GLPK_VER).tar.gz
1249
configure-glpk: glpk-$(GLPK_VER)/config.status
1250
compile-glpk: $(GLPK_SRC_TARGET)
1251
check-glpk: glpk-$(GLPK_VER)/checked
1252
install-glpk: $(GLPK_OBJ_TARGET) $(BUILD)/lib/libglpk_wrapper.$(SHLIB_EXT)
1015
1254
## GLPK Wrapper