151 lines
4.3 KiB
Makefile
151 lines
4.3 KiB
Makefile
# Toplevel make file to build the libsimdmath library for both SPU and PPU
|
|
# 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.
|
|
|
|
# How to build:
|
|
#
|
|
# To build 32 bit libraries:
|
|
#
|
|
# make ARCH_PPU=32
|
|
#
|
|
# To build 64 bit libraries:
|
|
#
|
|
# make ARCH_PPU=64
|
|
#
|
|
# To use "ppu-gcc" instead of "gcc".
|
|
#
|
|
# make CROSS_PPU=ppu-
|
|
|
|
prefix = /usr
|
|
prefix_ppu = $(prefix)
|
|
prefix_spu = $(prefix)/spu
|
|
DESTDIR =
|
|
|
|
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
|
|
|
|
CROSS_SPU = spu-
|
|
AR_SPU = $(CROSS_SPU)ar
|
|
CC_SPU = $(CROSS_SPU)gcc
|
|
CXX_SPU = $(CROSS_SPU)g++
|
|
RANLIB_SPU = $(CROSS_SPU)ranlib
|
|
TEST_CMD_SPU =
|
|
|
|
INSTALL = install
|
|
|
|
MAKE_DEFS = \
|
|
prefix='$(prefix)' \
|
|
prefix_ppu='$(prefix_ppu)' \
|
|
prefix_spu='$(prefix_spu)' \
|
|
DESTDIR='$(DESTDIR)' \
|
|
LIB_MAJOR_VERSION='$(LIB_MAJOR_VERSION)' \
|
|
LIB_MINOR_VERSION='$(LIB_MINOR_VERSION)' \
|
|
LIB_RELEASE='$(LIB_RELEASE)' \
|
|
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)' \
|
|
CROSS_SPU='$(CROSS_SPU)' \
|
|
AR_SPU='$(AR_SPU)' \
|
|
CC_SPU='$(CC_SPU)' \
|
|
CXX_SPU='$(CXX_SPU)' \
|
|
RANLIB_SPU='$(RANLIB_SPU)' \
|
|
TEST_CMD_SPU='$(TEST_CMD_SPU)' \
|
|
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
|
|
|
|
TAR_NAME = $(LIB_BASE)-$(LIB_FULL_VERSION)
|
|
TAR_BALL = $(TAR_NAME).tar.gz
|
|
|
|
all: spu_library ppu_library
|
|
|
|
spu_library:
|
|
cd spu; $(MAKE) $(MAKE_DEFS)
|
|
|
|
ppu_library:
|
|
cd ppu; $(MAKE) $(MAKE_DEFS)
|
|
|
|
install: common_install spu_install ppu_install
|
|
|
|
common_install:
|
|
cd common; $(MAKE) $(MAKE_DEFS) install
|
|
|
|
spu_install:
|
|
cd spu; $(MAKE) $(MAKE_DEFS) install
|
|
|
|
ppu_install:
|
|
cd ppu; $(MAKE) $(MAKE_DEFS) install
|
|
|
|
clean:
|
|
cd common; $(MAKE) $(MAKE_DEFS) clean
|
|
cd spu; $(MAKE) $(MAKE_DEFS) clean
|
|
cd ppu; $(MAKE) $(MAKE_DEFS) clean
|
|
-rm -rf $(TAR_BALL) .dist
|
|
|
|
check: check_ppu check_spu
|
|
|
|
check_ppu:
|
|
cd ppu; $(MAKE) $(MAKE_DEFS) check
|
|
|
|
check_spu:
|
|
cd spu; $(MAKE) $(MAKE_DEFS) check
|
|
|
|
dist:
|
|
-rm -rf .dist
|
|
mkdir -p .dist/$(TAR_NAME)
|
|
find . -name .dist -prune -o \
|
|
-name .CVS -prune -o -name .svn -prune -o \
|
|
-name .pc -prune -o -name patches -prune -o \
|
|
'(' -name Makefile -o -name '*.[ch]' -o -name '*.spec' ')' \
|
|
-print | tar -T - -cf - | tar xf - -C .dist/$(TAR_NAME)
|
|
tar zcf $(TAR_BALL) -C .dist $(TAR_NAME)
|
|
-rm -rf .dist
|