drc: handle upto 64k page size
[pcsx_rearmed.git] / deps / libretro-common / samples / utils / Makefile
1 compiler    := gcc
2 extra_flags :=
3 use_neon    := 0
4 release    := release
5 EXE_EXT       :=
6
7 ifeq ($(platform),)
8 platform = unix
9 ifeq ($(shell uname -a),)
10    platform = win
11 else ifneq ($(findstring MINGW,$(shell uname -a)),)
12    platform = win
13 else ifneq ($(findstring Darwin,$(shell uname -a)),)
14    platform = osx
15    arch = intel
16 ifeq ($(shell uname -p),powerpc)
17    arch = ppc
18 endif
19 else ifneq ($(findstring win,$(shell uname -a)),)
20    platform = win
21 endif
22 endif
23
24 ifeq ($(compiler),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 :=
46
47 EXE_EXT :=
48 ifeq ($(platform), unix)
49 else ifeq ($(platform), osx)
50 compiler := $(CC)
51 else
52 EXE_EXT = .exe
53 endif
54
55 PWD_DIR := .
56 LIBRETRO_COMM_DIR := ../..
57 CORE_DIR := $(LIBRETRO_COMM_DIR)/utils
58
59 CC      := $(compiler)
60 CXX     := $(subst CC,++,$(compiler))
61 flags   := -I$(LIBRETRO_COMM_DIR)/include
62 asflags := $(extra_flags)
63 LDFLAGS :=
64 flags   += -std=c99 -DMD5_BUILD_UTILITY -DSHA1_BUILD_UTILITY
65
66 ifeq (1,$(use_neon))
67 ASMFLAGS := -INEON/asm
68 asflags += -mfpu=neon
69 endif
70
71 DJB2_OBJS := $(CORE_DIR)/djb2.o
72
73 MD5_OBJS  := $(CORE_DIR)/md5.o \
74                                  $(PWD_DIR)/md5_test.o
75
76 SHA1_OBJS := $(CORE_DIR)/sha1.o \
77                                  $(PWD_DIR)/sha1_main.o
78
79 CRC32_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
87 UTILS := djb2$(EXE_EXT) md5$(EXE_EXT) sha1$(EXE_EXT) crc32$(EXE_EXT)
88
89 all: $(UTILS)
90
91 djb2$(EXE_EXT): $(DJB2_OBJS)
92
93 md5$(EXE_EXT): $(MD5_OBJS)
94
95 sha1$(EXE_EXT): $(SHA1_OBJS)
96
97 crc32$(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
108 clean:
109         rm -f $(CORE_DIR)/*.o
110         rm -f $(UTILS)
111
112 strip:
113         strip -s $(UTILS)