add a thp-based huge page alloc fallback
[pcsx_rearmed.git] / deps / libretro-common / samples / utils / Makefile
CommitLineData
3719602c
PC
1compiler := gcc
2extra_flags :=
3use_neon := 0
4release := release
5EXE_EXT :=
6
7ifeq ($(platform),)
8platform = unix
9ifeq ($(shell uname -a),)
10 platform = win
11else ifneq ($(findstring MINGW,$(shell uname -a)),)
12 platform = win
13else ifneq ($(findstring Darwin,$(shell uname -a)),)
14 platform = osx
15 arch = intel
16ifeq ($(shell uname -p),powerpc)
17 arch = ppc
18endif
19else ifneq ($(findstring win,$(shell uname -a)),)
20 platform = win
21endif
22endif
23
24ifeq ($(compiler),gcc)
25extra_rules_gcc := $(shell $(compiler) -dumpmachine)
26endif
27
28ifneq (,$(findstring armv7,$(extra_rules_gcc)))
29extra_flags += -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon
30use_neon := 1
31endif
32
33ifneq (,$(findstring hardfloat,$(extra_rules_gcc)))
34extra_flags += -mfloat-abi=hard
35endif
36
37ifeq (release,$(build))
38extra_flags += -O2
39endif
40
41ifeq (debug,$(build))
42extra_flags += -O0 -g
43endif
44
45ldflags :=
46
47EXE_EXT :=
48ifeq ($(platform), unix)
49else ifeq ($(platform), osx)
50compiler := $(CC)
51else
52EXE_EXT = .exe
53endif
54
55PWD_DIR := .
56LIBRETRO_COMM_DIR := ../..
57CORE_DIR := $(LIBRETRO_COMM_DIR)/utils
58
59CC := $(compiler)
60CXX := $(subst CC,++,$(compiler))
61flags := -I$(LIBRETRO_COMM_DIR)/include
62asflags := $(extra_flags)
63LDFLAGS :=
64flags += -std=c99 -DMD5_BUILD_UTILITY -DSHA1_BUILD_UTILITY
65
66ifeq (1,$(use_neon))
67ASMFLAGS := -INEON/asm
68asflags += -mfpu=neon
69endif
70
71DJB2_OBJS := $(CORE_DIR)/djb2.o
72
73MD5_OBJS := $(CORE_DIR)/md5.o \
74 $(PWD_DIR)/md5_test.o
75
76SHA1_OBJS := $(CORE_DIR)/sha1.o \
77 $(PWD_DIR)/sha1_main.o
78
79CRC32_OBJS := $(PWD_DIR)/crc32.o \
80 $(LIBRETRO_COMM_DIR)/compat/fopen_utf8.o \
81 $(LIBRETRO_COMM_DIR)/compat/compat_strl.o \
82 $(LIBRETRO_COMM_DIR)/encodings/encoding_utf.o \
83 $(LIBRETRO_COMM_DIR)/streams/file_stream.o \
84 $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.o \
85 $(LIBRETRO_COMM_DIR)/encodings/encoding_crc32.o
86
87UTILS := djb2$(EXE_EXT) md5$(EXE_EXT) sha1$(EXE_EXT) crc32$(EXE_EXT)
88
89all: $(UTILS)
90
91djb2$(EXE_EXT): $(DJB2_OBJS)
92
93md5$(EXE_EXT): $(MD5_OBJS)
94
95sha1$(EXE_EXT): $(SHA1_OBJS)
96
97crc32$(EXE_EXT): $(CRC32_OBJS)
98
99%.o: %.S
100 $(CC) -c -o $@ $(asflags) $(LDFLAGS) $(ASMFLAGS) $<
101
102%.o: %.c
103 $(CC) -c -o $@ $(flags) $<
104
105$(UTILS):
106 $(CC) -o $@ $(ldflags) $(flags) $^
107
108clean:
109 rm -f $(CORE_DIR)/*.o
110 rm -f $(UTILS)
111
112strip:
113 strip -s $(UTILS)