applied patch to improve build system
This commit is contained in:
@@ -26,14 +26,13 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
topdir = ..
|
||||
ARCH = ppu
|
||||
|
||||
include $(topdir)/Make.defs
|
||||
|
||||
# All that you do to add a file is edit OBJS, the rest will just work
|
||||
|
||||
prefix = /usr
|
||||
prefix_ppu = $(prefix)
|
||||
DESTDIR =
|
||||
|
||||
OBJS = fabsf4.o absi4.o truncf4.o sqrtf4.o tanf4.o \
|
||||
negatef4.o fmaf4.o copysignf4.o modff4.o \
|
||||
fmaxf4.o fminf4.o fdimf4.o sinf4.o asinf4.o \
|
||||
@@ -44,94 +43,10 @@ OBJS = fabsf4.o absi4.o truncf4.o sqrtf4.o tanf4.o \
|
||||
fmodf4.o negatei4.o exp2f4.o powf4.o atanf4.o \
|
||||
atan2f4.o acosf4.o
|
||||
|
||||
INCLUDES_PPU = -I. -I../common
|
||||
|
||||
ARCH_PPU = 32
|
||||
CROSS_PPU =
|
||||
AR_PPU = $(CROSS_PPU)ar
|
||||
CC_PPU = $(CROSS_PPU)gcc
|
||||
CXX_PPU = $(CROSS_PPU)g++
|
||||
RANLIB_PPU = $(CROSS_PPU)ranlib
|
||||
TEST_CMD_PPU =
|
||||
|
||||
ARCH_CFLAGS_PPU = -m$(ARCH_PPU) -maltivec -mabi=altivec
|
||||
CFLAGS_PPU=$(INCLUDES_PPU) -O2 -W -Wall -std=gnu99 $(ARCH_CFLAGS_PPU) -fPIC
|
||||
LDFLAGS_PPU = $(ARCH_CFLAGS_PPU)
|
||||
|
||||
INSTALL = install
|
||||
|
||||
MAKE_DEFS = \
|
||||
prefix='$(prefix)' \
|
||||
prefix_ppu='$(prefix_ppu)' \
|
||||
DESTDIR='$(DESTDIR)' \
|
||||
LIB_BASE='$(LIB_BASE)' \
|
||||
LIB_NAME='$(LIB_NAME)' \
|
||||
STATIC_LIB='$(STATIC_LIB)' \
|
||||
SHARED_LIB='$(SHARED_LIB)' \
|
||||
ARCH_PPU='$(ARCH_PPU)' \
|
||||
ARCH_CFLAGS_PPU='$(ARCH_CFLAGS_PPU)' \
|
||||
CROSS_PPU='$(CROSS_PPU)' \
|
||||
AR_PPU='$(AR_PPU)' \
|
||||
CC_PPU='$(CC_PPU)' \
|
||||
CXX_PPU='$(CXX_PPU)' \
|
||||
RANLIB_PPU='$(RANLIB_PPU)' \
|
||||
TEST_CMD_PPU='$(TEST_CMD_PPU)' \
|
||||
INSTALL='$(INSTALL)'
|
||||
|
||||
LIB_MAJOR_VERSION = 1
|
||||
LIB_MINOR_VERSION = 0
|
||||
LIB_RELEASE = 1
|
||||
LIB_FULL_VERSION = $(LIB_MAJOR_VERSION).$(LIB_MINOR_VERSION).$(LIB_RELEASE)
|
||||
|
||||
LIB_BASE = simdmath
|
||||
LIB_NAME = lib$(LIB_BASE)
|
||||
STATIC_LIB = $(LIB_NAME).a
|
||||
SHARED_LIB = $(LIB_NAME).so
|
||||
SHARED_LIB_SONAME = $(SHARED_LIB).$(LIB_MAJOR_VERSION)
|
||||
SHARED_LIB_FULL = $(SHARED_LIB).$(LIB_FULL_VERSION)
|
||||
|
||||
ALL_LIBS = $(STATIC_LIB) $(SHARED_LIB) $(SHARED_LIB_FULL) $(SHARED_LIB_SONAME)
|
||||
|
||||
all: $(ALL_LIBS)
|
||||
|
||||
static: $(STATIC_LIB)
|
||||
|
||||
shared: $(SHARED_LIB)
|
||||
|
||||
$(STATIC_LIB): $(OBJS)
|
||||
$(AR_PPU) cr $@ $(OBJS)
|
||||
$(RANLIB_PPU) $@
|
||||
|
||||
$(SHARED_LIB_FULL): $(OBJS)
|
||||
$(CC_PPU) -shared $(OBJS) -o $@ $(LDFLAGS_PPU) -Wl,-h,$(SHARED_LIB_SONAME)
|
||||
|
||||
$(SHARED_LIB) $(SHARED_LIB_SONAME): $(SHARED_LIB_FULL)
|
||||
ln -fs $(SHARED_LIB_FULL) $@
|
||||
|
||||
install: $(ALL_LIBS)
|
||||
$(INSTALL) -m 755 -d $(DESTDIR)$(prefix_ppu)/include
|
||||
$(INSTALL) -m 755 -d $(DESTDIR)$(prefix_ppu)/include/simdmath
|
||||
$(INSTALL) -m 644 simdmath/*.h $(DESTDIR)$(prefix_ppu)/include/simdmath/
|
||||
$(INSTALL) -m 755 -d $(DESTDIR)$(prefix_ppu)/lib
|
||||
$(INSTALL) -m 644 $(STATIC_LIB) $(DESTDIR)$(prefix_ppu)/lib/$(STATIC_LIB)
|
||||
$(INSTALL) -m 755 $(SHARED_LIB_FULL) $(DESTDIR)$(prefix_ppu)/lib/$(SHARED_LIB_FULL)
|
||||
ln -fs $(SHARED_LIB_FULL) $(DESTDIR)$(prefix_ppu)/lib/$(SHARED_LIB_SONAME)
|
||||
ln -fs $(SHARED_LIB_SONAME) $(DESTDIR)$(prefix_ppu)/lib/$(SHARED_LIB)
|
||||
|
||||
clean:
|
||||
cd tests; $(MAKE) $(MAKE_DEFS) clean
|
||||
rm -f $(OBJS)
|
||||
rm -f $(STATIC_LIB) $(SHARED_LIB) $(SHARED_LIB_SONAME) $(SHARED_LIB_FULL)
|
||||
include $(topdir)/Make.rules
|
||||
|
||||
$(OBJS): ../common/simdmath.h simdmath/_vec_utils.h
|
||||
|
||||
check: $(ALL_LIBS)
|
||||
cd tests; $(MAKE) $(MAKE_DEFS) all; $(MAKE) $(MAKE_DEFS) check
|
||||
|
||||
|
||||
# Some Objects have special header files.
|
||||
sinf4.o cosf4.o sincosf4.o tanf4.o: ../common/simdmath/_sincos.h
|
||||
|
||||
|
||||
%.o: ../common/%.c simdmath/%.h
|
||||
$(CC_PPU) $(CFLAGS_PPU) -c $<
|
||||
|
||||
@@ -26,93 +26,16 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
topdir = ../..
|
||||
ARCH = ppu
|
||||
|
||||
include $(topdir)/Make.defs
|
||||
|
||||
TESTS = fabsf4 absi4 truncf4 sqrtf4 negatef4 \
|
||||
copysignf4 modff4 fminf4_fmaxf4 \
|
||||
floorf4 recipf4 ceilf4 divf4 divi4 \
|
||||
rsqrtf4 fmodf4 negatei4
|
||||
|
||||
STATIC_TESTS = $(TESTS)
|
||||
SHARED_TESTS = $(TESTS:=.shared)
|
||||
ALL_TESTS = $(STATIC_TESTS) $(SHARED_TESTS)
|
||||
OBJS = testutils.o
|
||||
|
||||
INCLUDES_PPU = -I../../common
|
||||
|
||||
ARCH_PPU = 32
|
||||
CROSS_PPU =
|
||||
AR_PPU = $(CROSS_PPU)ar
|
||||
CC_PPU = $(CROSS_PPU)gcc
|
||||
CXX_PPU = $(CROSS_PPU)g++
|
||||
TEST_CMD_PPU =
|
||||
|
||||
ARCH_CFLAGS_PPU = -m$(ARCH_PPU) -maltivec -mabi=altivec
|
||||
CFLAGS_PPU = $(INCLUDES_PPU) -O2 -W -Wall $(ARCH_CFLAGS_PPU)
|
||||
STATIC_LDFLAGS_PPU = -static
|
||||
SHARED_LDFLAGS_PPU = -Wl,-rpath=..
|
||||
LDFLAGS_PPU = $(ARCH_CFLAGS_PPU) -L../ -l$(LIB_BASE) -lm
|
||||
|
||||
MAKE_DEFS = \
|
||||
LIB_BASE='$(LIB_BASE)' \
|
||||
LIB_NAME='$(LIB_NAME)' \
|
||||
STATIC_LIB='$(STATIC_LIB)' \
|
||||
SHARED_LIB='$(SHARED_LIB)' \
|
||||
ARCH_PPU='$(ARCH_PPU)' \
|
||||
ARCH_CFLAGS_PPU='$(ARCH_CFLAGS_PPU)' \
|
||||
CROSS_PPU='$(CROSS_PPU)' \
|
||||
AR_PPU='$(AR_PPU)' \
|
||||
CC_PPU='$(CC_PPU)' \
|
||||
CXX_PPU='$(CXX_PPU)' \
|
||||
TEST_CMD_PPU='$(TEST_CMD_PPU)'
|
||||
|
||||
LIB_BASE = simdmath
|
||||
LIB_NAME = lib$(LIB_BASE)
|
||||
STATIC_LIB = $(LIB_NAME).a
|
||||
SHARED_LIB = $(LIB_NAME).so
|
||||
|
||||
TEST_CMD = $(TEST_CMD_PPU)
|
||||
|
||||
COMMON_OBJS = testutils.o
|
||||
|
||||
|
||||
all: $(ALL_TESTS)
|
||||
|
||||
|
||||
$(STATIC_TESTS): %: %.o ../$(STATIC_LIB) $(COMMON_OBJS)
|
||||
$(CC_PPU) $*.o $(COMMON_OBJS) $(LDFLAGS_PPU) $(STATIC_LDFLAGS_PPU) -o $@
|
||||
|
||||
$(SHARED_TESTS): %.shared: %.o ../$(SHARED_LIB) $(COMMON_OBJS)
|
||||
$(CC_PPU) $*.o $(COMMON_OBJS) $(LDFLAGS_PPU) $(SHARED_LDFLAGS_PPU) -o $@
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
rm -f $(STATIC_TESTS) $(SHARED_TESTS)
|
||||
rm -f core*
|
||||
|
||||
check: $(ALL_TESTS)
|
||||
for test in $(ALL_TESTS); do \
|
||||
echo "TEST $${test}"; \
|
||||
if $(TEST_CMD) ./$${test}; then \
|
||||
pass="$$pass $$test"; \
|
||||
else \
|
||||
fail="$$fail $$test"; \
|
||||
fi \
|
||||
done; \
|
||||
echo; echo "PASS:$$pass"; echo "FAIL:$$fail"; \
|
||||
test -z "$$fail"
|
||||
|
||||
static_check:
|
||||
$(MAKE) $(MAKE_DEFS) ALL_TESTS="$(STATIC_TESTS)" check
|
||||
|
||||
shared_check:
|
||||
$(MAKE) $(MAKE_DEFS) ALL_TESTS="$(SHARED_TESTS)" check
|
||||
|
||||
../$(STATIC_LIB):
|
||||
cd ../;$(MAKE) $(MAKE_DEFS) $(STATIC_LIB)
|
||||
|
||||
../$(SHARED_LIB):
|
||||
cd ../;$(MAKE) $(MAKE_DEFS) $(SHARED_LIB)
|
||||
|
||||
%.o: %.c ../../common/common-test.h testutils.h
|
||||
$(CC_PPU) $(CFLAGS_PPU) -c $<
|
||||
|
||||
%.o: %.cc
|
||||
$(CXX_PPU) $(CFLAGS_PPU) -c $<
|
||||
include $(topdir)/Make.test
|
||||
|
||||
Reference in New Issue
Block a user