1e8bf3685SViral B. Shah# -*- mode: makefile-gmake -*- 2e8bf3685SViral B. Shah 3bcefcc3dSJameson NashOS := $(shell uname) 41f77ae02SMilan Bouchet-Valat# Do not forget to bump SOMINOR when changing VERSION, 5*c41813f6SMilan Bouchet-Valat# and SOMAJOR when breaking ABI in a backward-incompatible way 6da6c9c18SViral B. ShahVERSION = 0.4 71f77ae02SMilan Bouchet-ValatSOMAJOR = 1 81f77ae02SMilan Bouchet-ValatSOMINOR = 0 971d942f7SViral B. ShahDESTDIR = 10bb40f6c7SMilan Bouchet-Valatprefix = /usr/local 11716317b7STony Kelmanbindir = $(prefix)/bin 12bb40f6c7SMilan Bouchet-Valatlibdir = $(prefix)/lib 13b4625783SMilan Bouchet-Valatincludedir = $(prefix)/include 1456811b08SViral B. Shah 1556811b08SViral B. ShahUSEGCC = 1 1656811b08SViral B. ShahUSECLANG = 0 1756811b08SViral B. Shah 1829af332fSViral B. Shahifeq ($(OS), Darwin) 1929af332fSViral B. ShahUSEGCC = 0 2029af332fSViral B. ShahUSECLANG = 1 2129af332fSViral B. Shahendif 2229af332fSViral B. Shah 2329af332fSViral B. ShahAR = ar 2475ba4267SMike Nolta 2556811b08SViral B. Shahifeq ($(USECLANG),1) 2656811b08SViral B. ShahUSEGCC = 0 2756811b08SViral B. ShahCC = clang 283fda504fSJameson NashCFLAGS_add += -fno-builtin 2956811b08SViral B. Shahendif 3056811b08SViral B. Shah 3156811b08SViral B. Shahifeq ($(USEGCC),1) 3256811b08SViral B. ShahCC = gcc 333fda504fSJameson NashCFLAGS_add += -fno-gnu89-inline 3456811b08SViral B. Shahendif 35ccd319c0SViral B. Shah 36bcefcc3dSJameson NashARCH := $(shell $(CC) -dumpmachine | sed "s/\([^-]*\).*$$/\1/") 37f948e55cSJameson Nashifeq ($(ARCH),mingw32) 38f948e55cSJameson Nash$(error "the mingw32 compiler you are using fails the openblas testsuite. please see the Julia README.windows.md document for a replacement") 39f948e55cSJameson Nashendif 40bcefcc3dSJameson Nash 41bcefcc3dSJameson NashCFLAGS_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 42bcefcc3dSJameson Nash 43f5fb9274SViral B. Shahdefault: all 44f5fb9274SViral B. Shah 45f0862df1SKeno Fischer%.c.o: %.c 463fda504fSJameson Nash $(CC) $(CPPFLAGS) $(CFLAGS_add) $(CFLAGS) -c $< -o $@ 47e8bf3685SViral B. Shah 48f0862df1SKeno Fischer%.S.o: %.S 493fda504fSJameson Nash $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@ 50f0862df1SKeno Fischer 51ccd319c0SViral B. Shah# OS-specific stuff 52307d7361SKeno Fischerifeq ($(ARCH),i386) 53bcefcc3dSJameson Nashoverride ARCH := i387 54307d7361SKeno Fischerendif 55bb082acaSJameson Nashifeq ($(ARCH),i486) 56bb082acaSJameson Nashoverride ARCH := i387 57bb082acaSJameson Nashendif 5809055587SViral B. Shahifeq ($(ARCH),i586) 5909055587SViral B. Shahoverride ARCH := i387 6009055587SViral B. Shahendif 61bb082acaSJameson Nashifeq ($(ARCH),i686) 62bb082acaSJameson Nashoverride ARCH := i387 63bb082acaSJameson Nashendif 64307d7361SKeno Fischer 65307d7361SKeno Fischerifeq ($(ARCH),x86_64) 66bcefcc3dSJameson Nashoverride ARCH := amd64 67307d7361SKeno Fischerendif 680df00dd0SJameson Nash 6913cc5795SJameson Nashifneq (,$(findstring MINGW,$(OS))) 7013cc5795SJameson Nashoverride OS=WINNT 713fda504fSJameson Nashendif 72716317b7STony Kelman 73716317b7STony Kelman#keep these if statements separate 743fda504fSJameson Nashifeq ($(OS), WINNT) 75251814ebSMilan Bouchet-ValatSHLIB_EXT = dll 76251814ebSMilan Bouchet-ValatSONAME_FLAG = -soname 773fda504fSJameson NashCFLAGS_add += -nodefaultlibs 781cc9ad07STony Kelmanshlibdir = $(bindir) 79716317b7STony Kelmanelse 801cc9ad07STony Kelmanshlibdir = $(libdir) 810df00dd0SJameson Nashendif 820df00dd0SJameson Nash 83ccd319c0SViral B. Shahifeq ($(OS), Linux) 84ccd319c0SViral B. ShahSHLIB_EXT = so 85251814ebSMilan Bouchet-ValatSONAME_FLAG = -soname 863fda504fSJameson NashCFLAGS_add+=-fPIC 870df00dd0SJameson Nashendif 880df00dd0SJameson Nash 890df00dd0SJameson Nashifeq ($(OS), FreeBSD) 900df00dd0SJameson NashSHLIB_EXT = so 91251814ebSMilan Bouchet-ValatSONAME_FLAG = -soname 923fda504fSJameson NashCFLAGS_add+=-fPIC 93ccd319c0SViral B. Shahendif 94ccd319c0SViral B. Shah 95ccd319c0SViral B. Shahifeq ($(OS), Darwin) 96ccd319c0SViral B. ShahSHLIB_EXT = dylib 97251814ebSMilan Bouchet-ValatSONAME_FLAG = -install_name 983fda504fSJameson NashCFLAGS_add+=-fPIC 990df00dd0SJameson Nashendif 100