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)
357
379
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
358
380
$(UV_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/libuv/HEAD
382
LIBUV_MAKE_FLAGS = -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
360
383
$(UV_OBJ_SOURCE): libuv/Makefile
361
384
ifneq ($(OS), WINNT)
362
$(MAKE) libuv.${SHLIB_EXT} -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
364
$(MAKE) libuv.a -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
385
$(MAKE) libuv.${SHLIB_EXT} $(LIBUV_MAKE_FLAGS)
387
$(MAKE) libuv.a $(LIBUV_MAKE_FLAGS)
389
libuv/checked: $(LIBUV_OBJ_SOURCE)
390
ifeq ($(OS),$(BUILD_OS))
391
$(MAKE) test $(LIBUV_MAKE_FLAGS)
394
#todo: libuv tests are really slow
365
395
$(UV_OBJ_TARGET): $(UV_OBJ_SOURCE)
366
396
mkdir -p $(BUILD)/include
367
397
cp $(UV_OBJ_SOURCE) $(BUILD)/lib/
368
398
cp -r libuv/include/* $(BUILD)/include
369
install-uv: $(UV_OBJ_TARGET)
372
401
-$(MAKE) -C libuv clean uname_S=$(uname_S)
373
402
-rm -rf $(BUILD)/lib/libuv.a $(BUILD)/include/uv.h $(BUILD)/include/uv-private
374
403
distclean-uv: clean-uv
405
get-uv: libuv/Makefile
407
compile-uv: $(UV_OBJ_SOURCE)
408
check-uv: libuv/checked
409
install-uv: $(UV_OBJ_TARGET)
414
PCRE_SRC_TARGET = pcre-$(PCRE_VER)/.libs/libpcre.$(SHLIB_EXT)
378
415
PCRE_OBJ_TARGET = $(BUILD)/lib/libpcre.$(SHLIB_EXT)
380
compile-pcre: install-pcre
381
install-pcre: $(PCRE_OBJ_TARGET)
383
417
pcre-$(PCRE_VER).tar.bz2:
384
418
$(WGET) ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$@
385
419
pcre-$(PCRE_VER)/configure: pcre-$(PCRE_VER).tar.bz2
388
422
pcre-$(PCRE_VER)/config.status: pcre-$(PCRE_VER)/configure
389
423
cd pcre-$(PCRE_VER) && \
390
424
./configure $(CONFIGURE_COMMON) --enable-utf --enable-unicode-properties --enable-jit
391
$(PCRE_OBJ_TARGET): pcre-$(PCRE_VER)/config.status
426
$(PCRE_SRC_TARGET): pcre-$(PCRE_VER)/config.status
427
$(MAKE) -C pcre-$(PCRE_VER) $(LIBTOOL_CCLD)
429
pcre-$(PCRE_VER)/checked: $(PCRE_SRC_TARGET)
430
ifeq ($(OS),$(BUILD_OS))
431
$(MAKE) -C pcre-$(PCRE_VER) check
434
$(PCRE_OBJ_TARGET): $(PCRE_SRC_TARGET) pcre-$(PCRE_VER)/checked
392
435
$(MAKE) -C pcre-$(PCRE_VER) $(LIBTOOL_CCLD) install
393
436
$(INSTALL_NAME_CMD)libpcre.dylib $@
394
437
ifeq ($(OS),WINNT)
395
438
-rm $(BUILD)/lib/libpcre.dll
396
439
mv $(BUILD)/bin/libpcre.dll $(BUILD)/lib/libpcre.dll
401
444
-$(MAKE) -C pcre-$(PCRE_VER) clean
446
501
OPENLIBM_FLAGS = ARCH="$(ARCH)"
504
OPENLIBM_FLAGS += CC="$(CC)" FC="$(FC)" AR="$(AR)" OS="$(OS)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
449
506
OPENLIBM_OBJ_TARGET = $(BUILD)/lib/libopenlibm.$(SHLIB_EXT)
450
507
OPENLIBM_OBJ_SOURCE = openlibm/libopenlibm.$(SHLIB_EXT)
508
OPENLIBMEXT_OBJ_TARGET = $(BUILD)/lib/libopenlibm-extras.$(SHLIB_EXT)
509
OPENLIBMEXT_OBJ_SOURCE = openlibm/libopenlibm-extras.$(SHLIB_EXT)
511
openlibm/Makefile openlibm/Makefile.extras:
453
512
(cd .. && git submodule init && git submodule update)
454
513
ifeq (exists, $(shell [ -d openlibm/.git ] && echo exists ))
455
514
$(OPENLIBM_OBJ_SOURCE): openlibm/.git/HEAD
515
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/.git/HEAD
457
517
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
458
518
$(OPENLIBM_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
519
$(OPENLIBMEXT_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
460
521
$(OPENLIBM_OBJ_SOURCE): openlibm/Makefile
461
$(MAKE) -C openlibm $(OPENLIBM_FLAGS) CC="$(CC)" FC="$(FC)" AR="$(AR)" OS="$(OS)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
522
$(MAKE) -C openlibm $(OPENLIBM_FLAGS)
524
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/Makefile.extras
525
$(MAKE) -C openlibm -f Makefile.extras $(OPENLIBM_FLAGS)
462
527
$(OPENLIBM_OBJ_TARGET): $(OPENLIBM_OBJ_SOURCE) | $(BUILD)/lib
464
529
$(INSTALL_NAME_CMD)libopenlibm.$(SHLIB_EXT) $@
465
install-openlibm: $(OPENLIBM_OBJ_TARGET)
530
$(OPENLIBMEXT_OBJ_TARGET): $(OPENLIBMEXT_OBJ_SOURCE) | $(BUILD)/lib
532
$(INSTALL_NAME_CMD)libopenlibm-extras.$(SHLIB_EXT) $@
468
535
-$(MAKE) -C openlibm distclean
469
536
-rm $(OPENLIBM_OBJ_TARGET)
470
distclean-openlibm: clean-openlibm
474
OPENLIBMEXT_OBJ_TARGET = $(BUILD)/lib/libopenlibm-extras.$(SHLIB_EXT)
475
OPENLIBMEXT_OBJ_SOURCE = openlibm/libopenlibm-extras.$(SHLIB_EXT)
477
openlibm-extras/Makefile:
478
(cd .. && git submodule init && git submodule update)
479
ifeq (exists, $(shell [ -d openlibm/.git ] && echo exists ))
480
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/.git/HEAD
482
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
483
$(OPENLIBMEXT_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
485
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/Makefile.extras
486
$(MAKE) -C openlibm -f Makefile.extras $(OPENLIBM_FLAGS) CC="$(CC)" FC="$(FC)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
487
$(OPENLIBMEXT_OBJ_TARGET): $(OPENLIBMEXT_OBJ_SOURCE) | $(BUILD)/lib
489
$(INSTALL_NAME_CMD)libopenlibm-extras.$(SHLIB_EXT) $@
490
install-openlibm-extras: $(OPENLIBMEXT_OBJ_TARGET) $(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT)
537
distclean-openlibm: clean-openlibm
492
539
clean-openlibm-extras:
493
540
-$(MAKE) -C openlibm -f Makefile.extras distclean
494
541
-rm $(OPENLIBMEXT_OBJ_TARGET)
495
542
distclean-openlibm-extras: clean-openlibm-extras
498
# Wrapper for openlibm/Faddeeva since ccall doesn't support C99 complex:
499
$(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT): Faddeeva_wrapper.c $(OPENLIBMEXT_OBJ_TARGET)
500
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -O2 -shared $(fPIC) -I openlibm/Faddeeva Faddeeva_wrapper.c -o $@ -L $(BUILD)/lib -lopenlibm-extras
501
$(INSTALL_NAME_CMD)libFaddeeva_wrapper.$(SHLIB_EXT) $@
503
install-Faddeeva-wrapper: $(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT)
505
clean-Faddeeva-wrapper:
506
-rm -f $(OPENLIBMEXT_OBJ_TARGET) $(BUILD)/lib/libFaddeeva_wrapper.$(SHLIB_EXT)
507
distclean-Faddeeva-wrapper: clean-Faddeeva-wrapper
511
RMATH_OBJ_TARGET = $(BUILD)/lib/libRmath.$(SHLIB_EXT)
512
RMATH_OBJ_SOURCE = Rmath/src/libRmath.$(SHLIB_EXT)
514
compile-rmath: $(RMATH_OBJ_SOURCE)
515
install-rmath: $(RMATH_OBJ_TARGET)
517
$(RMATH_OBJ_SOURCE): Rmath/src/Makefile install-random
519
$(MAKE) CC="$(CC)" && \
520
$(INSTALL_NAME_CMD)libRmath.$(SHLIB_EXT) libRmath.$(SHLIB_EXT)
521
$(RMATH_OBJ_TARGET): $(RMATH_OBJ_SOURCE)
525
-cd Rmath/src && $(MAKE) clean
526
-rm -f $(RMATH_OBJ_SOURCE) $(RMATH_OBJ_TARGET)
527
distclean-rmath: clean-rmath
544
get-openlibm: openlibm/Makefile
545
configure-openlibm: get-openlibm
546
compile-openlibm: $(OPENLIBM_OBJ_SOURCE)
547
check-openlibm: compile-openlibm
548
install-openlibm: $(OPENLIBM_OBJ_TARGET)
550
get-openlibm-extras: openlibm/Makefile.extras
551
configure-openlibm-extras: get-openlibm-extras
552
compile-openlibm-extras: $(OPENLIBMEXT_OBJ_SOURCE)
553
check-openlibm-extras: compile-openlibm-extras
554
install-openlibm-extras: $(OPENLIBMEXT_OBJ_TARGET)
563
586
distclean-random: clean-random
564
587
-cd random && rm -rf *.tar.gz dsfmt-$(DSFMT_VER)
589
get-random: random/dsfmt-$(DSFMT_VER).tar.gz
590
configure-random: random/dsfmt-$(DSFMT_VER)/config.status
591
compile-random: $(LIBRANDOM_OBJ_SOURCE)
592
check-random: compile-random
593
install-random: $(LIBRANDOM_OBJ_TARGET)
598
RMATH_OBJ_TARGET = $(BUILD)/lib/libRmath.$(SHLIB_EXT)
599
RMATH_OBJ_SOURCE = Rmath/src/libRmath.$(SHLIB_EXT)
601
RMATH_FLAGS += CC="$(CC)" USECLANG=$(USECLANG) USEGCC=$(USEGCC) \
602
OS="$(OS)" ARCH="$(ARCH)" \
603
USE_LIBRANDOM=1 LIBRANDOM_PATH="$(BUILD)/lib"
606
(cd .. && git submodule init && git submodule update)
607
ifeq (exists, $(shell [ -d Rmath/.git ] && echo exists ))
608
$(RMATH_OBJ_SOURCE): Rmath/.git/HEAD
610
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
611
$(RMATH_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/Rmath/HEAD
613
$(RMATH_OBJ_SOURCE): Rmath/Make.inc $(LIBRANDOM_OBJ_TARGET)
614
$(MAKE) -C Rmath/src $(RMATH_FLAGS)
616
$(RMATH_OBJ_TARGET): $(RMATH_OBJ_SOURCE) | $(BUILD)/lib
618
$(INSTALL_NAME_CMD)libRmath.$(SHLIB_EXT) $@
621
-$(MAKE) -C Rmath/src clean
622
-rm $(RMATH_OBJ_TARGET)
623
distclean-Rmath: clean-Rmath
625
get-Rmath: Rmath/Make.inc
626
configure-Rmath: get-Rmath
627
compile-Rmath: $(RMATH_OBJ_SOURCE)
628
check-Rmath: compile-Rmath
629
install-Rmath: $(RMATH_OBJ_TARGET)
568
ifeq ($(USE_SYSTEM_BLAS), 0)
569
634
OPENBLAS_OBJ_SOURCE = openblas-$(OPENBLAS_VER)/libopenblas.$(SHLIB_EXT)
571
OPENBLAS_OBJ_SOURCE =
635
OPENBLAS_OBJ_TARGET = $(BUILD)/lib/libopenblas.$(SHLIB_EXT)
574
637
OPENBLAS_BUILD_OPTS = CC="$(CC)" FC="$(FC)" RANLIB="$(RANLIB)" FFLAGS="$(FFLAGS) $(JFFLAGS)" USE_THREAD=$(OPENBLAS_USE_THREAD) TARGET=$(OPENBLAS_TARGET_ARCH)
575
638
ifeq ($(OPENBLAS_DYNAMIC_ARCH), 1)
610
671
distclean-openblas:
611
672
-rm -rf openblas-$(OPENBLAS_VER).tar.gz openblas-$(OPENBLAS_VER)
674
get-openblas: openblas-$(OPENBLAS_VER).tar.gz
675
configure-openblas: get-openblas
676
compile-openblas: $(OPENBLAS_OBJ_SOURCE)
677
check-openblas: compile-openblas
678
install-openblas: $(OPENBLAS_OBJ_TARGET)
681
## ATLAS (currently 3.10.0) ##
683
# no threading, with full lapack, shared library
684
# should always be compiled with (a real) gcc, it's
685
# configure script will search for the best match
686
# (gcc 4.7, gcc, clang,ICC/microsoft/others)
687
ATLAS_OBJ_SOURCE = atlas/build/lib/libsatlas.$(SHLIB_EXT)
688
ATLAS_FLAGS = --shared --prefix=$(BUILD) --cc=gcc -t 0 \
689
--with-netlib-lapack-tarfile=$(JULIAHOME)/deps/lapack-$(LAPACK_VER).tgz
694
#force backwards compatibility (pick any 1)
695
#ATLAS_FLAGS += -V 192 -A 13 # requires SSE2 (P4 & later)
696
#ATLAS_FLAGS += -V 128 -A 12 # requires SSE1 (P3 & later)
697
#ATLAS_FLAGS += -V -1 -A 11 # any x87 (PentiumPro or Athlon & later)
698
#ATLAS_FLAGS += -A 25 # requires Corei132 (Corei232 doesn't have definition yet)
701
git clone git://github.com/vtjnash/atlas-3.10.0.git atlas
702
ifeq "$(MAKECMDGOALS)" "build-atlas"
703
# only allow building atlas as the sole target (without -jN)
704
# since it internally handles parallelism, for tuning timing accuracy
705
atlas/build/Make.top: atlas/configure lapack-$(LAPACK_VER).tgz
707
(test -d build || mkdir build) && cd build && \
708
../configure $(ATLAS_FLAGS)
710
$(ATLAS_OBJ_SOURCE): atlas/build/Make.top
711
$(MAKE) -C atlas/build -j1
715
$(error cannot build atlas in parallel with anything else)
717
$(BUILD)/lib/libsatlas.$(SHLIB_EXT): $(ATLAS_OBJ_SOURCE)
718
cp -f atlas/build/lib/libsatlas.$(SHLIB_EXT) $(BUILD)/lib
719
$(INSTALL_NAME_CMD)libsatlas.$(SHLIB_EXT) $(BUILD)/lib/libsatlas.$(SHLIB_EXT)
723
distclean-atlas: clean-atlas
726
get-atlas: atlas/configure
727
configure-atlas: atlas/build/Make.top
728
compile-atlas: $(ATLAS_OBJ_SOURCE)
729
check-atlas: compile-atlas
730
install-atlas: $(BUILD)/lib/libsatlas.$(SHLIB_EXT)
615
735
ifeq ($(USE_SYSTEM_LAPACK), 0)
654
784
ARPACK_OBJ_TARGET = $(BUILD)/lib/libarpack.$(SHLIB_EXT)
655
786
ARPACK_OBJ_SOURCE = arpack-ng_$(ARPACK_VER)/libarpack.$(SHLIB_EXT)
657
compile-arpack: $(ARPACK_OBJ_SOURCE)
658
install-arpack: $(ARPACK_OBJ_TARGET)
788
ARPACK_OBJ_SOURCE = arpack-ng_$(ARPACK_VER)/.libs/libarpack.$(SHLIB_EXT)
790
ARPACK_ARGS = F77="$(FC)" MPIF77="$(FC)"
791
ARPACK_OPTS = $(FFLAGS) $(JFFLAGS)
660
793
arpack-ng_$(ARPACK_VER).tar.gz:
661
794
$(WGET_DASH_O) $@ http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_$(ARPACK_VER).tar.gz
663
796
arpack-ng_$(ARPACK_VER)/configure: arpack-ng_$(ARPACK_VER).tar.gz
666
$(ARPACK_OBJ_SOURCE): arpack-ng_$(ARPACK_VER)/configure $(OPENBLAS_OBJ_SOURCE)
799
ifeq ($(USE_SYSTEM_BLAS), 0)
800
arpack-ng_$(ARPACK_VER)/config.status: $(OPENBLAS_OBJ_TARGET)
802
arpack-ng_$(ARPACK_VER)/config.status: arpack-ng_$(ARPACK_VER)/configure
804
cd arpack-ng_$(ARPACK_VER) && \
805
rm -f UTIL/second_NONE.f
667
808
cd arpack-ng_$(ARPACK_VER) && \
668
809
./configure $(CONFIGURE_COMMON) --with-blas="$(LIBBLAS)" --with-lapack="$(LIBLAPACK)" --disable-mpi --enable-shared FFLAGS="$(ARPACK_FFLAGS)"
670
$(ARPACK_OBJ_TARGET): $(ARPACK_OBJ_SOURCE) | $(BUILD)/lib
671
cd arpack-ng_$(ARPACK_VER) && \
672
$(MAKE) install F77="$(FC)" MPIF77="$(FC)"
812
$(ARPACK_OBJ_SOURCE): arpack-ng_$(ARPACK_VER)/config.status
814
cd arpack-ng_$(ARPACK_VER) && \
815
$(FC) -shared $(ARPACK_OPTS) SRC/*.f UTIL/*.f $(LIBLAPACK) $(LIBBLAS) -o libarpack.$(SHLIB_EXT)
817
cd arpack-ng_$(ARPACK_VER) && \
818
$(MAKE) $(ARPACK_ARGS)
821
arpack-ng_$(ARPACK_VER)/checked: $(ARPACK_OBJ_SOURCE)
823
cd arpack-ng_$(ARPACK_VER) && \
824
$(MAKE) check $(ARPACK_ARGS)
827
$(ARPACK_OBJ_TARGET): $(ARPACK_OBJ_SOURCE) arpack-ng_$(ARPACK_VER)/checked | $(BUILD)/lib
829
cd arpack-ng_$(ARPACK_VER) && \
830
cp libarpack.$(SHLIB_EXT) $(BUILD)/lib/libarpack.$(SHLIB_EXT)
832
cd arpack-ng_$(ARPACK_VER) && \
833
$(MAKE) install $(ARPACK_ARGS)
673
834
$(INSTALL_NAME_CMD)libarpack.$(SHLIB_EXT) $(BUILD)/lib/libarpack.$(SHLIB_EXT)
674
835
ifeq ($(OS), Linux)
675
836
for filename in $(BUILD)/lib/libarpack.so* ; do \
676
837
$(BUILD)/bin/patchelf --set-rpath '$$ORIGIN' $$filename ;\
682
844
-$(MAKE) -C arpack-ng_$(ARPACK_VER) clean
786
993
SUITE_SPARSE_LIB = -lm
787
994
ifneq ($(OS), Darwin)
788
995
ifneq ($(OS), WINNT)
789
SUITE_SPARSE_LIB += -lrt
793
compile-suitesparse: $(SUITESPARSE_OBJ_SOURCE)
794
install-suitesparse: $(SUITESPARSE_OBJ_TARGET) $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
996
SUITE_SPARSE_LIB += -lrt
1000
SUITE_SPARSE_LIB += -Wl,-rpath,'$(BUILD)/lib'
796
1003
SuiteSparse-$(SUITESPARSE_VER).tar.gz:
797
1004
$(WGET) http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-$(SUITESPARSE_VER).tar.gz
798
1005
SuiteSparse-$(SUITESPARSE_VER)/Makefile: SuiteSparse-$(SUITESPARSE_VER).tar.gz
799
1006
mkdir -p SuiteSparse-$(SUITESPARSE_VER)
800
1007
tar -C SuiteSparse-$(SUITESPARSE_VER) --strip-components 1 -zxf $<
802
$(SUITESPARSE_OBJ_SOURCE): $(OPENBLAS_OBJ_SOURCE) SuiteSparse-$(SUITESPARSE_VER)/Makefile
1009
ifeq ($(USE_SYSTEM_BLAS), 0)
1010
$(SUITESPARSE_OBJ_SOURCE): $(OPENBLAS_OBJ_TARGET)
1012
#todo: rpath is missing on mac for tests
1013
$(SUITESPARSE_OBJ_SOURCE): SuiteSparse-$(SUITESPARSE_VER)/Makefile
803
1014
cd SuiteSparse-$(SUITESPARSE_VER) && \
804
1015
$(MAKE) CC="$(CC)" CXX="$(CXX)" F77="$(FC)" AR="$(AR)" RANLIB="$(RANLIB)" BLAS="$(LIBBLAS)" LAPACK="$(LIBLAPACK)" \
805
1016
INSTALL_LIB="$(BUILD)/lib" INSTALL_INCLUDE="$(BUILD)/include" LIB="$(SUITE_SPARSE_LIB)" \
806
1017
UMFPACK_CONFIG="$(UMFPACK_CONFIG)" CHOLMOD_CONFIG="$(CHOLMOD_CONFIG)"
809
ifeq ($(USE_SYSTEM_SUITESPARSE), 0)
810
1019
$(SUITESPARSE_OBJ_TARGET): $(SUITESPARSE_OBJ_SOURCE)
811
1020
mkdir -p SuiteSparse-$(SUITESPARSE_VER)/lib && \
812
1021
cd SuiteSparse-$(SUITESPARSE_VER)/lib && \
839
1053
SUITESPARSE_INC = -I SuiteSparse-$(SUITESPARSE_VER)/CHOLMOD/Include -I SuiteSparse-$(SUITESPARSE_VER)/SuiteSparse_config -I SuiteSparse-$(SUITESPARSE_VER)/SPQR/Include
840
1054
SUITESPARSE_LIB = -L$(BUILD)/lib -lcholmod -lumfpack -lspqr $(RPATH_ORIGIN)
1055
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): $(SUITESPARSE_OBJ_TARGET)
843
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): SuiteSparse_wrapper.c $(SUITESPARSE_OBJ_TARGET)
1058
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): SuiteSparse_wrapper.c
844
1059
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -O2 -shared $(fPIC) $(SUITESPARSE_INC) SuiteSparse_wrapper.c -o $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT) $(SUITESPARSE_LIB)
845
1060
$(INSTALL_NAME_CMD)libsuitesparse_wrapper.$(SHLIB_EXT) $@
847
install-suitesparse-wrapper: $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
849
1063
clean-suitesparse-wrapper:
850
1064
-rm -f $(SUITESPARSE_OBJ_TARGET) $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
851
1065
distclean-suitesparse-wrapper: clean-suitesparse-wrapper
855
CLP_OBJ_TARGET = $(BUILD)/lib/libClp.$(SHLIB_EXT)
857
compile-clp: install-clp
858
install-clp: $(CLP_OBJ_TARGET)
860
clp-$(CLP_VER).tar.gz:
861
$(WGET_DASH_O) $@ http://www.coin-or.org/download/source/Clp/Clp-1.14.5.tgz
862
clp-$(CLP_VER)/configure: clp-$(CLP_VER).tar.gz
863
mkdir -p clp-$(CLP_VER)
864
tar -C clp-$(CLP_VER) --strip-components 1 -zxf $<
866
clp-$(CLP_VER)/config.status: clp-$(CLP_VER)/configure
867
cd clp-$(CLP_VER) && \
868
./configure $(CONFIGURE_COMMON) MPIF77="$(FC)" MPICXX="$(CXX)" MPICC="$(CC)"
869
$(CLP_OBJ_TARGET): clp-$(CLP_VER)/config.status
870
$(MAKE) -C clp-$(CLP_VER) install
874
-$(MAKE) -C clp-$(CLP_VER) clean
875
-rm -f $(CLP_OBJ_TARGET)
877
-rm -rf clp-$(CLP_VER).tar.gz clp-$(CLP_VER)
1067
get-suitesparse-wrapper:
1068
configure-suitesparse-wrapper:
1069
compile-suitesparse-wrapper:
1070
check-suitesparse-wrapper:
1071
install-suitesparse-wrapper: $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
881
ifeq ($(USE_SYSTEM_LIBUNWIND), 0)
882
1076
LIBUNWIND_TARGET_OBJ = $(BUILD)/lib/libunwind.a
883
1077
LIBUNWIND_TARGET_SOURCE = libunwind-$(UNWIND_VER)/src/.libs/libunwind.a
885
LIBUNWIND_TARGET_OBJ =
886
LIBUNWIND_TARGET_SOURCE =
889
1078
LIBUNWIND_CFLAGS = $(CFLAGS) -U_FORTIFY_SOURCE $(fPIC)
890
ifeq ($(ARCH), ppc64)
891
LIBUNWIND_CFLAGS += -m64
894
compile-unwind: $(LIBUNWIND_TARGET_SOURCE)
895
install-unwind: $(LIBUNWIND_TARGET_OBJ)
897
1080
libunwind-$(UNWIND_VER).tar.gz:
898
1081
$(WGET) http://savannah.spinellicreations.com/libunwind/libunwind-$(UNWIND_VER).tar.gz
899
libunwind-$(UNWIND_VER)/Makefile: libunwind-$(UNWIND_VER).tar.gz
1082
libunwind-$(UNWIND_VER)/configure: libunwind-$(UNWIND_VER).tar.gz
901
cd libunwind-$(UNWIND_VER) && ./configure $(CONFIGURE_COMMON) CFLAGS="$(LIBUNWIND_CFLAGS)"
903
$(LIBUNWIND_TARGET_SOURCE): libunwind-$(UNWIND_VER)/Makefile
904
cd libunwind-$(UNWIND_VER) && $(MAKE)
1085
libunwind-$(UNWIND_VER)/config.status: libunwind-$(UNWIND_VER)/configure
1086
cd libunwind-$(UNWIND_VER) && \
1087
./configure $(CONFIGURE_COMMON) CFLAGS="$(LIBUNWIND_CFLAGS)" --disable-shared --disable-minidebuginfo
1089
$(LIBUNWIND_TARGET_SOURCE): libunwind-$(UNWIND_VER)/config.status
1090
$(MAKE) -C libunwind-$(UNWIND_VER)
1092
libunwind-$(UNWIND_VER)/checked: $(LIBUNWIND_TARGET_SOURCE)
1093
ifeq ($(OS),$(BUILD_OS))
1094
$(MAKE) -C libunwind-$(UNWIND_VER) check
1097
#todo: libunwind tests known to fail
906
1098
$(LIBUNWIND_TARGET_OBJ): $(LIBUNWIND_TARGET_SOURCE)
907
cd libunwind-$(UNWIND_VER) && $(MAKE) install
1099
$(MAKE) install -C libunwind-$(UNWIND_VER)
1100
ifeq ($(ARCH), ppc64)
1101
# workaround for configure script bug
1102
mv $(BUILD)/lib64/libunwind*.a $(BUILD)/lib/
910
1106
-$(MAKE) -C libunwind-$(UNWIND_VER) clean
911
1107
-rm -f $(LIBUNWIND_TARGET_OBJ) $(LIBUNWIND_TARGET_SOURCE)
913
1108
distclean-unwind:
914
1109
-rm -rf libunwind-$(UNWIND_VER).tar.gz libunwind-$(UNWIND_VER)
918
ifeq ($(USE_SYSTEM_LIGHTTPD), 0)
919
LIGHTTPD_OBJ_TARGET = $(BUILD)/sbin/lighttpd
1111
get-unwind: libunwind-$(UNWIND_VER).tar.gz
1112
configure-unwind: libunwind-$(UNWIND_VER)/config.status
1113
compile-unwind: $(LIBUNWIND_TARGET_SOURCE)
1114
check-unwind: libunwind-$(UNWIND_VER)/checked
1115
install-unwind: $(LIBUNWIND_TARGET_OBJ)
1120
ifneq ($(OS), WINNT)
1121
NGINX_OBJ_TARGET = $(BUILD)/sbin/nginx
1122
NGINX_SRC_TARGET = nginx/objs/nginx
1123
NGINX_FLAGS = --with-ld-opt="-L'$(BUILD)/lib' -lpcre -Wl,-rpath,'$(BUILD)/lib' $(RPATH)"
1127
for x in .gitignore Makefile config.status objs; do echo /$$x >> $@; done
1128
nginx/auto/configure: | compile-pcre
1129
(cd .. && git submodule update --init)
1131
nginx/config.status: nginx/auto/configure nginx/.gitignore
1133
./auto/configure --without-http_gzip_module --without-http_rewrite_module $(NGINX_FLAGS) --with-debug --prefix=".."
1135
$(NGINX_SRC_TARGET): nginx/config.status nginx/.gitignore
1138
$(NGINX_OBJ_TARGET): $(NGINX_SRC_TARGET) nginx/.gitignore
1139
$(MAKE) -C nginx install DESTDIR="$(abspath $(BUILD)/bin)/"
1143
-$(MAKE) -C nginx clean
1147
get-nginx: nginx/auto/configure
1148
configure-nginx: nginx/config.status
1149
compile-nginx: $(NGINX_SRC_TARGET)
1150
check-nginx: $(NGINX_SRC_TARGET)
1151
install-nginx: $(NGINX_OBJ_TARGET)
921
LIGHTTPD_OBJ_TARGET =
1154
NGINX_SRC_TARGET = nginx-$(NGINX_VER).zip
1155
NGINX_OBJ_TARGET = nginx-$(NGINX_VER)/nginx.exe
1156
$(NGINX_SRC_TARGET):
1157
$(WGET) http://nginx.org/download/$@
1158
$(NGINX_OBJ_TARGET): $(NGINX_SRC_TARGET)
1161
$(BUILD)/sbin/nginx.exe: $(NGINX_OBJ_TARGET)
1162
mkdir -p $(BUILD)/sbin
1163
cp -a nginx-$(NGINX_VER)/* $(BUILD)/sbin
1165
get-nginx: $(NGINX_SRC_TARGET)
1166
configure-nginx: get-nginx
1167
compile-nginx: $(NGINX_OBJ_TARGET)
1168
check-nginx: compile-nginx
1169
install-nginx: $(BUILD)/sbin/nginx.exe
924
compile-lighttpd: install-lighttpd
925
install-lighttpd: $(LIGHTTPD_OBJ_TARGET) lighttpd.conf
926
mkdir -p $(BUILD)/etc
927
cp -f lighttpd.conf $(BUILD)/etc/lighttpd.conf
929
lighttpd-$(LIGHTTPD_VER).tar.gz:
930
$(WGET) http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-$(LIGHTTPD_VER).tar.gz
931
lighttpd-$(LIGHTTPD_VER)/configure: lighttpd-$(LIGHTTPD_VER).tar.gz
934
lighttpd-$(LIGHTTPD_VER)/config.status: lighttpd-$(LIGHTTPD_VER)/configure
935
mkdir -p $(BUILD)/lib/lighttpd && \
936
cd lighttpd-$(LIGHTTPD_VER) && \
937
./configure $(CONFIGURE_COMMON) --libdir=$(BUILD)/lib/lighttpd --without-pcre --without-zlib --without-bzip2
938
$(LIGHTTPD_OBJ_TARGET): lighttpd-$(LIGHTTPD_VER)/config.status
939
$(MAKE) -C lighttpd-$(LIGHTTPD_VER) install
940
$(INSTALL_NAME_CMD)lighttpd/liblightcomp.$(SHLIB_EXT) $(BUILD)/lib/lighttpd/liblightcomp.$(SHLIB_EXT)
941
$(INSTALL_NAME_CHANGE_CMD) $(BUILD)/lib/lighttpd/liblightcomp.dylib @executable_path/../lib/lighttpd/liblightcomp.dylib $(BUILD)/sbin/lighttpd
945
-$(MAKE) -C lighttpd-$(LIGHTTPD_VER) clean
946
-rm -f $(LIGHTTPD_OBJ_TARGET)
948
-rm -rf lighttpd-$(LIGHTTPD_VER).tar.gz lighttpd-$(LIGHTTPD_VER)
952
ifeq ($(USE_SYSTEM_GMP), 0)
1175
GMP_SRC_TARGET = gmp-$(GMP_VER)/.libs/libgmp.$(SHLIB_EXT)
953
1176
GMP_OBJ_TARGET = $(BUILD)/lib/libgmp.$(SHLIB_EXT)
958
compile-gmp: install-gmp
959
install-gmp: $(GMP_OBJ_TARGET)
961
1178
gmp-$(GMP_VER).tar.bz2:
962
1179
$(WGET) ftp://ftp.gmplib.org/pub/gmp-$(GMP_VER)/$@
963
1180
gmp-$(GMP_VER)/configure: gmp-$(GMP_VER).tar.bz2
966
1183
gmp-$(GMP_VER)/config.status: gmp-$(GMP_VER)/configure
967
1184
cd gmp-$(GMP_VER) && \
968
./configure --prefix=$(abspath $(BUILD)) CC="$(CC)" CXX="$(CXX)" --enable-shared --disable-static
969
$(GMP_OBJ_TARGET): gmp-$(GMP_VER)/config.status
1185
./configure $(CONFIGURE_COMMON) F77= --enable-shared --disable-static
1187
$(GMP_SRC_TARGET): gmp-$(GMP_VER)/config.status
970
1188
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD)
1189
gmp-$(GMP_VER)/checked: $(GMP_SRC_TARGET)
971
1190
ifeq ($(OS),$(BUILD_OS))
972
1191
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD) check
1194
$(GMP_OBJ_TARGET): $(GMP_SRC_TARGET) gmp-$(GMP_VER)/checked
974
1195
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD) install
975
1196
$(INSTALL_NAME_CMD)libgmp.dylib $@
979
1200
-$(MAKE) -C gmp-$(GMP_VER) clean
990
1217
GMPW_INC = -I $(BUILD)/include
991
1218
GMPW_LIB = -L$(BUILD)/lib/ -lgmp
1219
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): $(GMP_OBJ_TARGET)
994
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): gmp_wrapper.c $(GMP_OBJ_TARGET) | $(BUILD)/lib
1222
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): gmp_wrapper.c | $(BUILD)/lib
995
1223
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -O2 -shared $(fPIC) $(GMPW_INC) gmp_wrapper.c -o $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT) $(RPATH_ORIGIN) $(GMPW_LIB)
996
1224
$(INSTALL_NAME_CMD)libgmp_wrapper.$(SHLIB_EXT) $@
998
install-gmp-wrapper: $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
1000
1227
clean-gmp-wrapper:
1001
1228
-rm -f $(GMP_OBJ_TARGET) $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
1002
1229
distclean-gmp-wrapper: clean-gmp-wrapper
1232
configure-gmp-wrapper:
1233
compile-gmp-wrapper:
1235
install-gmp-wrapper: $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
1006
ifeq ($(USE_SYSTEM_GLPK), 1)
1240
GLPK_SRC_TARGET = glpk-$(GLPK_VER)/src/.libs/libglpk.$(SHLIB_EXT)
1009
1241
GLPK_OBJ_TARGET = $(BUILD)/lib/libglpk.$(SHLIB_EXT)
1012
compile-glpk: install-glpk
1013
install-glpk: $(GLPK_OBJ_TARGET) $(BUILD)/lib/libglpk_wrapper.$(SHLIB_EXT)
1015
1243
glpk-$(GLPK_VER).tar.gz:
1016
1244
$(WGET) http://ftp.gnu.org/gnu/glpk/$@
1018
1245
glpk-$(GLPK_VER)/configure: glpk-$(GLPK_VER).tar.gz
1021
1248
glpk-$(GLPK_VER)/config.status: glpk-$(GLPK_VER)/configure
1022
1249
cd glpk-$(GLPK_VER) && \
1023
1250
./configure $(CONFIGURE_COMMON)
1024
$(GLPK_OBJ_TARGET): glpk-$(GLPK_VER)/config.status
1252
$(GLPK_SRC_TARGET): glpk-$(GLPK_VER)/config.status
1253
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD)
1255
glpk-$(GLPK_VER)/checked: $(GLPK_SRC_TARGET)
1256
ifeq ($(OS),$(BUILD_OS))
1257
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD) check
1260
$(GLPK_OBJ_TARGET): $(GLPK_SRC_TARGET) glpk-$(GLPK_VER)/checked
1025
1261
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD) install
1026
1262
$(INSTALL_NAME_CMD)libglpk.dylib $@
1263
$(AUTOTOOLS_PATH_CORRECT)
1030
1267
-$(MAKE) -C glpk-$(GLPK_VER) uninstall || true
1031
1268
-$(MAKE) -C glpk-$(GLPK_VER) clean
1032
1269
distclean-glpk: clean-glpk
1033
-rm -rf glpk-$(GLPK_VER).tar.bz2 glpk-$(GLPK_VER)
1270
-rm -rf glpk-$(GLPK_VER).tar.gz glpk-$(GLPK_VER)
1272
get-glpk: glpk-$(GLPK_VER).tar.gz
1273
configure-glpk: glpk-$(GLPK_VER)/config.status
1274
compile-glpk: $(GLPK_SRC_TARGET)
1275
check-glpk: glpk-$(GLPK_VER)/checked
1276
install-glpk: $(GLPK_OBJ_TARGET) $(BUILD)/lib/libglpk_wrapper.$(SHLIB_EXT)
1036
1278
## GLPK Wrapper