1# -*- mode: makefile-gmake -*- 2 3OS := $(shell uname) 4VERSION = 0.3.0 5VERSION_SPLIT = $(subst ., , $(VERSION)) 6DESTDIR = 7prefix = /usr/local 8bindir = $(prefix)/bin 9libdir = $(prefix)/lib 10includedir = $(prefix)/include 11 12FC = gfortran 13FFLAGS += -O3 14 15USEGCC = 1 16USECLANG = 0 17 18ifeq ($(OS), Darwin) 19USEGCC = 0 20USECLANG = 1 21endif 22 23AR = ar 24 25ifeq ($(USECLANG),1) 26USEGCC = 0 27CC = clang 28CFLAGS_add += -fno-builtin 29endif 30 31ifeq ($(USEGCC),1) 32CC = gcc 33CFLAGS_add += -fno-gnu89-inline 34endif 35 36ARCH := $(shell $(CC) -dumpmachine | sed "s/\([^-]*\).*$$/\1/") 37ifeq ($(ARCH),mingw32) 38$(error "the mingw32 compiler you are using fails the openblas testsuite. please see the Julia README.windows.md document for a replacement") 39endif 40 41CFLAGS_add += -std=c99 -Wall -O3 -I$(OPENLIBM_HOME) -I$(OPENLIBM_HOME)/include -I$(OPENLIBM_HOME)/ld80 -I$(OPENLIBM_HOME)/$(ARCH) -I$(OPENLIBM_HOME)/src -DASSEMBLER -D__BSD_VISIBLE -Wno-implicit-function-declaration 42 43default: all 44 45%.c.o: %.c 46 $(CC) $(CPPFLAGS) $(CFLAGS_add) $(CFLAGS) -c $< -o $@ 47 48%.f.o: %.f 49 $(FC) $(FFLAGS) -c $< -o $@ 50 51%.S.o: %.S 52 $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@ 53 54# OS-specific stuff 55ifeq ($(ARCH),i386) 56override ARCH := i387 57endif 58ifeq ($(ARCH),i486) 59override ARCH := i387 60endif 61ifeq ($(ARCH),i686) 62override ARCH := i387 63endif 64 65ifeq ($(ARCH),x86_64) 66override ARCH := amd64 67endif 68 69ifneq (,$(findstring MINGW,$(OS))) 70override OS=WINNT 71endif 72 73#keep these if statements separate 74ifeq ($(OS), WINNT) 75SHLIB_EXT = dll 76SONAME_FLAG = -soname 77CFLAGS_add += -nodefaultlibs 78FFLAGS += -nodefaultlibs 79shlibdir = $(bindir) 80else 81shlibdir = $(libdir) 82endif 83 84ifeq ($(OS), Linux) 85SHLIB_EXT = so 86SONAME_FLAG = -soname 87CFLAGS_add+=-fPIC 88FFLAGS+=-fPIC 89endif 90 91ifeq ($(OS), FreeBSD) 92SHLIB_EXT = so 93SONAME_FLAG = -soname 94CFLAGS_add+=-fPIC 95FFLAGS+=-fPIC 96endif 97 98ifeq ($(OS), Darwin) 99SHLIB_EXT = dylib 100SONAME_FLAG = -install_name 101CFLAGS_add+=-fPIC 102FFLAGS+=-fPIC 103endif 104