Commit | Line | Data |
---|---|---|
3719602c PC |
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) |