139 lines
3.8 KiB
Makefile
139 lines
3.8 KiB
Makefile
# Makefile for vector math library testsuite.
|
|
#
|
|
# Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms,
|
|
# with or without modification, are permitted provided that the
|
|
# following conditions are met:
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
# * Neither the name of the Sony Computer Entertainment Inc nor the names
|
|
# of its contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
topdir = ..
|
|
|
|
ARCH = scalar
|
|
|
|
TESTS_all = \
|
|
test1_aos_c.elf \
|
|
test1_soa_c.elf \
|
|
test2_aos_c.elf \
|
|
test2_soa_c.elf \
|
|
test3_aos_c.elf \
|
|
test3_soa_c.elf \
|
|
test4_aos_c.elf \
|
|
test4_soa_c.elf \
|
|
test1_aos_cpp.elf \
|
|
test1_soa_cpp.elf \
|
|
test2_aos_cpp.elf \
|
|
test2_soa_cpp.elf \
|
|
test3_aos_cpp.elf \
|
|
test3_soa_cpp.elf \
|
|
test4_aos_cpp.elf \
|
|
test4_soa_cpp.elf
|
|
|
|
TESTS_ppu = $(TESTS_all)
|
|
ARCH_CFLAGS_ppu = -maltivec -mabi=altivec -I$(SIMDMATH_DIR)/common
|
|
ARCH_LDFLAGS_ppu = -L$(SIMDMATH_DIR)/ppu -lsimdmath -static
|
|
|
|
CROSS_spu = spu-
|
|
TESTS_spu = $(TESTS_all)
|
|
ARCH_CFLAGS_spu = -I$(SIMDMATH_DIR)/common
|
|
ARCH_LDFLAGS_spu = -L$(SIMDMATH_DIR)/spu -lsimdmath
|
|
|
|
TESTS_SSE = \
|
|
test1_aos_cpp.elf \
|
|
test2_aos_cpp.elf \
|
|
test3_aos_cpp.elf \
|
|
test4_aos_cpp.elf
|
|
ARCH_CFLAGS_SSE = -msse
|
|
|
|
TESTS_scalar = \
|
|
test1_aos_c.elf \
|
|
test2_aos_c.elf \
|
|
test3_aos_c.elf \
|
|
test4_aos_c.elf \
|
|
test1_aos_cpp.elf \
|
|
test2_aos_cpp.elf \
|
|
test3_aos_cpp.elf \
|
|
test4_aos_cpp.elf
|
|
|
|
TESTS = $(TESTS_$(ARCH))
|
|
ARCH_CFLAGS = $(ARCH_CFLAGS_$(ARCH))
|
|
ARCH_LDFLAGS = $(ARCH_LDFLAGS_$(ARCH))
|
|
|
|
SIMDMATH_DIR = $(topdir)/../simdmathlibrary
|
|
|
|
RESULTS = $(TESTS:.elf=.$(ARCH).out)
|
|
DIFFS = $(RESULTS:.out=.cmp)
|
|
|
|
CROSS = $(CROSS_$(ARCH))
|
|
CC = $(CROSS)gcc
|
|
CXX = $(CROSS)g++
|
|
LD = $(CC)
|
|
LDXX = $(CXX)
|
|
|
|
CFLAGS = -O2 -W -Wall -D_VECTORMATH_DEBUG $(ARCH_CFLAGS)
|
|
LDFLAGS = -lm $(ARCH_LDFLAGS)
|
|
|
|
C_INCLUDES = -I$(topdir)/include/vectormath/c
|
|
CXX_INCLUDES = -I$(topdir)/include/vectormath/cpp
|
|
|
|
PERL = perl
|
|
|
|
all: $(TESTS)
|
|
|
|
check: $(DIFFS)
|
|
|
|
clean:
|
|
-rm -f *.elf
|
|
|
|
distclean: clean
|
|
-rm -f *.out *.cmp *~
|
|
|
|
%_c.elf: %_c.c
|
|
$(CC) $(CFLAGS) $(C_INCLUDES) -o $@ $< $(LDFLAGS)
|
|
|
|
%_cpp.elf: %_cpp.cpp
|
|
$(CXX) $(CFLAGS) $(CXX_INCLUDES) -o $@ $< $(LDFLAGS)
|
|
|
|
%.$(ARCH).out: %.elf
|
|
./$< > $@
|
|
|
|
test1_%.cmp: test1_%.out
|
|
$(PERL) ./clean.pl < $< > $<.tmp
|
|
$(PERL) ./compare.pl $<.tmp test1_reference.txt | tee $@
|
|
rm $<.tmp
|
|
|
|
test2_%.cmp: test2_%.out
|
|
$(PERL) ./clean.pl < $< > $<.tmp
|
|
$(PERL) ./compare.pl $<.tmp test2_reference.txt | tee $@
|
|
rm $<.tmp
|
|
|
|
test3_%.cmp: test3_%.out
|
|
$(PERL) ./clean.pl < $< > $<.tmp
|
|
$(PERL) ./compare.pl $<.tmp test3_reference.txt | tee $@
|
|
rm $<.tmp
|
|
|
|
test4_%.cmp: test4_%.out
|
|
$(PERL) ./clean.pl < $< > $<.tmp
|
|
$(PERL) ./compare.pl $<.tmp test4_reference.txt | tee $@
|
|
rm $<.tmp
|