From dd12df5ef895fcfe8981382c0d475dc9c2d3d41d Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Sun, 16 Jun 2024 12:34:38 +0600 Subject: [PATCH] Add package: tcc --- devel/tcc.d/Makefile | 54 +++++++++++++++++++++++++++++++++ devel/tcc.d/files/Makefile | 52 +++++++++++++++++++++++++++++++ devel/tcc.d/files/Makefile-libs | 21 +++++++++++++ devel/tcc.d/files/ar | 3 ++ 4 files changed, 130 insertions(+) create mode 100644 devel/tcc.d/Makefile create mode 100644 devel/tcc.d/files/Makefile create mode 100644 devel/tcc.d/files/Makefile-libs create mode 100644 devel/tcc.d/files/ar diff --git a/devel/tcc.d/Makefile b/devel/tcc.d/Makefile new file mode 100644 index 0000000..e2a1523 --- /dev/null +++ b/devel/tcc.d/Makefile @@ -0,0 +1,54 @@ +version=79a8229fb5da15135ac0c54c2c696a8da8988b24 + +package=tcc +pkgver=${version}_0 +description=BSD Make tool +conflict= +homepage=Tiny C compiler +license=LGPL-2.1 +replace= + +alternatives=cc:/usr/bin/cc:tcc +shlib-provides= +shlib-requires=libc.so + +include ../../Makefile + +SOURCES = \ + ${version}.tar.gz + +FILES = \ + files/ar \ + files/Makefile \ + files/Makefile-libs + +${version}.tar.gz: + ${DOWNLOAD} https://repo.or.cz/tinycc.git/snapshot/$@ + ${SHA256} ec4b05d28f83970b9f405ed50c60fe8fac88826ef7ce80fa95ec4a5cde2a319f + +GITHASH = `echo ${version} | dd ibs=1 obs=1 count=7 2>/dev/null` + +prepare: ${SOURCES} ${FILES} + tar -zxf ${version}.tar.gz + mv tinycc-${GITHASH} build + mv files/ar build/ + mv -f files/Makefile build/ + mv -f files/Makefile-libs build/lib/Makefile + +root: + ./configure \ + --prefix=/usr \ + --cc=${CC} \ + --config-musl + + ${MAKE} GITHASH=${GITHASH} + ${MAKE} DESTDIR=${root} install + + +root-posix: + mkdir -p ${root}/usr/bin + install -Dm 755 ar "${root}/usr/bin/ar" + +root-man: + install -Dm 644 tcc-doc.texi "${root}/usr/share/man/man1/tcc.texi" + diff --git a/devel/tcc.d/files/Makefile b/devel/tcc.d/files/Makefile new file mode 100644 index 0000000..1da50c6 --- /dev/null +++ b/devel/tcc.d/files/Makefile @@ -0,0 +1,52 @@ +.POSIX: + +OBJECTS = \ + tcc.o \ + libtcc.o \ + tccpp.o \ + tccgen.o \ + tccdbg.o \ + tccelf.o \ + tccasm.o \ + tccrun.o \ + x86_64-gen.o \ + x86_64-link.o \ + i386-asm.o + +ONE_SOURCE=0 +include config.mak + +XCFLAGS = ${CFLAGS} -I. ${NATIVE_DEFINES} \ + -DTCC_TARGET_X86_64 -DTCC_MUSL -DONE_SOURCE=${ONE_SOURCE} + +.SUFFIXES: .c .o .S + +.c.o: + ${CC} ${XCFLAGS} -c $< + +all: tcc libs + +tcc: libtcc.a tcc.o + ${CC} -o tcc tcc.o libtcc.a -lm -lpthread -ldl -s + +tcc.o: + ${CC} ${XCFLAGS} -DTCC_GITHASH="\"HEAD:${GITHASH}\"" -c tcc.c + +tccpp.o: tccdefs_.h + +tccdefs_.h: + ${CC} -DC2STR conftest.c -o c2str.exe + ./c2str.exe include/tccdefs.h tccdefs_.h + +libtcc.a: ${OBJECTS} + ${AR} ${ARFLAGS} $@ ${OBJECTS} + +libs: tcc + ${MAKE} CC=../tcc -C ./lib + +clean: + rm ${OBJECTS} libtcc.a c2str.ext tccdefs_.h tcc + +install: tcc libs + install -Dm 755 tcc $(bindir)/tcc + install -Dm 644 lib/libtcc1.a $(libdir)/libtcc1.a diff --git a/devel/tcc.d/files/Makefile-libs b/devel/tcc.d/files/Makefile-libs new file mode 100644 index 0000000..4e3f6e5 --- /dev/null +++ b/devel/tcc.d/files/Makefile-libs @@ -0,0 +1,21 @@ +.POSIX: + +OBJECTS = \ + libtcc1.o \ + alloca.o \ + alloca-bt.o \ + tcov.o \ + stdatomic.o \ + va_list.o \ + dsohandle.o + +CFLAGS = -B.. -I.. + +libtcc1.a: $(OBJECTS) + $(AR) rcs $@ $(OBJECTS) + +.SUFFIXES: .S + +.S.o: + $(CC) $(CFLAGS) -o $@ -c $> + diff --git a/devel/tcc.d/files/ar b/devel/tcc.d/files/ar new file mode 100644 index 0000000..a0f0968 --- /dev/null +++ b/devel/tcc.d/files/ar @@ -0,0 +1,3 @@ +#!/bin/sh + +/usr/bin/tcc -ar "$@"