Make.inc 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. ifeq ($(USECLANG),1)
  9. USEGCC = 0
  10. CC = clang
  11. CFLAGS= -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 -fno-builtin
  12. endif
  13. ifeq ($(USEGCC),1)
  14. CC = gcc
  15. CFLAGS= -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
  16. endif
  17. default: all
  18. %.c.o: %.c
  19. $(CC) $(CFLAGS) -c $< -o $@
  20. %.f.o: %.f
  21. $(FC) $(FFLAGS) -c $< -o $@
  22. %.S.o: %.S
  23. $(CC) $(filter -f% -m% -B% -I% -D%,$(CFLAGS)) -c $< -o $@
  24. clean:
  25. rm -fr *.o *.c.o *.S.o *~ test-double test-float test-double-system test-float-system *.dSYM
  26. # OS-specific stuff
  27. ifeq ($(ARCH),i386)
  28. override ARCH = i387
  29. endif
  30. ifeq ($(ARCH),x86_64)
  31. override ARCH = amd64
  32. endif
  33. ifeq ($(ARCH),i686)
  34. override ARCH = i387
  35. endif
  36. ifeq ($(OS), MINGW32_NT-6.1)
  37. OS=WINNT
  38. CFLAGS+=-nodefaultlibs
  39. FFLAGS+=-nodefaultlibs
  40. endif
  41. ifeq ($(OS), Linux)
  42. SHLIB_EXT = so
  43. CFLAGS+=-fPIC
  44. FFLAGS+=-fPIC
  45. endif
  46. ifeq ($(OS), FreeBSD)
  47. SHLIB_EXT = so
  48. CFLAGS+=-fPIC
  49. FFLAGS+=-fPIC
  50. endif
  51. ifeq ($(OS), Darwin)
  52. SHLIB_EXT = dylib
  53. CFLAGS+=-fPIC
  54. FFLAGS+=-fPIC
  55. endif
  56. ifeq ($(OS), WINNT)
  57. SHLIB_EXT = dll
  58. endif