Make.inc 1.7 KB

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