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 55LIBRETRO_COMM_DIR := ../.. 56CORE_DIR := $(LIBRETRO_COMM_DIR)/utils 57 58CC := $(compiler) 59CXX := $(subst CC,++,$(compiler)) 60flags := -I$(LIBRETRO_COMM_DIR)/include 61asflags := $(extra_flags) 62LDFLAGS := 63flags += -std=c99 -DMD5_BUILD_UTILITY -DSHA1_BUILD_UTILITY 64 65ifeq (1,$(use_neon)) 66ASMFLAGS := -INEON/asm 67asflags += -mfpu=neon 68endif 69 70OBJS += $(CORE_DIR)/djb2.o \ 71 $(CORE_DIR)/md5.o \ 72 $(CORE_DIR)/sha1.o \ 73 $(CORE_DIR)/sha1_main.o \ 74 $(CORE_DIR)/crc32.o 75 76UTILS := djb2$(EXE_EXT) md5$(EXE_EXT) sha1$(EXE_EXT) crc32$(EXE_EXT) 77 78all: $(UTILS) 79 80djb2$(EXE_EXT): $(CORE_DIR)/djb2.o 81 82md5$(EXE_EXT): $(CORE_DIR)/md5.o 83 84sha1$(EXE_EXT): $(CORE_DIR)/sha1.o $(CORE_DIR)/sha1_main.o 85 86crc32$(EXE_EXT): $(CORE_DIR)/crc32.o $(CORE_DIR)/../encodings/encoding_crc32.o 87 88%.o: %.S 89 $(CC) -c -o $@ $(asflags) $(LDFLAGS) $(ASMFLAGS) $< 90 91%.o: %.c 92 $(CC) -c -o $@ $(flags) $< 93 94$(UTILS): 95 $(CC) -o $@ $(ldflags) $(flags) $^ 96 97clean: 98 rm -f $(CORE_DIR)/*.o 99 rm -f $(UTILS) 100 101strip: 102 strip -s $(UTILS) 103