mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-23 04:00:05 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
139 lines
4.7 KiB
Bash
139 lines
4.7 KiB
Bash
SUMMARY="A small and fast C compiler"
|
|
DESCRIPTION="* SMALL! You can compile and execute C code everywhere, for \
|
|
example on rescue disks (about 100KB for x86 TCC executable, including C \
|
|
preprocessor, C compiler, assembler and linker).
|
|
* FAST! tcc generates x86 code. No byte code overhead. Compile, assemble and \
|
|
link several times faster than GCC.
|
|
* UNLIMITED! Any C dynamic library can be used directly. TCC is heading \
|
|
torward full ISOC99 compliance. TCC can of course compile itself.
|
|
* SAFE! tcc includes an optional memory and bound checker. Bound checked code \
|
|
can be mixed freely with standard code.
|
|
* Compile and execute C source directly. No linking or assembly necessary. \
|
|
Full C preprocessor and GNU-like assembler included.
|
|
* C script supported : just add '#!/usr/local/bin/tcc -run' at the first line \
|
|
of your C source, and execute it directly from the command line.
|
|
* With libtcc, you can use TCC as a backend for dynamic code generation."
|
|
HOMEPAGE="https://bellard.org/tcc/"
|
|
COPYRIGHT="2001-2014 Fabrice Bellard"
|
|
LICENSE="GNU LGPL v2"
|
|
REVISION="3"
|
|
SOURCE_URI="http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.26.tar.bz2"
|
|
CHECKSUM_SHA256="521e701ae436c302545c3f973a9c9b7e2694769c71d9be10f70a2460705b6d71"
|
|
PATCHES="tcc-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="?all !x86_gcc2"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
PROVIDES="
|
|
tcc$secondaryArchSuffix = $portVersion
|
|
cmd:arm_eabi_tcc$secondaryArchSuffix
|
|
cmd:arm_fpa_ld_tcc$secondaryArchSuffix
|
|
cmd:arm_fpa_tcc$secondaryArchSuffix
|
|
cmd:arm_vfp_tcc$secondaryArchSuffix
|
|
cmd:c67_tcc$secondaryArchSuffix
|
|
cmd:i386_win32_tcc$secondaryArchSuffix
|
|
cmd:tcc$secondaryArchSuffix
|
|
cmd:x86_64_tcc$secondaryArchSuffix
|
|
cmd:x86_64_win32_tcc$secondaryArchSuffix
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_devel="
|
|
tcc${secondaryArchSuffix}_devel = $portVersion
|
|
devel:libtcc$secondaryArchSuffix
|
|
"
|
|
REQUIRES_devel="
|
|
"
|
|
|
|
BUILD_PREREQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:make
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
local hybrid
|
|
# Borrowed from gcc
|
|
local sysincdir=(
|
|
"/boot/system/develop/headers/os"
|
|
"/boot/system/develop/headers/os/app"
|
|
"/boot/system/develop/headers/os/device"
|
|
"/boot/system/develop/headers/os/drivers"
|
|
"/boot/system/develop/headers/os/game"
|
|
"/boot/system/develop/headers/os/interface"
|
|
"/boot/system/develop/headers/os/kernel"
|
|
"/boot/system/develop/headers/os/locale"
|
|
"/boot/system/develop/headers/os/mail"
|
|
"/boot/system/develop/headers/os/media"
|
|
"/boot/system/develop/headers/os/midi"
|
|
"/boot/system/develop/headers/os/midi2"
|
|
"/boot/system/develop/headers/os/net"
|
|
"/boot/system/develop/headers/os/opengl"
|
|
"/boot/system/develop/headers/os/storage"
|
|
"/boot/system/develop/headers/os/support"
|
|
"/boot/system/develop/headers/os/translation"
|
|
"/boot/system/develop/headers/os/add-ons/graphics"
|
|
"/boot/system/develop/headers/os/add-ons/input_server"
|
|
"/boot/system/develop/headers/os/add-ons/mail_daemon"
|
|
"/boot/system/develop/headers/os/add-ons/registrar"
|
|
"/boot/system/develop/headers/os/add-ons/screen_saver"
|
|
"/boot/system/develop/headers/os/add-ons/tracker"
|
|
"/boot/system/develop/headers/os/be_apps/Deskbar"
|
|
"/boot/system/develop/headers/os/be_apps/NetPositive"
|
|
"/boot/system/develop/headers/os/be_apps/Tracker"
|
|
"/boot/system/develop/headers/3rdparty"
|
|
"/boot/system/develop/headers/bsd"
|
|
"/boot/system/develop/headers/glibc"
|
|
"/boot/system/develop/headers/gnu"
|
|
"/boot/system/develop/headers/posix"
|
|
)
|
|
if [ -n "$secondaryArchSuffix" ]; then
|
|
hybrid="${secondaryArchSuffix#_}"
|
|
sysincdir=("/boot/system/non-packaged/develop/headers/$hybrid"
|
|
${sysincdir[@]}
|
|
"/boot/system/develop/headers/$hybrid"
|
|
"/boot/system/develop/headers/$hybrid/os"
|
|
"/boot/system/develop/headers/$hybrid/os/opengl")
|
|
else
|
|
sysincdir=("/boot/system/non-packaged/develop/headers"
|
|
${sysincdir[@]})
|
|
fi
|
|
|
|
sysincdir+=("/boot/system/develop/headers"
|
|
# TCC owns include paths, refer to tcc.h
|
|
"{B}/include")
|
|
|
|
local crtpre=("/boot/system/non-packaged/develop/lib${hybrid:+/$hybrid}"
|
|
"/boot/system/develop/lib${hybrid:+/$hybrid}")
|
|
|
|
local libdir=(${crtpre[@]}
|
|
"/boot/system/non-packaged/lib${hybrid:+/$hybrid}"
|
|
"/boot/system/lib${hybrid:+/$hybrid}")
|
|
|
|
runConfigure ./configure --enable-cross \
|
|
--sysincludepaths=$(IFS=:; echo "${sysincdir[*]}") \
|
|
--libpaths=$(IFS=:; echo "${libdir[*]}") \
|
|
--crtprefix=$(IFS=:; echo "${crtpre[*]}") \
|
|
--elfinterp=/system/runtime_loader
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
make install
|
|
prepareInstalledDevelLib libtcc
|
|
packageEntries devel $developDir
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
if [ "$targetArchitecture" == "x86_gcc2" && -z "$secondaryArchSuffix" ]; then
|
|
echo "Sorry, test doesn't support gcc2"
|
|
else
|
|
make test
|
|
fi
|
|
}
|