Clean up TCC buildcode

It was unstandard & some files were not correctly in DESTDIR
This commit is contained in:
fosslinux 2023-02-02 21:45:12 +11:00
parent 5f7ae7d964
commit eb607794cd
4 changed files with 41 additions and 63 deletions

View File

@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2022-23 fosslinux <fosslinux@aussies.space>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -10,24 +10,18 @@ src_prepare() {
} }
src_compile() { src_compile() {
export libdir=${PREFIX}/lib/mes
export incdir=${PREFIX}/include/
export bindir=${PREFIX}/bin
mkdir -p "${libdir}/tcc"
# We have to compile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting when built with mes # We have to compile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting when built with mes
tcc-0.9.26 \ tcc-0.9.26 \
-v \ -v \
-static \ -static \
-o tcc \ -o tcc \
-D TCC_TARGET_I386=1 \ -D TCC_TARGET_I386=1 \
-D CONFIG_TCCDIR=\""${libdir}/tcc"\" \ -D CONFIG_TCCDIR=\""${LIBDIR}/tcc"\" \
-D CONFIG_TCC_CRTPREFIX=\""${libdir}"\" \ -D CONFIG_TCC_CRTPREFIX=\""${LIBDIR}"\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\""${libdir}:${libdir}/tcc"\" \ -D CONFIG_TCC_LIBPATHS=\""${LIBDIR}:${LIBDIR}/tcc"\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\""${incdir}"\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\""${PREFIX}/include"\" \
-D TCC_LIBGCC=\""${libdir}/libc.a"\" \ -D TCC_LIBGCC=\""${LIBDIR}/libc.a"\" \
-D CONFIG_TCC_STATIC=1 \ -D CONFIG_TCC_STATIC=1 \
-D CONFIG_USE_LIBGCC=1 \ -D CONFIG_USE_LIBGCC=1 \
-D TCC_VERSION=\"0.9.27\" \ -D TCC_VERSION=\"0.9.27\" \
@ -36,10 +30,10 @@ src_compile() {
# libtcc1.a # libtcc1.a
tcc-0.9.26 -c -D HAVE_CONFIG_H=1 lib/libtcc1.c tcc-0.9.26 -c -D HAVE_CONFIG_H=1 lib/libtcc1.c
tcc-0.9.26 -ar cr "${libdir}/tcc/libtcc1.a" libtcc1.o tcc-0.9.26 -ar cr libtcc1.a libtcc1.o
} }
src_install() { src_install() {
# Remove old tcc binaries install -D libtcc1.a "${DESTDIR}${LIBDIR}/tcc/libtcc1.a"
install -D tcc "${DESTDIR}${bindir}/tcc" install -D tcc "${DESTDIR}${PREFIX}/bin/tcc"
} }

View File

@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2022-23 fosslinux <fosslinux@aussies.space>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -10,42 +10,38 @@ src_prepare() {
} }
src_compile() { src_compile() {
export libdir=${LIBDIR}
export incdir=${PREFIX}/include/musl
export bindir=${PREFIX}/bin
mkdir -p "${libdir}/tcc"
# We first have to recompile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting, # We first have to recompile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting,
# but when linked with musl it is. # but when linked with musl it is.
ln -sf "${PREFIX}/lib/mes/tcc/libtcc1.a" ./libtcc1.a
for TCC in tcc-0.9.26 ./tcc-musl; do for TCC in tcc-0.9.26 ./tcc-musl; do
${TCC} \ "${TCC}" \
-v \ -v \
-static \ -static \
-o tcc-musl \ -o tcc-musl \
-D TCC_TARGET_I386=1 \ -D TCC_TARGET_I386=1 \
-D CONFIG_TCCDIR=\""${libdir}/tcc"\" \ -D CONFIG_TCCDIR=\""${LIBDIR}/tcc"\" \
-D CONFIG_TCC_CRTPREFIX=\""${libdir}"\" \ -D CONFIG_TCC_CRTPREFIX=\""${LIBDIR}"\" \
-D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \
-D CONFIG_TCC_LIBPATHS=\""${libdir}:${libdir}/tcc"\" \ -D CONFIG_TCC_LIBPATHS=\""${LIBDIR}:${LIBDIR}/tcc"\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\""${incdir}"\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\""${PREFIX}/include/musl"\" \
-D TCC_LIBGCC=\""${libdir}/libc.a"\" \ -D TCC_LIBGCC=\""${LIBDIR}/libc.a"\" \
-D CONFIG_TCC_STATIC=1 \ -D CONFIG_TCC_STATIC=1 \
-D CONFIG_USE_LIBGCC=1 \ -D CONFIG_USE_LIBGCC=1 \
-D TCC_VERSION=\"0.9.27\" \ -D TCC_VERSION=\"0.9.27\" \
-D ONE_SOURCE=1 \ -D ONE_SOURCE=1 \
-B . \
tcc.c tcc.c
# libtcc1.a # libtcc1.a
rm -f libtcc1.a
${TCC} -c -D HAVE_CONFIG_H=1 lib/libtcc1.c ${TCC} -c -D HAVE_CONFIG_H=1 lib/libtcc1.c
${TCC} -ar cr "${libdir}/tcc/libtcc1.a" libtcc1.o ${TCC} -ar cr libtcc1.a libtcc1.o
done done
} }
src_install() { src_install() {
# Remove old tcc binaries install -D tcc-musl "${DESTDIR}${PREFIX}/bin/tcc-musl"
rm "${bindir}/tcc" ln -s tcc-musl "${DESTDIR}${PREFIX}/bin/tcc"
rm "${bindir}"/boot*-tcc "${bindir}/tcc-0.9.26" "${bindir}/mes-tcc" install -D libtcc1.a "${DESTDIR}${LIBDIR}/tcc/libtcc1.a"
install -D tcc-musl "${DESTDIR}${bindir}/tcc-musl"
ln -s tcc-musl "${DESTDIR}${bindir}/tcc"
} }

View File

@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -10,23 +10,17 @@ src_prepare() {
} }
src_compile() { src_compile() {
export libdir=${LIBDIR}
export incdir=${PREFIX}/include/musl
export bindir=${PREFIX}/bin
mkdir -p "${libdir}/tcc"
tcc-musl \ tcc-musl \
-v \ -v \
-static \ -static \
-o tcc-musl \ -o tcc-musl \
-D TCC_TARGET_I386=1 \ -D TCC_TARGET_I386=1 \
-D CONFIG_TCCDIR=\""${libdir}/tcc"\" \ -D CONFIG_TCCDIR=\""${LIBDIR}/tcc"\" \
-D CONFIG_TCC_CRTPREFIX=\""${libdir}"\" \ -D CONFIG_TCC_CRTPREFIX=\""${LIBDIR}"\" \
-D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \
-D CONFIG_TCC_LIBPATHS=\""${libdir}:${libdir}/tcc"\" \ -D CONFIG_TCC_LIBPATHS=\""${LIBDIR}:${LIBDIR}/tcc"\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\""${incdir}"\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\""${PREFIX}/include/musl"\" \
-D TCC_LIBGCC=\""${libdir}/libc.a"\" \ -D TCC_LIBGCC=\""${LIBDIR}/libc.a"\" \
-D CONFIG_TCC_STATIC=1 \ -D CONFIG_TCC_STATIC=1 \
-D CONFIG_USE_LIBGCC=1 \ -D CONFIG_USE_LIBGCC=1 \
-D TCC_VERSION=\"0.9.27\" \ -D TCC_VERSION=\"0.9.27\" \
@ -39,6 +33,6 @@ src_compile() {
} }
src_install() { src_install() {
install -D tcc-musl "${DESTDIR}${bindir}/tcc-musl" install -D tcc-musl "${DESTDIR}${PREFIX}/bin/tcc-musl"
install -D -m 644 libtcc1.a "${DESTDIR}${libdir}/libtcc1.a" install -D -m 644 libtcc1.a "${DESTDIR}${LIBDIR}/libtcc1.a"
} }

View File

@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -10,28 +10,22 @@ src_prepare() {
} }
src_compile() { src_compile() {
export libdir=${LIBDIR}
export incdir=${PREFIX}/include
export bindir=${PREFIX}/bin
mkdir -p "${libdir}/tcc"
tcc-musl \ tcc-musl \
-v \ -v \
-static \ -static \
-o tcc-musl \ -o tcc-musl \
-D TCC_TARGET_I386=1 \ -D TCC_TARGET_I386=1 \
-D CONFIG_TCCDIR=\""${libdir}/tcc"\" \ -D CONFIG_TCCDIR=\""${LIBDIR}/tcc"\" \
-D CONFIG_TCC_CRTPREFIX=\""${libdir}"\" \ -D CONFIG_TCC_CRTPREFIX=\""${LIBDIR}"\" \
-D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \
-D CONFIG_TCC_LIBPATHS=\""${libdir}:${libdir}/tcc"\" \ -D CONFIG_TCC_LIBPATHS=\""${LIBDIR}:${LIBDIR}/tcc"\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\""${incdir}"\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\""${PREFIX}/include"\" \
-D TCC_LIBGCC=\""${libdir}/libc.a"\" \ -D TCC_LIBGCC=\""${LIBDIR}/libc.a"\" \
-D CONFIG_TCC_STATIC=1 \ -D CONFIG_TCC_STATIC=1 \
-D CONFIG_USE_LIBGCC=1 \ -D CONFIG_USE_LIBGCC=1 \
-D TCC_VERSION=\"0.9.27\" \ -D TCC_VERSION=\"0.9.27\" \
-D ONE_SOURCE=1 \ -D ONE_SOURCE=1 \
-I "${incdir}" \ -I "${PREFIX}/include" \
tcc.c tcc.c
# libtcc1.a # libtcc1.a
@ -40,6 +34,6 @@ src_compile() {
} }
src_install() { src_install() {
install -D tcc-musl "${DESTDIR}${bindir}/tcc-musl" install -D tcc-musl "${DESTDIR}${PREFIX}/bin/tcc-musl"
install -D -m 644 libtcc1.a "${DESTDIR}${libdir}/libtcc1.a" install -D -m 644 libtcc1.a "${DESTDIR}${LIBDIR}/libtcc1.a"
} }