Make.inc 1.8 KB

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