Skip to content

Commit 3810a6f

Browse files
authored
(Plain make) build system fixes for AIX
- retry fortran compiler test with aix-specific option if generic -m32/-m64 fails - pass any custom ARFLAGS to lapack - no addition of -m32/-m64 to the CFLAGS and FFLAGS on AIX
1 parent 00740c0 commit 3810a6f

File tree

4 files changed

+27
-8
lines changed

4 files changed

+27
-8
lines changed

Diff for: Makefile

+3-6
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench
2828
.PHONY : all libs netlib $(RELA) test ctest shared install
2929
.NOTPARALLEL : all libs $(RELA) prof lapack-test install blas-test
3030

31-
# source: https://stackoverflow.com/questions/52674/simplest-way-to-reverse-the-order-of-strings-in-a-make-variable/14260762#14260762
32-
reverse = $(if $(wordlist 2,2,$(1)),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1)),$(1))
33-
3431
all :: libs netlib $(RELA) tests shared
3532
@echo
3633
@echo " OpenBLAS build complete. ($(LIB_COMPONENTS))"
@@ -84,8 +81,8 @@ ifeq ($(OSNAME), Darwin)
8481
@echo "install_name_tool -id /new/absolute/path/to/$(LIBDYNNAME) $(LIBDYNNAME)"
8582
endif
8683
@echo
87-
@echo "To install the library, you can run"
88-
@echo " make $(call reverse,$(MAKEFLAGS)) PREFIX=/path/to/your/installation install"
84+
@echo "To install the library, you can run \"make PREFIX=/path/to/your/installation install\"."
85+
@echo
8986

9087
shared :
9188
ifndef NO_SHARED
@@ -245,7 +242,7 @@ ifndef NOFORTRAN
245242
-@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
246243
-@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
247244
-@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
248-
-@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
245+
-@echo "ARCHFLAGS = $(ARFLAGS) -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
249246
-@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
250247
-@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
251248
-@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc

Diff for: Makefile.system

+14
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,10 @@ EXTRALIB += -lm
242242
NO_EXPRECISION = 1
243243
endif
244244

245+
ifeq ($(OSNAME), Android)
246+
EXTRALIB += -lm
247+
endif
248+
245249
ifeq ($(OSNAME), AIX)
246250
EXTRALIB += -lm
247251
endif
@@ -571,12 +575,14 @@ endif
571575
endif
572576

573577
ifndef BINARY_DEFINED
578+
ifneq ($(OSNAME), AIX)
574579
ifdef BINARY64
575580
CCOMMON_OPT += -m64
576581
else
577582
CCOMMON_OPT += -m32
578583
endif
579584
endif
585+
endif
580586

581587
endif
582588

@@ -621,17 +627,20 @@ ifeq ($(F_COMPILER), G77)
621627
CCOMMON_OPT += -DF_INTERFACE_G77
622628
FCOMMON_OPT += -Wall
623629
ifndef NO_BINARY_MODE
630+
ifneq ($(OSNAME), AIX)
624631
ifdef BINARY64
625632
FCOMMON_OPT += -m64
626633
else
627634
FCOMMON_OPT += -m32
628635
endif
629636
endif
630637
endif
638+
endif
631639

632640
ifeq ($(F_COMPILER), G95)
633641
CCOMMON_OPT += -DF_INTERFACE_G95
634642
FCOMMON_OPT += -Wall
643+
ifneq ($(OSNAME), AIX)
635644
ifndef NO_BINARY_MODE
636645
ifdef BINARY64
637646
FCOMMON_OPT += -m64
@@ -640,6 +649,7 @@ FCOMMON_OPT += -m32
640649
endif
641650
endif
642651
endif
652+
endif
643653

644654
ifeq ($(F_COMPILER), GFORTRAN)
645655
CCOMMON_OPT += -DF_INTERFACE_GFORT
@@ -660,16 +670,20 @@ FCOMMON_OPT += -mabi=32
660670
endif
661671
else
662672
ifdef BINARY64
673+
ifneq ($(OSNAME), AIX)
663674
FCOMMON_OPT += -m64
675+
endif
664676
ifdef INTERFACE64
665677
ifneq ($(INTERFACE64), 0)
666678
FCOMMON_OPT += -fdefault-integer-8
667679
endif
668680
endif
669681
else
682+
ifneq ($(OSNAME), AIX)
670683
FCOMMON_OPT += -m32
671684
endif
672685
endif
686+
endif
673687
ifeq ($(USE_OPENMP), 1)
674688
FCOMMON_OPT += -fopenmp
675689
endif

Diff for: f_check

+9-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ if ($compiler eq "") {
7171

7272
if ($data =~ /GNU/) {
7373

74-
$data =~ /(\d)\.(\d).(.)/;
74+
$data =~ /(\d)\.(\d).(\d)/;
7575
$major = $1;
7676
$minor = $2;
7777

@@ -233,6 +233,10 @@ if (!$?) {
233233
if ($?) {
234234
$link = `$compiler $openmp -q32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
235235
}
236+
# for AIX
237+
if ($?) {
238+
$link = `$compiler $openmp -maix32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
239+
}
236240
#For gfortran MIPS
237241
if ($?) {
238242
$mips_data = `$compiler_bin -E -dM - < /dev/null`;
@@ -250,6 +254,10 @@ if (!$?) {
250254
if ($?) {
251255
$link = `$compiler $openmp -q64 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
252256
}
257+
# for AIX
258+
if ($?) {
259+
$link = `$compiler $openmp -maix64 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
260+
}
253261
#For gfortran MIPS
254262
if ($?) {
255263
$link = `$compiler $openmp -mabi=64 -v ftest2.f 2>&1 && rm -f a.out a.exe`;

Diff for: make.inc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
SHELL = /bin/sh
22
PLAT = _LINUX
33
DRVOPTS = $(NOOPT)
4-
ARCHFLAGS= -ru
4+
#ARCHFLAGS= $(ARFLAGS) -ru
55
#RANLIB = ranlib
66

0 commit comments

Comments
 (0)