|
@@ -38,7 +38,9 @@ CC = gcc
|
|
|
CFLAGS_add += -fno-gnu89-inline
|
|
|
endif
|
|
|
|
|
|
-ARCH := $(shell $(CC) -dumpmachine | sed "s/\([^-]*\).*$$/\1/")
|
|
|
+ARCH ?= $(shell $(CC) -dumpmachine | sed "s/\([^-]*\).*$$/\1/")
|
|
|
+ARCH_ORIGIN := $(origin ARCH)
|
|
|
+
|
|
|
ifeq ($(ARCH),mingw32)
|
|
|
$(error "the mingw32 compiler you are using fails the openblas testsuite. please see the Julia README.windows.md document for a replacement")
|
|
|
endif
|
|
@@ -48,12 +50,16 @@ CFLAGS_add += -std=c99 -Wall -O3 -I$(OPENLIBM_HOME) -I$(OPENLIBM_HOME)/include -
|
|
|
default: all
|
|
|
|
|
|
%.c.o: %.c
|
|
|
- $(CC) $(CPPFLAGS) $(CFLAGS_add) $(CFLAGS) -c $< -o $@
|
|
|
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_add) -c $< -o $@
|
|
|
|
|
|
%.S.o: %.S
|
|
|
- $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@
|
|
|
+ $(CC) $(SFLAGS) $(SFLAGS_add) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@
|
|
|
|
|
|
# OS-specific stuff
|
|
|
+REAL_ARCH := $(ARCH)
|
|
|
+ifeq ($(findstring arm,$(ARCH)),arm)
|
|
|
+override ARCH := arm
|
|
|
+endif
|
|
|
ifeq ($(ARCH),i386)
|
|
|
override ARCH := i387
|
|
|
endif
|
|
@@ -102,3 +108,34 @@ SHLIB_EXT = dylib
|
|
|
SONAME_FLAG = -install_name
|
|
|
CFLAGS_add+=-fPIC
|
|
|
endif
|
|
|
+
|
|
|
+# The target specific FLAGS_add
|
|
|
+ifeq ($(ARCH_ORIGIN),file)
|
|
|
+CFLAGS_add_TARGET_$(ARCH) :=
|
|
|
+SFLAGS_add_TARGET_$(ARCH) :=
|
|
|
+LDFLAGS_add_TARGET_$(ARCH) :=
|
|
|
+else
|
|
|
+ifeq ($(ARCH),i387)
|
|
|
+CFLAGS_add_TARGET_$(ARCH) := -m32 -march=$(REAL_ARCH)
|
|
|
+SFLAGS_add_TARGET_$(ARCH) := -m32 -march=$(REAL_ARCH)
|
|
|
+LDFLAGS_add_TARGET_$(ARCH) := -m32 -march=$(REAL_ARCH)
|
|
|
+endif
|
|
|
+CFLAGS_add_TARGET_x86_64 := -m64
|
|
|
+SFLAGS_add_TARGET_x86_64 := -m64
|
|
|
+LDFLAGS_add_TARGET_x86_64 := -m64
|
|
|
+# Arm
|
|
|
+ifeq ($(ARCH),arm)
|
|
|
+ifneq ($(REAL_ARCH),arm)
|
|
|
+CFLAGS_add_TARGET_$(ARCH) := -march=$(REAL_ARCH)
|
|
|
+SFLAGS_add_TARGET_$(ARCH) := -march=$(REAL_ARCH)
|
|
|
+LDFLAGS_add_TARGET_$(ARCH) := -march=$(REAL_ARCH)
|
|
|
+else
|
|
|
+$(error No known generic arm cflags. Please specify arch type)
|
|
|
+endif
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
+# Actually finish setting the FLAGS_add
|
|
|
+CFLAGS_add += $(CFLAGS_add_TARGET_$(ARCH))
|
|
|
+LDFLAGS_add += $(LDFLAGS_add_TARGET_$(ARCH))
|
|
|
+SFLAGS_add += $(SFLAGS_add_TARGET_$(ARCH))
|