Make.inc 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- mode: makefile-gmake -*-
  2. OS = $(shell uname)
  3. ARCH = $(shell uname -m)
  4. FC = gfortran
  5. FFLAGS += -O3
  6. USEGCC = 1
  7. USECLANG = 0
  8. 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
  9. ifeq ($(USECLANG),1)
  10. USEGCC = 0
  11. CC = clang
  12. CFLAGS_add += -fno-builtin
  13. endif
  14. ifeq ($(USEGCC),1)
  15. CC = gcc
  16. CFLAGS_add += -fno-gnu89-inline
  17. endif
  18. AR = ar
  19. default: all
  20. %.c.o: %.c
  21. $(CC) $(CPPFLAGS) $(CFLAGS_add) $(CFLAGS) -c $< -o $@
  22. %.f.o: %.f
  23. $(FC) $(FFLAGS) -c $< -o $@
  24. %.S.o: %.S
  25. $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@
  26. clean:
  27. rm -fr *.o *.c.o *.S.o *~ test-double test-float test-double-system test-float-system *.dSYM
  28. # OS-specific stuff
  29. ifeq ($(ARCH),i386)
  30. override ARCH = i387
  31. endif
  32. ifeq ($(ARCH),x86_64)
  33. override ARCH = amd64
  34. endif
  35. ifeq ($(ARCH),i686)
  36. override ARCH = i387
  37. endif
  38. ifneq (,$(findstring MINGW,$(OS)))
  39. override OS=WINNT
  40. endif
  41. #keep these if statements these separate
  42. ifeq ($(OS), WINNT)
  43. CFLAGS_add+=-nodefaultlibs
  44. FFLAGS+=-nodefaultlibs
  45. endif
  46. ifeq ($(OS), Linux)
  47. SHLIB_EXT = so
  48. CFLAGS_add+=-fPIC
  49. FFLAGS+=-fPIC
  50. endif
  51. ifeq ($(OS), FreeBSD)
  52. SHLIB_EXT = so
  53. CFLAGS_add+=-fPIC
  54. FFLAGS+=-fPIC
  55. endif
  56. ifeq ($(OS), Darwin)
  57. SHLIB_EXT = dylib
  58. CFLAGS_add+=-fPIC
  59. FFLAGS+=-fPIC
  60. endif
  61. ifeq ($(OS), WINNT)
  62. SHLIB_EXT = dll
  63. endif