160
159
LLVM_CLANG_TAR=clang-$(LLVM_VER).src.tar.gz
161
160
LLVM_COMPILER_RT_TAR=compiler-rt-$(LLVM_VER).src.tar.gz
164
LLVM_COMPILER_RT_TAR=
167
LLVM_FLAGS = --disable-threads --disable-profiling --enable-shared --enable-targets=host --disable-bindings --disable-docs
169
ifeq ($(LLVM_ASSERTIONS), 1)
170
LLVM_FLAGS += --enable-assertions --enable-optimized
172
LLVM_FLAGS += --disable-embed-stdcxx
175
LLVM_FLAGS += --disable-assertions --enable-optimized
178
ifeq ($(BUILD_LLDB),1)
180
LLVM_FLAGS += --enable-cxx11
182
LLVM_MFLAGS += CXXFLAGS=-std=c++0x
186
ifeq ($(ARCH), ppc64)
187
LLVM_FLAGS += CXXFLAGS=-mminimal-toc
188
LLVM_MFLAGS += CXXFLAGS=-mminimal-toc
166
191
ifneq ($(LLVM_CLANG_TAR),)
167
192
$(LLVM_CLANG_TAR):
168
193
$(WGET) http://llvm.org/releases/$(LLVM_VER)/$@
171
195
ifneq ($(LLVM_COMPILER_RT_TAR),)
172
196
$(LLVM_COMPILER_RT_TAR):
173
197
$(WGET) http://llvm.org/releases/$(LLVM_VER)/$@
178
200
$(WGET) http://llvm.org/releases/$(LLVM_VER)/$@
180
ifeq ($(BUILD_LLDB), 1)
202
ifeq ($(BUILD_LLDB),1)
181
203
llvm-$(LLVM_VER)/tools/lldb:
182
204
llvm-$(LLVM_VER)/configure: llvm-$(LLVM_VER)/tools/lldb
207
## LLVM needs python 2.x, but doesn't check for it, so we have to use an ugly workaround to make it compile
208
llvm-$(LLVM_VER)/python2_path:
209
mkdir -p llvm-$(LLVM_VER)/python2_path
210
-python -c 'import sys; sys.exit(not sys.version_info > (3, 0))' && \
211
/usr/bin/python2 -c 'import sys; sys.exit(not sys.version_info < (3, 0))' && \
212
ln -sf /usr/bin/python2 "llvm-$(LLVM_VER)/python2_path/python"
213
llvm_python_workaround=llvm-$(LLVM_VER)/python2_path
185
215
llvm-$(LLVM_VER)/configure: $(LLVM_TAR) $(LLVM_CLANG_TAR) $(LLVM_COMPILER_RT_TAR)
186
216
mkdir -p llvm-$(LLVM_VER) && \
187
217
tar -C llvm-$(LLVM_VER) --strip-components 1 -xf $(LLVM_TAR)
199
229
git clone http://llvm.org/git/lldb.git)) || \
200
230
([ -d llvm-$(LLVM_VER)/tools/lldb ] && \
201
231
(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
233
cd llvm-$(LLVM_VER)/tools/lldb && git checkout origin/release_32
237
llvm-$(LLVM_VER)/build/config.status: llvm-$(LLVM_VER)/configure | $(llvm_python_workaround)
243
238
cd llvm-$(LLVM_VER) && \
244
239
mkdir -p build && cd build && \
245
240
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
246
../configure $(CONFIGURE_COMMON) $(LLVM_FLAGS) && \
241
../configure $(CONFIGURE_COMMON) $(LLVM_FLAGS)
243
$(LLVM_OBJ_SOURCE): llvm-$(LLVM_VER)/build/config.status | $(llvm_python_workaround)
244
cd llvm-$(LLVM_VER)/build && \
245
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
247
246
$(MAKE) $(LLVM_MFLAGS)
248
$(LLVM_OBJ_TARGET): $(LLVM_OBJ_SOURCE) | llvm_python_workaround
248
llvm-$(LLVM_VER)/build/checked: $(LLVM_OBJ_SOURCE) | $(llvm_python_workaround)
249
ifeq ($(OS),$(BUILD_OS))
250
cd llvm-$(LLVM_VER)/build && \
251
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
252
$(MAKE) $(LLVM_MFLAGS) check
255
$(LLVM_OBJ_TARGET): $(LLVM_OBJ_SOURCE) | $(llvm_python_workaround)
249
256
export PATH=$(abspath llvm-$(LLVM_VER)/python2_path):$$PATH && \
250
257
$(MAKE) -C llvm-$(LLVM_VER)/build install
251
258
$(INSTALL_NAME_CMD)$(LLVM_LIB_FILE) $(BUILD)/lib/$(LLVM_LIB_FILE)
259
$(AUTOTOOLS_PATH_CORRECT)
255
263
-$(MAKE) -C llvm-$(LLVM_VER)/build clean
258
266
-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)
268
get-llvm: $(LLVM_TAR) $(LLVM_CLANG_TAR) $(LLVM_COMPILER_RT_TAR)
269
configure-llvm: llvm-$(LLVM_VER)/build/config.status
270
compile-llvm: $(LLVM_OBJ_SOURCE)
271
check-llvm: llvm-$(LLVM_VER)/build/checked
272
install-llvm: $(LLVM_OBJ_TARGET)
273
#todo: LLVM make check target is broken on julia.mit.edu (and really slow elsewhere)
260
276
## 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)
280
READLINE_OBJ_TARGET = $(BUILD)/lib/libreadline.a
281
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/libreadline.a
282
READLINE_URL = https://github.com/JuliaLang/readline/tarball/master
283
READLINE_OPTS = --disable-shared --enable-static --with-curses
284
READLINE_CFLAGS = LOCAL_DEFS="-include $(abspath .)/readline-win.h"
280
285
readline-$(READLINE_VER).tar.gz:
281
286
$(WGET_DASH_O) $@ $(READLINE_URL)
282
288
readline-$(READLINE_VER)/configure: readline-$(READLINE_VER).tar.gz
283
289
mkdir readline-$(READLINE_VER)
284
290
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)
292
$(READLINE_OBJ_TARGET): $(READLINE_OBJ_SOURCE) readline-$(READLINE_VER)/checked
293
293
$(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)
296
READLINE_OBJ_TARGET = $(BUILD)/lib/libreadline.$(SHLIB_EXT)
298
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/shlib/libreadline.$(SHLIB_EXT).$(READLINE_VER)
300
READLINE_OBJ_SOURCE = readline-$(READLINE_VER)/shlib/libreadline.$(READLINE_VER).$(SHLIB_EXT)
302
READLINE_URL = ftp://ftp.gnu.org/gnu/readline/readline-$(READLINE_VER).tar.gz
303
READLINE_OPTS = --enable-shared --enable-static --with-curses
304
305
readline-$(READLINE_VER).tar.gz:
305
$(WGET) http://ftp.gnu.org/gnu/readline/$@
306
306
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001
307
307
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-002
308
308
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-003
309
309
$(WGET) http://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-004
310
$(WGET) http://ftp.gnu.org/gnu/readline/$@
310
312
readline-$(READLINE_VER)/configure: readline-$(READLINE_VER).tar.gz
312
314
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-001
313
315
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-002
314
316
cd readline-$(READLINE_VER) && patch -p0 < ../readline62-003
315
317
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)
319
$(READLINE_OBJ_TARGET): $(READLINE_OBJ_SOURCE) readline-$(READLINE_VER)/checked
323
320
$(MAKE) -C readline-$(READLINE_VER) install
324
321
chmod +w $(BUILD)/lib/libreadline.* $(BUILD)/lib/libhistory.*
325
322
ifeq ($(OS), Darwin)
355
373
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
356
374
$(UV_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/libuv/HEAD
376
LIBUV_MAKE_FLAGS = -C libuv CC="$(CC)" AR="$(AR)" uname_S=$(uname_S)
358
377
$(UV_OBJ_SOURCE): libuv/Makefile
359
378
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)
379
$(MAKE) libuv.${SHLIB_EXT} $(LIBUV_MAKE_FLAGS)
381
$(MAKE) libuv.a $(LIBUV_MAKE_FLAGS)
383
libuv/checked: $(LIBUV_OBJ_SOURCE)
384
ifeq ($(OS),$(BUILD_OS))
385
$(MAKE) test $(LIBUV_MAKE_FLAGS)
388
#todo: libuv tests are really slow
363
389
$(UV_OBJ_TARGET): $(UV_OBJ_SOURCE)
364
390
mkdir -p $(BUILD)/include
365
391
cp $(UV_OBJ_SOURCE) $(BUILD)/lib/
366
392
cp -r libuv/include/* $(BUILD)/include
367
install-uv: $(UV_OBJ_TARGET)
370
395
-$(MAKE) -C libuv clean uname_S=$(uname_S)
371
396
-rm -rf $(BUILD)/lib/libuv.a $(BUILD)/include/uv.h $(BUILD)/include/uv-private
372
397
distclean-uv: clean-uv
399
get-uv: libuv/Makefile
401
compile-uv: $(UV_OBJ_SOURCE)
402
check-uv: libuv/checked
403
install-uv: $(UV_OBJ_TARGET)
408
PCRE_SRC_TARGET = pcre-$(PCRE_VER)/.libs/libpcre.$(SHLIB_EXT)
376
409
PCRE_OBJ_TARGET = $(BUILD)/lib/libpcre.$(SHLIB_EXT)
378
compile-pcre: install-pcre
379
install-pcre: $(PCRE_OBJ_TARGET)
381
411
pcre-$(PCRE_VER).tar.bz2:
382
412
$(WGET) ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$@
383
413
pcre-$(PCRE_VER)/configure: pcre-$(PCRE_VER).tar.bz2
386
416
pcre-$(PCRE_VER)/config.status: pcre-$(PCRE_VER)/configure
387
417
cd pcre-$(PCRE_VER) && \
388
418
./configure $(CONFIGURE_COMMON) --enable-utf --enable-unicode-properties --enable-jit
389
$(PCRE_OBJ_TARGET): pcre-$(PCRE_VER)/config.status
420
$(PCRE_SRC_TARGET): pcre-$(PCRE_VER)/config.status
421
$(MAKE) -C pcre-$(PCRE_VER) $(LIBTOOL_CCLD)
423
pcre-$(PCRE_VER)/checked: $(PCRE_SRC_TARGET)
424
ifeq ($(OS),$(BUILD_OS))
425
$(MAKE) -C pcre-$(PCRE_VER) check
428
$(PCRE_OBJ_TARGET): $(PCRE_SRC_TARGET) pcre-$(PCRE_VER)/checked
390
429
$(MAKE) -C pcre-$(PCRE_VER) $(LIBTOOL_CCLD) install
391
430
$(INSTALL_NAME_CMD)libpcre.dylib $@
392
431
ifeq ($(OS),WINNT)
393
432
-rm $(BUILD)/lib/libpcre.dll
394
433
mv $(BUILD)/bin/libpcre.dll $(BUILD)/lib/libpcre.dll
399
438
-$(MAKE) -C pcre-$(PCRE_VER) clean
427
477
OPENLIBM_FLAGS = ARCH="$(ARCH)"
480
OPENLIBM_FLAGS += CC="$(CC)" FC="$(FC)" AR="$(AR)" OS="$(OS)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
430
482
OPENLIBM_OBJ_TARGET = $(BUILD)/lib/libopenlibm.$(SHLIB_EXT)
431
483
OPENLIBM_OBJ_SOURCE = openlibm/libopenlibm.$(SHLIB_EXT)
484
OPENLIBMEXT_OBJ_TARGET = $(BUILD)/lib/libopenlibm-extras.$(SHLIB_EXT)
485
OPENLIBMEXT_OBJ_SOURCE = openlibm/libopenlibm-extras.$(SHLIB_EXT)
433
487
ifeq (exists, $(shell [ -d openlibm/.git ] && echo exists ))
434
488
$(OPENLIBM_OBJ_SOURCE): openlibm/.git/HEAD
489
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/.git/HEAD
436
491
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
437
492
$(OPENLIBM_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
493
$(OPENLIBMEXT_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/openlibm/HEAD
439
495
$(OPENLIBM_OBJ_SOURCE): openlibm/Makefile
440
$(MAKE) -C openlibm $(OPENLIBM_FLAGS) CC="$(CC)" FC="$(FC)" AR="$(AR)" OS="$(OS)" USECLANG=$(USECLANG) USEGCC=$(USEGCC)
496
$(MAKE) -C openlibm $(OPENLIBM_FLAGS)
498
$(OPENLIBMEXT_OBJ_SOURCE): openlibm/Makefile.extras
499
$(MAKE) -C openlibm -f Makefile.extras $(OPENLIBM_FLAGS)
441
501
$(OPENLIBM_OBJ_TARGET): $(OPENLIBM_OBJ_SOURCE) | $(BUILD)/lib
443
503
$(INSTALL_NAME_CMD)libopenlibm.$(SHLIB_EXT) $@
444
install-openlibm: $(OPENLIBM_OBJ_TARGET)
504
$(OPENLIBMEXT_OBJ_TARGET): $(OPENLIBMEXT_OBJ_SOURCE) | $(BUILD)/lib
506
$(INSTALL_NAME_CMD)libopenlibm-extras.$(SHLIB_EXT) $@
447
509
-$(MAKE) -C openlibm distclean
448
510
-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)
511
distclean-openlibm: clean-openlibm
471
513
clean-openlibm-extras:
472
514
-$(MAKE) -C openlibm -f Makefile.extras distclean
473
515
-rm $(OPENLIBMEXT_OBJ_TARGET)
474
516
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
518
get-openlibm: openlibm/Makefile
519
configure-openlibm: get-openlibm
520
compile-openlibm: $(OPENLIBM_OBJ_SOURCE)
521
check-openlibm: compile-openlibm
522
install-openlibm: $(OPENLIBM_OBJ_TARGET)
524
get-openlibm-extras: openlibm/Makefile.extras
525
configure-openlibm-extras: get-openlibm-extras
526
compile-openlibm-extras: $(OPENLIBMEXT_OBJ_SOURCE)
527
check-openlibm-extras: compile-openlibm-extras
528
install-openlibm-extras: $(OPENLIBMEXT_OBJ_TARGET)
532
550
-rm -f random/librandom.$(SHLIB_EXT)
533
551
distclean-random: clean-random
555
compile-random: $(LIBRANDOM_OBJ_SOURCE)
556
check-random: compile-random
557
install-random: $(LIBRANDOM_OBJ_TARGET)
562
RMATH_OBJ_TARGET = $(BUILD)/lib/libRmath.$(SHLIB_EXT)
563
RMATH_OBJ_SOURCE = Rmath/src/libRmath.$(SHLIB_EXT)
565
RMATH_FLAGS += CC="$(CC)" USECLANG=$(USECLANG) USEGCC=$(USEGCC) \
566
OS="$(OS)" ARCH="$(ARCH)" \
567
USE_LIBRANDOM=1 LIBRANDOM_PATH="$(BUILD)/lib"
569
ifeq (exists, $(shell [ -d Rmath/.git ] && echo exists ))
570
$(RMATH_OBJ_SOURCE): Rmath/.git/HEAD
572
ifeq (exists, $(shell [ -d $(JULIAHOME)/modules ] && echo exists ))
573
$(RMATH_OBJ_SOURCE): $(JULIAHOME)/.git/modules/deps/Rmath/HEAD
575
$(RMATH_OBJ_SOURCE): Rmath/Make.inc $(LIBRANDOM_OBJ_TARGET)
576
$(MAKE) -C Rmath/src $(RMATH_FLAGS)
578
$(RMATH_OBJ_TARGET): $(RMATH_OBJ_SOURCE) | $(BUILD)/lib
580
$(INSTALL_NAME_CMD)libRmath.$(SHLIB_EXT) $@
583
-$(MAKE) -C Rmath/src clean
584
-rm $(RMATH_OBJ_TARGET)
585
distclean-Rmath: clean-Rmath
587
get-Rmath: Rmath/Make.inc
588
configure-Rmath: get-Rmath
589
compile-Rmath: $(RMATH_OBJ_SOURCE)
590
check-Rmath: compile-Rmath
591
install-Rmath: $(RMATH_OBJ_TARGET)
537
ifeq ($(USE_SYSTEM_BLAS), 0)
538
596
OPENBLAS_OBJ_SOURCE = openblas-$(OPENBLAS_VER)/libopenblas.$(SHLIB_EXT)
540
OPENBLAS_OBJ_SOURCE =
597
OPENBLAS_OBJ_TARGET = $(BUILD)/lib/libopenblas.$(SHLIB_EXT)
543
599
OPENBLAS_BUILD_OPTS = CC="$(CC)" FC="$(FC)" RANLIB="$(RANLIB)" FFLAGS="$(FFLAGS) $(JFFLAGS)" USE_THREAD=$(OPENBLAS_USE_THREAD) TARGET=$(OPENBLAS_TARGET_ARCH)
544
600
ifeq ($(OPENBLAS_DYNAMIC_ARCH), 1)
579
633
distclean-openblas:
580
634
-rm -rf openblas-$(OPENBLAS_VER).tar.gz openblas-$(OPENBLAS_VER)
636
get-openblas: openblas-$(OPENBLAS_VER).tar.gz
637
configure-openblas: get-openblas
638
compile-openblas: $(OPENBLAS_OBJ_SOURCE)
639
check-openblas: compile-openblas
640
install-openblas: $(OPENBLAS_OBJ_TARGET)
643
## ATLAS (currently 3.10.0) ##
645
# no threading, with full lapack, shared library
646
# should always be compiled with (a real) gcc, it's
647
# configure script will search for the best match
648
# (gcc 4.7, gcc, clang,ICC/microsoft/others)
649
ATLAS_OBJ_SOURCE = atlas/build/lib/libsatlas.$(SHLIB_EXT)
650
ATLAS_FLAGS = --shared --prefix=$(BUILD) --cc=gcc -t 0 \
651
--with-netlib-lapack-tarfile=$(JULIAHOME)/deps/lapack-$(LAPACK_VER).tgz
656
#force backwards compatibility (pick any 1)
657
#ATLAS_FLAGS += -V 192 -A 13 # requires SSE2 (P4 & later)
658
#ATLAS_FLAGS += -V 128 -A 12 # requires SSE1 (P3 & later)
659
#ATLAS_FLAGS += -V -1 -A 11 # any x87 (PentiumPro or Athlon & later)
660
#ATLAS_FLAGS += -A 25 # requires Corei132 (Corei232 doesn't have definition yet)
663
git clone git://github.com/vtjnash/atlas-3.10.0.git atlas
664
ifeq "$(MAKECMDGOALS)" "build-atlas"
665
# only allow building atlas as the sole target (without -jN)
666
# since it internally handles parallelism, for tuning timing accuracy
667
atlas/build/Make.top: atlas/configure lapack-$(LAPACK_VER).tgz
669
(test -d build || mkdir build) && cd build && \
670
../configure $(ATLAS_FLAGS)
672
$(ATLAS_OBJ_SOURCE): atlas/build/Make.top
673
$(MAKE) -C atlas/build -j1
677
$(error cannot build atlas in parallel with anything else)
679
$(BUILD)/lib/libsatlas.$(SHLIB_EXT): $(ATLAS_OBJ_SOURCE)
680
cp -f atlas/build/lib/libsatlas.$(SHLIB_EXT) $(BUILD)/lib
681
$(INSTALL_NAME_CMD)libsatlas.$(SHLIB_EXT) $(BUILD)/lib/libsatlas.$(SHLIB_EXT)
685
distclean-atlas: clean-atlas
688
get-atlas: atlas/configure
689
configure-atlas: atlas/build/Make.top
690
compile-atlas: $(ATLAS_OBJ_SOURCE)
691
check-atlas: compile-atlas
692
install-atlas: $(BUILD)/lib/libsatlas.$(SHLIB_EXT)
584
697
ifeq ($(USE_SYSTEM_LAPACK), 0)
623
746
ARPACK_OBJ_TARGET = $(BUILD)/lib/libarpack.$(SHLIB_EXT)
624
748
ARPACK_OBJ_SOURCE = arpack-ng_$(ARPACK_VER)/libarpack.$(SHLIB_EXT)
626
compile-arpack: $(ARPACK_OBJ_SOURCE)
627
install-arpack: $(ARPACK_OBJ_TARGET)
750
ARPACK_OBJ_SOURCE = arpack-ng_$(ARPACK_VER)/.libs/libarpack.$(SHLIB_EXT)
752
ARPACK_ARGS = F77="$(FC)" MPIF77="$(FC)"
753
ARPACK_OPTS = $(FFLAGS) $(JFFLAGS)
629
755
arpack-ng_$(ARPACK_VER).tar.gz:
630
756
$(WGET_DASH_O) $@ http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_$(ARPACK_VER).tar.gz
632
758
arpack-ng_$(ARPACK_VER)/configure: arpack-ng_$(ARPACK_VER).tar.gz
635
$(ARPACK_OBJ_SOURCE): arpack-ng_$(ARPACK_VER)/configure $(OPENBLAS_OBJ_SOURCE)
761
ifeq ($(USE_SYSTEM_BLAS), 0)
762
arpack-ng_$(ARPACK_VER)/config.status: $(OPENBLAS_OBJ_TARGET)
764
arpack-ng_$(ARPACK_VER)/config.status: arpack-ng_$(ARPACK_VER)/configure
766
cd arpack-ng_$(ARPACK_VER) && \
767
rm -f UTIL/second_NONE.f
636
770
cd arpack-ng_$(ARPACK_VER) && \
637
771
./configure $(CONFIGURE_COMMON) --with-blas="$(LIBBLAS)" --with-lapack="$(LIBLAPACK)" --disable-mpi --enable-shared FFLAGS="$(ARPACK_FFLAGS)"
639
$(ARPACK_OBJ_TARGET): $(ARPACK_OBJ_SOURCE) | $(BUILD)/lib
640
cd arpack-ng_$(ARPACK_VER) && \
641
$(MAKE) install F77="$(FC)" MPIF77="$(FC)"
774
$(ARPACK_OBJ_SOURCE): arpack-ng_$(ARPACK_VER)/config.status
776
cd arpack-ng_$(ARPACK_VER) && \
777
$(FC) -shared $(ARPACK_OPTS) SRC/*.f UTIL/*.f $(LIBLAPACK) $(LIBBLAS) -o libarpack.$(SHLIB_EXT)
779
cd arpack-ng_$(ARPACK_VER) && \
780
$(MAKE) $(ARPACK_ARGS)
783
arpack-ng_$(ARPACK_VER)/checked: $(ARPACK_OBJ_SOURCE)
785
cd arpack-ng_$(ARPACK_VER) && \
786
$(MAKE) check $(ARPACK_ARGS)
789
$(ARPACK_OBJ_TARGET): $(ARPACK_OBJ_SOURCE) arpack-ng_$(ARPACK_VER)/checked | $(BUILD)/lib
791
cd arpack-ng_$(ARPACK_VER) && \
792
cp libarpack.$(SHLIB_EXT) $(BUILD)/lib/libarpack.$(SHLIB_EXT)
794
cd arpack-ng_$(ARPACK_VER) && \
795
$(MAKE) install $(ARPACK_ARGS)
642
796
$(INSTALL_NAME_CMD)libarpack.$(SHLIB_EXT) $(BUILD)/lib/libarpack.$(SHLIB_EXT)
643
797
ifeq ($(OS), Linux)
644
798
for filename in $(BUILD)/lib/libarpack.so* ; do \
645
799
$(BUILD)/bin/patchelf --set-rpath '$$ORIGIN' $$filename ;\
651
806
-$(MAKE) -C arpack-ng_$(ARPACK_VER) clean
755
955
SUITE_SPARSE_LIB = -lm
756
956
ifneq ($(OS), Darwin)
757
957
ifneq ($(OS), WINNT)
758
SUITE_SPARSE_LIB += -lrt
762
compile-suitesparse: $(SUITESPARSE_OBJ_SOURCE)
763
install-suitesparse: $(SUITESPARSE_OBJ_TARGET) $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
958
SUITE_SPARSE_LIB += -lrt
962
SUITE_SPARSE_LIB += -Wl,-rpath,'$(BUILD)/lib'
765
965
SuiteSparse-$(SUITESPARSE_VER).tar.gz:
766
966
$(WGET) http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-$(SUITESPARSE_VER).tar.gz
767
967
SuiteSparse-$(SUITESPARSE_VER)/Makefile: SuiteSparse-$(SUITESPARSE_VER).tar.gz
768
968
mkdir -p SuiteSparse-$(SUITESPARSE_VER)
769
969
tar -C SuiteSparse-$(SUITESPARSE_VER) --strip-components 1 -zxf $<
771
$(SUITESPARSE_OBJ_SOURCE): $(OPENBLAS_OBJ_SOURCE) SuiteSparse-$(SUITESPARSE_VER)/Makefile
971
ifeq ($(USE_SYSTEM_BLAS), 0)
972
$(SUITESPARSE_OBJ_SOURCE): $(OPENBLAS_OBJ_TARGET)
974
#todo: rpath is missing on mac for tests
975
$(SUITESPARSE_OBJ_SOURCE): SuiteSparse-$(SUITESPARSE_VER)/Makefile
772
976
cd SuiteSparse-$(SUITESPARSE_VER) && \
773
977
$(MAKE) CC="$(CC)" CXX="$(CXX)" F77="$(FC)" AR="$(AR)" RANLIB="$(RANLIB)" BLAS="$(LIBBLAS)" LAPACK="$(LIBLAPACK)" \
774
978
INSTALL_LIB="$(BUILD)/lib" INSTALL_INCLUDE="$(BUILD)/include" LIB="$(SUITE_SPARSE_LIB)" \
775
979
UMFPACK_CONFIG="$(UMFPACK_CONFIG)" CHOLMOD_CONFIG="$(CHOLMOD_CONFIG)"
778
ifeq ($(USE_SYSTEM_SUITESPARSE), 0)
779
981
$(SUITESPARSE_OBJ_TARGET): $(SUITESPARSE_OBJ_SOURCE)
780
982
mkdir -p SuiteSparse-$(SUITESPARSE_VER)/lib && \
781
983
cd SuiteSparse-$(SUITESPARSE_VER)/lib && \
808
1015
SUITESPARSE_INC = -I SuiteSparse-$(SUITESPARSE_VER)/CHOLMOD/Include -I SuiteSparse-$(SUITESPARSE_VER)/SuiteSparse_config -I SuiteSparse-$(SUITESPARSE_VER)/SPQR/Include
809
1016
SUITESPARSE_LIB = -L$(BUILD)/lib -lcholmod -lumfpack -lspqr $(RPATH_ORIGIN)
1017
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): $(SUITESPARSE_OBJ_TARGET)
812
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): SuiteSparse_wrapper.c $(SUITESPARSE_OBJ_TARGET)
1020
$(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT): SuiteSparse_wrapper.c
813
1021
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared $(fPIC) $(SUITESPARSE_INC) SuiteSparse_wrapper.c -o $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT) $(SUITESPARSE_LIB)
814
1022
$(INSTALL_NAME_CMD)libsuitesparse_wrapper.$(SHLIB_EXT) $@
816
install-suitesparse-wrapper: $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
818
1025
clean-suitesparse-wrapper:
819
1026
-rm -f $(SUITESPARSE_OBJ_TARGET) $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
820
1027
distclean-suitesparse-wrapper: clean-suitesparse-wrapper
824
CLP_OBJ_TARGET = $(BUILD)/lib/libClp.$(SHLIB_EXT)
826
compile-clp: install-clp
827
install-clp: $(CLP_OBJ_TARGET)
829
clp-$(CLP_VER).tar.gz:
830
$(WGET_DASH_O) $@ http://www.coin-or.org/download/source/Clp/Clp-1.14.5.tgz
831
clp-$(CLP_VER)/configure: clp-$(CLP_VER).tar.gz
832
mkdir -p clp-$(CLP_VER)
833
tar -C clp-$(CLP_VER) --strip-components 1 -zxf $<
835
clp-$(CLP_VER)/config.status: clp-$(CLP_VER)/configure
836
cd clp-$(CLP_VER) && \
837
./configure $(CONFIGURE_COMMON) MPIF77="$(FC)" MPICXX="$(CXX)" MPICC="$(CC)"
838
$(CLP_OBJ_TARGET): clp-$(CLP_VER)/config.status
839
$(MAKE) -C clp-$(CLP_VER) install
843
-$(MAKE) -C clp-$(CLP_VER) clean
844
-rm -f $(CLP_OBJ_TARGET)
846
-rm -rf clp-$(CLP_VER).tar.gz clp-$(CLP_VER)
1029
get-suitesparse-wrapper:
1030
configure-suitesparse-wrapper:
1031
compile-suitesparse-wrapper:
1032
check-suitesparse-wrapper:
1033
install-suitesparse-wrapper: $(BUILD)/lib/libsuitesparse_wrapper.$(SHLIB_EXT)
850
ifeq ($(USE_SYSTEM_LIBUNWIND), 0)
851
1038
LIBUNWIND_TARGET_OBJ = $(BUILD)/lib/libunwind.a
852
1039
LIBUNWIND_TARGET_SOURCE = libunwind-$(UNWIND_VER)/src/.libs/libunwind.a
854
LIBUNWIND_TARGET_OBJ =
855
LIBUNWIND_TARGET_SOURCE =
858
1040
LIBUNWIND_CFLAGS = $(CFLAGS) -U_FORTIFY_SOURCE $(fPIC)
859
ifeq ($(ARCH), ppc64)
860
LIBUNWIND_CFLAGS += -m64
863
compile-unwind: $(LIBUNWIND_TARGET_SOURCE)
864
install-unwind: $(LIBUNWIND_TARGET_OBJ)
866
1042
libunwind-$(UNWIND_VER).tar.gz:
867
1043
$(WGET) http://savannah.spinellicreations.com/libunwind/libunwind-$(UNWIND_VER).tar.gz
868
libunwind-$(UNWIND_VER)/Makefile: libunwind-$(UNWIND_VER).tar.gz
1044
libunwind-$(UNWIND_VER)/configure: libunwind-$(UNWIND_VER).tar.gz
870
cd libunwind-$(UNWIND_VER) && ./configure $(CONFIGURE_COMMON) CFLAGS="$(LIBUNWIND_CFLAGS)"
872
$(LIBUNWIND_TARGET_SOURCE): libunwind-$(UNWIND_VER)/Makefile
873
cd libunwind-$(UNWIND_VER) && $(MAKE)
1047
libunwind-$(UNWIND_VER)/config.status: libunwind-$(UNWIND_VER)/configure
1048
cd libunwind-$(UNWIND_VER) && \
1049
./configure $(CONFIGURE_COMMON) CFLAGS="$(LIBUNWIND_CFLAGS)" --disable-shared --disable-minidebuginfo
1051
$(LIBUNWIND_TARGET_SOURCE): libunwind-$(UNWIND_VER)/config.status
1052
$(MAKE) -C libunwind-$(UNWIND_VER)
1054
libunwind-$(UNWIND_VER)/checked: $(LIBUNWIND_TARGET_SOURCE)
1055
ifeq ($(OS),$(BUILD_OS))
1056
$(MAKE) -C libunwind-$(UNWIND_VER) check
1059
#todo: libunwind tests known to fail
875
1060
$(LIBUNWIND_TARGET_OBJ): $(LIBUNWIND_TARGET_SOURCE)
876
cd libunwind-$(UNWIND_VER) && $(MAKE) install
1061
$(MAKE) install -C libunwind-$(UNWIND_VER)
1062
ifeq ($(ARCH), ppc64)
1063
# workaround for configure script bug
1064
mv $(BUILD)/lib64/libunwind*.a $(BUILD)/lib/
879
1068
-$(MAKE) -C libunwind-$(UNWIND_VER) clean
880
1069
-rm -f $(LIBUNWIND_TARGET_OBJ) $(LIBUNWIND_TARGET_SOURCE)
882
1070
distclean-unwind:
883
1071
-rm -rf libunwind-$(UNWIND_VER).tar.gz libunwind-$(UNWIND_VER)
887
ifeq ($(USE_SYSTEM_LIGHTTPD), 0)
888
LIGHTTPD_OBJ_TARGET = $(BUILD)/sbin/lighttpd
1073
get-unwind: libunwind-$(UNWIND_VER).tar.gz
1074
configure-unwind: libunwind-$(UNWIND_VER)/config.status
1075
compile-unwind: $(LIBUNWIND_TARGET_SOURCE)
1076
check-unwind: libunwind-$(UNWIND_VER)/checked
1077
install-unwind: $(LIBUNWIND_TARGET_OBJ)
1082
ifneq ($(OS), WINNT)
1083
NGINX_OBJ_TARGET = $(BUILD)/sbin/nginx
1084
NGINX_SRC_TARGET = nginx/objs/nginx
1085
NGINX_FLAGS = --with-ld-opt="-L'$(BUILD)/lib' -lpcre -Wl,-rpath,'$(BUILD)/lib' $(RPATH)"
1089
for x in .gitignore Makefile config.status objs; do echo /$$x >> $@; done
1090
nginx/auto/configure: | compile-pcre
1091
(cd .. && git submodule update --init)
1093
nginx/config.status: nginx/auto/configure nginx/.gitignore
1095
./auto/configure --without-http_gzip_module --without-http_rewrite_module $(NGINX_FLAGS) --with-debug --prefix=".."
1097
$(NGINX_SRC_TARGET): nginx/config.status nginx/.gitignore
1100
$(NGINX_OBJ_TARGET): $(NGINX_SRC_TARGET) nginx/.gitignore
1101
$(MAKE) -C nginx install DESTDIR="$(abspath $(BUILD)/bin)/"
1105
-$(MAKE) -C nginx clean
1109
get-nginx: nginx/auto/configure
1110
configure-nginx: nginx/config.status
1111
compile-nginx: $(NGINX_SRC_TARGET)
1112
check-nginx: $(NGINX_SRC_TARGET)
1113
install-nginx: $(NGINX_OBJ_TARGET)
890
LIGHTTPD_OBJ_TARGET =
1116
NGINX_SRC_TARGET = nginx-$(NGINX_VER).zip
1117
NGINX_OBJ_TARGET = nginx-$(NGINX_VER)/nginx.exe
1118
$(NGINX_SRC_TARGET):
1119
$(WGET) http://nginx.org/download/$@
1120
$(NGINX_OBJ_TARGET): $(NGINX_SRC_TARGET)
1123
$(BUILD)/sbin/nginx.exe: $(NGINX_OBJ_TARGET)
1124
mkdir -p $(BUILD)/sbin
1125
cp -a nginx-$(NGINX_VER)/* $(BUILD)/sbin
1127
get-nginx: $(NGINX_SRC_TARGET)
1128
configure-nginx: get-nginx
1129
compile-nginx: $(NGINX_OBJ_TARGET)
1130
check-nginx: compile-nginx
1131
install-nginx: $(BUILD)/sbin/nginx.exe
893
compile-lighttpd: install-lighttpd
894
install-lighttpd: $(LIGHTTPD_OBJ_TARGET) lighttpd.conf
895
mkdir -p $(BUILD)/etc
896
cp -f lighttpd.conf $(BUILD)/etc/lighttpd.conf
898
lighttpd-$(LIGHTTPD_VER).tar.gz:
899
$(WGET) http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-$(LIGHTTPD_VER).tar.gz
900
lighttpd-$(LIGHTTPD_VER)/configure: lighttpd-$(LIGHTTPD_VER).tar.gz
903
lighttpd-$(LIGHTTPD_VER)/config.status: lighttpd-$(LIGHTTPD_VER)/configure
904
mkdir -p $(BUILD)/lib/lighttpd && \
905
cd lighttpd-$(LIGHTTPD_VER) && \
906
./configure $(CONFIGURE_COMMON) --libdir=$(BUILD)/lib/lighttpd --without-pcre --without-zlib --without-bzip2
907
$(LIGHTTPD_OBJ_TARGET): lighttpd-$(LIGHTTPD_VER)/config.status
908
$(MAKE) -C lighttpd-$(LIGHTTPD_VER) install
909
$(INSTALL_NAME_CMD)lighttpd/liblightcomp.$(SHLIB_EXT) $(BUILD)/lib/lighttpd/liblightcomp.$(SHLIB_EXT)
910
$(INSTALL_NAME_CHANGE_CMD) $(BUILD)/lib/lighttpd/liblightcomp.dylib @executable_path/../lib/lighttpd/liblightcomp.dylib $(BUILD)/sbin/lighttpd
914
-$(MAKE) -C lighttpd-$(LIGHTTPD_VER) clean
915
-rm -f $(LIGHTTPD_OBJ_TARGET)
917
-rm -rf lighttpd-$(LIGHTTPD_VER).tar.gz lighttpd-$(LIGHTTPD_VER)
921
ifeq ($(USE_SYSTEM_GMP), 0)
1137
GMP_SRC_TARGET = gmp-$(GMP_VER)/.libs/libgmp.$(SHLIB_EXT)
922
1138
GMP_OBJ_TARGET = $(BUILD)/lib/libgmp.$(SHLIB_EXT)
927
compile-gmp: install-gmp
928
install-gmp: $(GMP_OBJ_TARGET)
930
1140
gmp-$(GMP_VER).tar.bz2:
931
1141
$(WGET) ftp://ftp.gmplib.org/pub/gmp-$(GMP_VER)/$@
932
1142
gmp-$(GMP_VER)/configure: gmp-$(GMP_VER).tar.bz2
935
1145
gmp-$(GMP_VER)/config.status: gmp-$(GMP_VER)/configure
936
1146
cd gmp-$(GMP_VER) && \
937
./configure --prefix=$(abspath $(BUILD)) CC="$(CC)" CXX="$(CXX)" --enable-shared --disable-static
938
$(GMP_OBJ_TARGET): gmp-$(GMP_VER)/config.status
1147
./configure $(CONFIGURE_COMMON) F77= --enable-shared --disable-static
1149
$(GMP_SRC_TARGET): gmp-$(GMP_VER)/config.status
939
1150
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD)
1151
gmp-$(GMP_VER)/checked: $(GMP_SRC_TARGET)
940
1152
ifeq ($(OS),$(BUILD_OS))
941
1153
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD) check
1156
$(GMP_OBJ_TARGET): $(GMP_SRC_TARGET) gmp-$(GMP_VER)/checked
943
1157
$(MAKE) -C gmp-$(GMP_VER) $(LIBTOOL_CCLD) install
944
1158
$(INSTALL_NAME_CMD)libgmp.dylib $@
948
1162
-$(MAKE) -C gmp-$(GMP_VER) clean
959
1179
GMPW_INC = -I $(BUILD)/include
960
1180
GMPW_LIB = -L$(BUILD)/lib/ -lgmp
1181
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): $(GMP_OBJ_TARGET)
963
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): gmp_wrapper.c $(GMP_OBJ_TARGET) | $(BUILD)/lib
1184
$(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT): gmp_wrapper.c | $(BUILD)/lib
964
1185
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared $(fPIC) $(GMPW_INC) gmp_wrapper.c -o $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT) $(RPATH_ORIGIN) $(GMPW_LIB)
965
1186
$(INSTALL_NAME_CMD)libgmp_wrapper.$(SHLIB_EXT) $@
967
install-gmp-wrapper: $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
969
1189
clean-gmp-wrapper:
970
1190
-rm -f $(GMP_OBJ_TARGET) $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
971
1191
distclean-gmp-wrapper: clean-gmp-wrapper
1194
configure-gmp-wrapper:
1195
compile-gmp-wrapper:
1197
install-gmp-wrapper: $(BUILD)/lib/libgmp_wrapper.$(SHLIB_EXT)
975
ifeq ($(USE_SYSTEM_GLPK), 1)
1202
GLPK_SRC_TARGET = glpk-$(GLPK_VER)/src/.libs/libglpk.$(SHLIB_EXT)
978
1203
GLPK_OBJ_TARGET = $(BUILD)/lib/libglpk.$(SHLIB_EXT)
981
compile-glpk: install-glpk
982
install-glpk: $(GLPK_OBJ_TARGET) $(BUILD)/lib/libglpk_wrapper.$(SHLIB_EXT)
984
1205
glpk-$(GLPK_VER).tar.gz:
985
1206
$(WGET) http://ftp.gnu.org/gnu/glpk/$@
987
1207
glpk-$(GLPK_VER)/configure: glpk-$(GLPK_VER).tar.gz
990
1210
glpk-$(GLPK_VER)/config.status: glpk-$(GLPK_VER)/configure
991
1211
cd glpk-$(GLPK_VER) && \
992
1212
./configure $(CONFIGURE_COMMON)
993
$(GLPK_OBJ_TARGET): glpk-$(GLPK_VER)/config.status
1214
$(GLPK_SRC_TARGET): glpk-$(GLPK_VER)/config.status
1215
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD)
1217
glpk-$(GLPK_VER)/checked: $(GLPK_SRC_TARGET)
1218
ifeq ($(OS),$(BUILD_OS))
1219
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD) check
1222
$(GLPK_OBJ_TARGET): $(GLPK_SRC_TARGET) glpk-$(GLPK_VER)/checked
994
1223
$(MAKE) -C glpk-$(GLPK_VER) $(LIBTOOL_CCLD) install
995
1224
$(INSTALL_NAME_CMD)libglpk.dylib $@
1225
$(AUTOTOOLS_PATH_CORRECT)
999
1229
-$(MAKE) -C glpk-$(GLPK_VER) uninstall || true
1000
1230
-$(MAKE) -C glpk-$(GLPK_VER) clean
1001
1231
distclean-glpk: clean-glpk
1002
-rm -rf glpk-$(GLPK_VER).tar.bz2 glpk-$(GLPK_VER)
1232
-rm -rf glpk-$(GLPK_VER).tar.gz glpk-$(GLPK_VER)
1234
get-glpk: glpk-$(GLPK_VER).tar.gz
1235
configure-glpk: glpk-$(GLPK_VER)/config.status
1236
compile-glpk: $(GLPK_SRC_TARGET)
1237
check-glpk: glpk-$(GLPK_VER)/checked
1238
install-glpk: $(GLPK_OBJ_TARGET) $(BUILD)/lib/libglpk_wrapper.$(SHLIB_EXT)
1005
1240
## GLPK Wrapper