git subrepo clone https://github.com/libretro/libretro-common.git deps/libretro-common
[pcsx_rearmed.git] / deps / libretro-common / audio / dsp_filters / Makefile
1 compiler    := gcc
2 extra_flags :=
3 use_neon    := 0
4 build       = release
5 DYLIB         := so
6 PREFIX      := /usr
7 INSTALLDIR  := $(PREFIX)/lib/retroarch/filters/audio
8
9 ifeq ($(platform),)
10    platform = unix
11    ifeq ($(shell uname -s),)
12       platform = win
13    else ifneq ($(findstring Darwin,$(shell uname -s)),)
14       platform = osx
15       arch     = intel
16       ifeq ($(shell uname -p),powerpc)
17          arch = ppc
18       endif
19    else ifneq ($(findstring MINGW,$(shell uname -s)),)
20       platform = win
21    endif
22 endif
23
24 ifeq ($(platform),gcc)
25    extra_rules_gcc := $(shell $(compiler) -dumpmachine)
26 endif
27
28 ifneq (,$(findstring armv7,$(extra_rules_gcc)))
29    extra_flags += -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon
30    use_neon := 1
31 endif
32
33 ifneq (,$(findstring hardfloat,$(extra_rules_gcc)))
34    extra_flags += -mfloat-abi=hard
35 endif
36
37 ifeq (release,$(build))
38    extra_flags += -O2
39 endif
40
41 ifeq (debug,$(build))
42    extra_flags += -O0 -g
43 endif
44
45 ldflags := $(LDFLAGS) -shared -lm -Wl,--version-script=link.T
46
47 ifeq ($(platform), unix)
48    DYLIB = so
49 else ifeq ($(platform), osx)
50    compiler := $(CC)
51    DYLIB = dylib
52    ldflags := -dynamiclib
53    ARCHFLAGS=
54    MINVERFLAGS=
55    ifeq ($(shell uname -p),arm)
56       MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS  (Metal, ARM 64bit)
57    else ifeq ($(HAVE_METAL),1)
58       MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++  # macOS  (Metal, x86 64bit)
59    else ifeq ($(shell uname -p),powerpc)
60       MINVERFLAGS = -mmacosx-version-min=10.5  # macOSX (PowerPC 32-bit)
61    else ifeq ($(shell uname -m),i386)
62       MINVERFLAGS = -mmacosx-version-min=10.6  # macOSX (OpenGL, x86 32bit)
63    else
64       MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++ # macOSX (OpenGL, x86 64bit)
65    endif
66
67         # Build for a specific architecture when ARCH is defined as a switch
68    ifeq ($(ARCH),arm64)
69       MINVERFLAGS  = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS  (Metal, ARM 64bit)
70       ARCHFLAGS    = -arch arm64
71    else ifeq ($(ARCH),x86_64)
72       ifeq ($(HAVE_METAL),1)
73          MINVERFLAGS  = -mmacosx-version-min=10.13 -stdlib=libc++
74       else
75          MINVERFLAGS  = -mmacosx-version-min=10.7  -stdlib=libc++
76       endif
77       ARCHFLAGS       = -arch x86_64
78    else ifeq ($(ARCH),x86)
79       MINVERFLAGS     = -mmacosx-version-min=10.6
80       ARCHFLAGS       = -arch x86
81    else ifeq ($(ARCH),ppc)
82       MINVERFLAGS     = -mmacosx-version-min=10.5
83       ARCHFLAGS       = -arch ppc
84    endif
85    ifeq ($(BUILDBOT),1)
86       ARCHFLAGS       = -target $(LIBRETRO_APPLE_PLATFORM) -isysroot $(LIBRETRO_APPLE_ISYSROOT)
87    endif
88         extraflags += $(MINVERFLAGS) $(ARCHFLAGS)
89         ldflags += $(MINVERFLAGS) $(ARCHFLAGS)
90 else
91    extra_flags += -static-libgcc -static-libstdc++
92    DYLIB = dll
93 endif
94
95 CC      := $(compiler) -Wall
96 CXX     := $(subst CC,++,$(compiler)) -std=gnu++0x -Wall
97 flags   := $(CPPFLAGS) $(CFLAGS) -fPIC $(extra_flags) -I../../include
98 asflags := $(ASFLAGS) -fPIC  $(extra_flags)
99 objects :=
100
101 ifeq (1,$(use_neon))
102    ASMFLAGS := -INEON/asm
103    asflags += -mfpu=neon
104 endif
105
106 plugs := $(wildcard *.c)
107 objects := $(plugs:.c=.o)
108 targets := $(objects:.o=.$(DYLIB))
109
110 all: build;
111
112 %.o: %.S
113         $(CC) -c -o $@ $(asflags)  $(ASMFLAGS)  $<
114
115 %.o: %.c
116         $(CC) -c -o $@ $(flags) $<
117
118 %.$(DYLIB): %.o
119         $(CC) -o $@ $(ldflags) $(flags) $^
120
121 build: $(targets)
122
123 clean:
124         rm -f *.o
125         rm -f *.$(DYLIB)
126
127 strip:
128         strip -s *.$(DYLIB)
129
130 install:
131         mkdir -p $(DESTDIR)$(INSTALLDIR)
132         cp -t $(DESTDIR)$(INSTALLDIR) $(targets) *.dsp
133
134 test-install:
135         DESTDIR=/tmp/build $(MAKE) install