1e8bf3685SViral B. Shah# -*- mode: makefile-gmake -*- 2e8bf3685SViral B. Shah 3adb103acSKeno FischerOS = $(shell uname) 4adb103acSKeno FischerARCH = $(shell uname -m) 556811b08SViral B. Shah 6e8bf3685SViral B. ShahFC = gfortran 71bbda186SSébastien VillemotFFLAGS += -O3 8e8bf3685SViral B. Shah 956811b08SViral B. ShahUSEGCC = 1 1056811b08SViral B. ShahUSECLANG = 0 1156811b08SViral B. Shah 12*3fda504fSJameson NashCFLAGS_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 1375ba4267SMike Nolta 1456811b08SViral B. Shahifeq ($(USECLANG),1) 1556811b08SViral B. ShahUSEGCC = 0 1656811b08SViral B. ShahCC = clang 17*3fda504fSJameson NashCFLAGS_add += -fno-builtin 1856811b08SViral B. Shahendif 1956811b08SViral B. Shah 2056811b08SViral B. Shahifeq ($(USEGCC),1) 2156811b08SViral B. ShahCC = gcc 22*3fda504fSJameson NashCFLAGS_add += -fno-gnu89-inline 2356811b08SViral B. Shahendif 2407085279SJameson NashAR = ar 25ccd319c0SViral B. Shah 26f5fb9274SViral B. Shahdefault: all 27f5fb9274SViral B. Shah 28f0862df1SKeno Fischer%.c.o: %.c 29*3fda504fSJameson Nash $(CC) $(CPPFLAGS) $(CFLAGS_add) $(CFLAGS) -c $< -o $@ 30e8bf3685SViral B. Shah 31e8bf3685SViral B. Shah%.f.o: %.f 32e8bf3685SViral B. Shah $(FC) $(FFLAGS) -c $< -o $@ 33ccd319c0SViral B. Shah 34f0862df1SKeno Fischer%.S.o: %.S 35*3fda504fSJameson Nash $(CC) $(SFLAGS) $(filter -m% -B% -I% -D%,$(CFLAGS_add)) -c $< -o $@ 36f0862df1SKeno Fischer 37ccd319c0SViral B. Shahclean: 381ac594e4SViral B. Shah rm -fr *.o *.c.o *.S.o *~ test-double test-float test-double-system test-float-system *.dSYM 39ccd319c0SViral B. Shah 40ccd319c0SViral B. Shah# OS-specific stuff 41307d7361SKeno Fischerifeq ($(ARCH),i386) 42307d7361SKeno Fischeroverride ARCH = i387 43307d7361SKeno Fischerendif 44307d7361SKeno Fischer 45307d7361SKeno Fischerifeq ($(ARCH),x86_64) 46307d7361SKeno Fischeroverride ARCH = amd64 47307d7361SKeno Fischerendif 480df00dd0SJameson Nash 49adb103acSKeno Fischerifeq ($(ARCH),i686) 5011a4ec0eSKeno Fischeroverride ARCH = i387 51adb103acSKeno Fischerendif 52adb103acSKeno Fischer 530df00dd0SJameson Nashifeq ($(OS), MINGW32_NT-6.1) 540df00dd0SJameson NashOS=WINNT 55*3fda504fSJameson Nashendif 56*3fda504fSJameson Nash#keep these if statements these separate 57*3fda504fSJameson Nashifeq ($(OS), WINNT) 58*3fda504fSJameson NashCFLAGS_add+=-nodefaultlibs 59e8bf3685SViral B. ShahFFLAGS+=-nodefaultlibs 600df00dd0SJameson Nashendif 610df00dd0SJameson Nash 62ccd319c0SViral B. Shahifeq ($(OS), Linux) 63ccd319c0SViral B. ShahSHLIB_EXT = so 64*3fda504fSJameson NashCFLAGS_add+=-fPIC 65e8bf3685SViral B. ShahFFLAGS+=-fPIC 660df00dd0SJameson Nashendif 670df00dd0SJameson Nash 680df00dd0SJameson Nashifeq ($(OS), FreeBSD) 690df00dd0SJameson NashSHLIB_EXT = so 70*3fda504fSJameson NashCFLAGS_add+=-fPIC 71e8bf3685SViral B. ShahFFLAGS+=-fPIC 72ccd319c0SViral B. Shahendif 73ccd319c0SViral B. Shah 74ccd319c0SViral B. Shahifeq ($(OS), Darwin) 75ccd319c0SViral B. ShahSHLIB_EXT = dylib 76*3fda504fSJameson NashCFLAGS_add+=-fPIC 77e8bf3685SViral B. ShahFFLAGS+=-fPIC 780df00dd0SJameson Nashendif 790df00dd0SJameson Nash 800df00dd0SJameson Nashifeq ($(OS), WINNT) 810df00dd0SJameson NashSHLIB_EXT = dll 82ccd319c0SViral B. Shahendif 83