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