Mercurial > hg > beaglert
diff Makefile @ 318:f7b19ea31bbb prerelease
Added NEON vectorised float<->int converters. Curiously, its performance is worse than the C version. I guess clang is better at vectorising than we thought! The new code remains disabled for now.
author | andrewm |
---|---|
date | Mon, 30 May 2016 01:06:01 +0100 |
parents | 868cfb137fe5 |
children | bd54819ccfa7 |
line wrap: on
line diff
--- a/Makefile Sat May 28 01:23:56 2016 +0100 +++ b/Makefile Mon May 30 01:06:01 2016 +0100 @@ -88,6 +88,11 @@ CORE_OBJS := $(addprefix build/core/,$(notdir $(CORE_CPP_SRCS:.cpp=.o))) CORE_CPP_DEPS := $(addprefix build/core/,$(notdir $(CORE_CPP_SRCS:.cpp=.d))) +CORE_ASM_SRCS := $(wildcard core/*.S) +CORE_ASM_OBJS := $(addprefix build/core/,$(notdir $(CORE_ASM_SRCS:.S=.o))) +CORE_ASM_DEPS := $(addprefix build/core/,$(notdir $(CORE_ASM_SRCS:.S=.d))) + + # Objects for a system-supplied default main() file, if the user # only wants to provide the render functions. DEFAULT_MAIN_CPP_SRCS := ./core/default_main.cpp @@ -117,6 +122,14 @@ @echo ' ...done' @echo ' ' +# Rule for Bela core ASM files +build/core/%.o: ./core/%.S + @echo 'Building $(notdir $<)...' +# @echo 'Invoking: GCC Assembler' + @as -o "$@" "$<" + @echo ' ...done' + @echo ' ' + # Rule for user-supplied C++ files $(PROJECT_DIR)/build/%.o: $(PROJECT_DIR)/%.cpp @echo 'Building $(notdir $<)...' @@ -146,10 +159,10 @@ # function, and conditionally call one of two recursive make targets depending on whether # we want to link in the default main file or not. The kludge is the mess of a shell script # line below. Surely there's a better way to do this? -Bela: $(CORE_OBJS) $(ASM_OBJS) $(C_OBJS) $(CPP_OBJS) $(STATIC_LIBS) $(DEFAULT_MAIN_OBJS) +Bela: $(CORE_ASM_OBJS) $(CORE_OBJS) $(ASM_OBJS) $(C_OBJS) $(CPP_OBJS) $(STATIC_LIBS) $(DEFAULT_MAIN_OBJS) $(eval DEFAULT_MAIN_CONDITIONAL := $(shell bash -c 'if [ `nm $(PROJECT_DIR)/build/*.o | grep -w T | grep -w main | wc -l` == '0' ]; then echo "$(DEFAULT_MAIN_OBJS)"; else echo ""; fi')) @echo 'Invoking: C++ linker' - @$(CXX) $(SYNTAX_FLAG) -L/usr/xenomai/lib -L/usr/arm-linux-gnueabihf/lib -L/usr/arm-linux-gnueabihf/lib/xenomai -L/usr/lib/arm-linux-gnueabihf -pthread -Wpointer-arith -o "$(PROJECT_DIR)/$(PROJECT)" $(CORE_OBJS) $(DEFAULT_MAIN_CONDITIONAL) $(ASM_OBJS) $(C_OBJS) $(CPP_OBJS) $(STATIC_LIBS) $(LIBS) + @$(CXX) $(SYNTAX_FLAG) -L/usr/xenomai/lib -L/usr/arm-linux-gnueabihf/lib -L/usr/arm-linux-gnueabihf/lib/xenomai -L/usr/lib/arm-linux-gnueabihf -pthread -Wpointer-arith -o "$(PROJECT_DIR)/$(PROJECT)" $(CORE_ASM_OBJS) $(CORE_OBJS) $(DEFAULT_MAIN_CONDITIONAL) $(ASM_OBJS) $(C_OBJS) $(CPP_OBJS) $(STATIC_LIBS) $(LIBS) @echo 'Finished building target: $@' # Other Targets: