Make.inc 1.9 KB

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