1e8bf3685SViral B. Shah# -*- mode: makefile-gmake -*- 2e8bf3685SViral B. Shah 3bcefcc3dSJameson NashOS := $(shell uname) 471d942f7SViral B. ShahVERSION = 0.1.0 571d942f7SViral B. ShahVERSION_SPLIT = $(subst ., , $(VERSION)) 671d942f7SViral B. ShahDESTDIR = 771d942f7SViral B. ShahPREFIX = /usr/local 871d942f7SViral B. Shahlibdir = $(PREFIX)/lib 956811b08SViral B. Shah 10e8bf3685SViral B. ShahFC = gfortran 111bbda186SSébastien VillemotFFLAGS += -O3 12e8bf3685SViral B. Shah 1356811b08SViral B. ShahUSEGCC = 1 1456811b08SViral B. ShahUSECLANG = 0 1556811b08SViral B. Shah 1629af332fSViral B. Shahifeq ($(OS), Darwin) 1729af332fSViral B. ShahUSEGCC = 0 1829af332fSViral B. ShahUSECLANG = 1 1929af332fSViral B. Shahendif 2029af332fSViral B. Shah 2129af332fSViral B. ShahAR = ar 2275ba4267SMike Nolta 2356811b08SViral B. Shahifeq ($(USECLANG),1) 2456811b08SViral B. ShahUSEGCC = 0 2556811b08SViral B. ShahCC = clang 263fda504fSJameson NashCFLAGS_add += -fno-builtin 2756811b08SViral B. Shahendif 2856811b08SViral B. Shah 2956811b08SViral B. Shahifeq ($(USEGCC),1) 3056811b08SViral B. ShahCC = gcc 313fda504fSJameson NashCFLAGS_add += -fno-gnu89-inline 3256811b08SViral B. Shahendif 33ccd319c0SViral B. Shah 34bcefcc3dSJameson NashARCH := $(shell $(CC) -dumpmachine | sed "s/\([^-]*\).*$$/\1/") 35f948e55cSJameson Nashifeq ($(ARCH),mingw32) 36f948e55cSJameson Nash$(error "the mingw32 compiler you are using fails the openblas testsuite. please see the Julia README.windows.md document for a replacement") 37f948e55cSJameson Nashendif 38bcefcc3dSJameson Nash 39bcefcc3dSJameson 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 40bcefcc3dSJameson Nash 41f5fb9274SViral B. Shahdefault: all 42f5fb9274SViral B. Shah 43f0862df1SKeno Fischer%.c.o: %.c 443fda504fSJameson Nash $(CC) $(CPPFLAGS) $(CFLAGS_add) $(CFLAGS) -c $< -o $@ 45e8bf3685SViral B. Shah 46e8bf3685SViral B. Shah%.f.o: %.f 47e8bf3685SViral B. Shah $(FC) $(FFLAGS) -c $< -o $@ 48ccd319c0SViral B. Shah 49f0862df1SKeno Fischer%.S.o: %.S 503fda504fSJameson Nash $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@ 51f0862df1SKeno Fischer 52ccd319c0SViral B. Shah# OS-specific stuff 53307d7361SKeno Fischerifeq ($(ARCH),i386) 54bcefcc3dSJameson Nashoverride ARCH := i387 55307d7361SKeno Fischerendif 56bb082acaSJameson Nashifeq ($(ARCH),i486) 57bb082acaSJameson Nashoverride ARCH := i387 58bb082acaSJameson Nashendif 59bb082acaSJameson Nashifeq ($(ARCH),i686) 60bb082acaSJameson Nashoverride ARCH := i387 61bb082acaSJameson Nashendif 62307d7361SKeno Fischer 63307d7361SKeno Fischerifeq ($(ARCH),x86_64) 64bcefcc3dSJameson Nashoverride ARCH := amd64 65307d7361SKeno Fischerendif 660df00dd0SJameson Nash 6713cc5795SJameson Nashifneq (,$(findstring MINGW,$(OS))) 6813cc5795SJameson Nashoverride OS=WINNT 693fda504fSJameson Nashendif 703fda504fSJameson Nash#keep these if statements these separate 713fda504fSJameson Nashifeq ($(OS), WINNT) 72*251814ebSMilan Bouchet-ValatSHLIB_EXT = dll 73*251814ebSMilan Bouchet-ValatSONAME_FLAG = -soname 743fda504fSJameson NashCFLAGS_add+=-nodefaultlibs 75e8bf3685SViral B. ShahFFLAGS+=-nodefaultlibs 760df00dd0SJameson Nashendif 770df00dd0SJameson Nash 78ccd319c0SViral B. Shahifeq ($(OS), Linux) 79ccd319c0SViral B. ShahSHLIB_EXT = so 80*251814ebSMilan Bouchet-ValatSONAME_FLAG = -soname 813fda504fSJameson NashCFLAGS_add+=-fPIC 82e8bf3685SViral B. ShahFFLAGS+=-fPIC 830df00dd0SJameson Nashendif 840df00dd0SJameson Nash 850df00dd0SJameson Nashifeq ($(OS), FreeBSD) 860df00dd0SJameson NashSHLIB_EXT = so 87*251814ebSMilan Bouchet-ValatSONAME_FLAG = -soname 883fda504fSJameson NashCFLAGS_add+=-fPIC 89e8bf3685SViral B. ShahFFLAGS+=-fPIC 90ccd319c0SViral B. Shahendif 91ccd319c0SViral B. Shah 92ccd319c0SViral B. Shahifeq ($(OS), Darwin) 93ccd319c0SViral B. ShahSHLIB_EXT = dylib 94*251814ebSMilan Bouchet-ValatSONAME_FLAG = -install_name 953fda504fSJameson NashCFLAGS_add+=-fPIC 96e8bf3685SViral B. ShahFFLAGS+=-fPIC 970df00dd0SJameson Nashendif 98