Make.inc 1.8 KB

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