Files
bullet3/Extras/vectormathlibrary/tests/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