Make.inc 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # -*- mode: makefile-gmake -*-
  2. OS := $(shell uname)
  3. VERSION = 0.3
  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),i586)
  48. override ARCH := i387
  49. endif
  50. ifeq ($(ARCH),i686)
  51. override ARCH := i387
  52. endif
  53. ifeq ($(ARCH),x86_64)
  54. override ARCH := amd64
  55. endif
  56. ifneq (,$(findstring MINGW,$(OS)))
  57. override OS=WINNT
  58. endif
  59. #keep these if statements separate
  60. ifeq ($(OS), WINNT)
  61. SHLIB_EXT = dll
  62. SONAME_FLAG = -soname
  63. CFLAGS_add += -nodefaultlibs
  64. FFLAGS += -nodefaultlibs
  65. shlibdir = $(bindir)
  66. else
  67. shlibdir = $(libdir)
  68. endif
  69. ifeq ($(OS), Linux)
  70. SHLIB_EXT = so
  71. SONAME_FLAG = -soname
  72. CFLAGS_add+=-fPIC
  73. FFLAGS+=-fPIC
  74. endif
  75. ifeq ($(OS), FreeBSD)
  76. SHLIB_EXT = so
  77. SONAME_FLAG = -soname
  78. CFLAGS_add+=-fPIC
  79. FFLAGS+=-fPIC
  80. endif
  81. ifeq ($(OS), Darwin)
  82. SHLIB_EXT = dylib
  83. SONAME_FLAG = -install_name
  84. CFLAGS_add+=-fPIC
  85. FFLAGS+=-fPIC
  86. endif