Make.inc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. CFLAGS_add+=-nodefaultlibs
  57. FFLAGS+=-nodefaultlibs
  58. endif
  59. ifeq ($(OS), Linux)
  60. SHLIB_EXT = so
  61. CFLAGS_add+=-fPIC
  62. FFLAGS+=-fPIC
  63. endif
  64. ifeq ($(OS), FreeBSD)
  65. SHLIB_EXT = so
  66. CFLAGS_add+=-fPIC
  67. FFLAGS+=-fPIC
  68. endif
  69. ifeq ($(OS), Darwin)
  70. SHLIB_EXT = dylib
  71. CFLAGS_add+=-fPIC
  72. FFLAGS+=-fPIC
  73. endif
  74. ifeq ($(OS), WINNT)
  75. SHLIB_EXT = dll
  76. endif