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 7SOMAJOR = 1 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 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%.S.o: %.S 49 $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@ 50 51# OS-specific stuff 52ifeq ($(ARCH),i386) 53override ARCH := i387 54endif 55ifeq ($(ARCH),i486) 56override ARCH := i387 57endif 58ifeq ($(ARCH),i586) 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 78shlibdir = $(bindir) 79else 80shlibdir = $(libdir) 81endif 82 83ifeq ($(OS), Linux) 84SHLIB_EXT = so 85SONAME_FLAG = -soname 86CFLAGS_add+=-fPIC 87endif 88 89ifeq ($(OS), FreeBSD) 90SHLIB_EXT = so 91SONAME_FLAG = -soname 92CFLAGS_add+=-fPIC 93endif 94 95ifeq ($(OS), Darwin) 96SHLIB_EXT = dylib 97SONAME_FLAG = -install_name 98CFLAGS_add+=-fPIC 99endif 100