aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoît Dufour <benoit.dufour@mail.com>2023-11-05 22:55:48 -0500
committerBenoît Dufour <benoit.dufour@mail.com>2023-11-05 22:55:48 -0500
commite2e38fbb37db53ef56f599a71da51a5c8880aebc (patch)
tree7f1e760e9672454f8b1446f2adc2b83335dcbc86 /sys-devel
parentnet-wireless/bluetuith: fixup d94921370e1d85fa510b2e0fd4e9fd064c9e (diff)
downloadguru-e2e38fbb37db53ef56f599a71da51a5c8880aebc.tar.gz
guru-e2e38fbb37db53ef56f599a71da51a5c8880aebc.tar.bz2
guru-e2e38fbb37db53ef56f599a71da51a5c8880aebc.zip
sys-devel/lcc: new package, add 2021.01.11
Signed-off-by: Benoît Dufour <benoit.dufour@mail.com>
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/lcc/Manifest1
-rw-r--r--sys-devel/lcc/files/add_cmake_support.patch156
-rw-r--r--sys-devel/lcc/lcc-2021.01.11.ebuild36
3 files changed, 193 insertions, 0 deletions
diff --git a/sys-devel/lcc/Manifest b/sys-devel/lcc/Manifest
new file mode 100644
index 000000000..ed6f4dca8
--- /dev/null
+++ b/sys-devel/lcc/Manifest
@@ -0,0 +1 @@
+DIST 3fd0acc0c3087411c0966d725a56be29038c05a9.tar.gz 636724 BLAKE2B 9fffbda4e888d79c672d2da25cec4132848ce5f8cadd99f128645389377230b491ef3d2f3c550774df6ae82fd6304addcd1f00d6d0da79440ea510b0d97d5600 SHA512 f954509307136632408a219ccefa3e85a05538553c17aec72556979370fa795076a574033c6f7d2b51ca30218665fddd3b576b00fdb6327ae09f0e0c041d428a
diff --git a/sys-devel/lcc/files/add_cmake_support.patch b/sys-devel/lcc/files/add_cmake_support.patch
new file mode 100644
index 000000000..5fc462212
--- /dev/null
+++ b/sys-devel/lcc/files/add_cmake_support.patch
@@ -0,0 +1,156 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+new file mode 100644
+index 0000000..6c3b77c
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,11 @@
++cmake_minimum_required(VERSION 3.13)
++
++# TODO: test, triple
++
++project(lcc C)
++
++add_subdirectory(lburg)
++add_subdirectory(src)
++add_subdirectory(cpp)
++add_subdirectory(etc)
++add_subdirectory(lib)
+diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
+new file mode 100644
+index 0000000..accff2e
+--- /dev/null
++++ b/cpp/CMakeLists.txt
+@@ -0,0 +1,12 @@
++add_executable(cpp
++ cpp.c
++ lex.c
++ nlist.c
++ tokens.c
++ macro.c
++ eval.c
++ include.c
++ hideset.c
++ getopt.c
++ unix.c
++ )
+\ No newline at end of file
+diff --git a/etc/CMakeLists.txt b/etc/CMakeLists.txt
+new file mode 100644
+index 0000000..aa4d4aa
+--- /dev/null
++++ b/etc/CMakeLists.txt
+@@ -0,0 +1,18 @@
++add_executable(lcc
++ lcc.c)
++
++if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
++ target_sources(lcc PRIVATE win32.c)
++elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
++ target_sources(lcc PRIVATE linux.c)
++endif()
++
++add_executable(bprint
++ bprint.c)
++
++target_link_libraries(bprint PRIVATE profio)
++
++add_executable(ops EXCLUDE_FROM_ALL
++ ops.c)
++
++target_link_libraries(ops PRIVATE c)
+\ No newline at end of file
+diff --git a/lburg/CMakeLists.txt b/lburg/CMakeLists.txt
+new file mode 100644
+index 0000000..25b0ae1
+--- /dev/null
++++ b/lburg/CMakeLists.txt
+@@ -0,0 +1,14 @@
++
++add_executable(lburg
++ lburg.c
++ gram.c)
++
++target_include_directories(lburg PRIVATE lburg)
++
++# lburg function for generation of c files from md files
++function(lburg md_file c_file)
++ add_custom_command(OUTPUT ${c_file}
++ DEPENDS ${md_file}
++ COMMAND lburg ${md_file} ${c_file}
++ VERBATIM)
++endfunction()
+\ No newline at end of file
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+new file mode 100644
+index 0000000..3c31289
+--- /dev/null
++++ b/lib/CMakeLists.txt
+@@ -0,0 +1,4 @@
++add_library(liblcc STATIC
++ assert.c
++ yynull.c
++ bbexit.c)
+\ No newline at end of file
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+new file mode 100644
+index 0000000..21efef9
+--- /dev/null
++++ b/src/CMakeLists.txt
+@@ -0,0 +1,56 @@
++add_executable(rcc
++ main.c)
++
++target_link_libraries(rcc PRIVATE librcc)
++
++lburg(${CMAKE_CURRENT_SOURCE_DIR}/dagcheck.md dagcheck.c)
++lburg(${CMAKE_CURRENT_SOURCE_DIR}/alpha.md alpha.c )
++lburg(${CMAKE_CURRENT_SOURCE_DIR}/mips.md mips.c )
++lburg(${CMAKE_CURRENT_SOURCE_DIR}/sparc.md sparc.c )
++lburg(${CMAKE_CURRENT_SOURCE_DIR}/x86.md x86.c )
++lburg(${CMAKE_CURRENT_SOURCE_DIR}/x86linux.md x86linux.c)
++
++add_library(librcc STATIC
++ alloc.c
++ bind.c
++ dag.c
++ dagcheck.c
++ decl.c
++ enode.c
++ error.c
++ expr.c
++ event.c
++ init.c
++ inits.c
++ input.c
++ lex.c
++ list.c
++ main.c
++ output.c
++ prof.c
++ profio.c
++ simp.c
++ stmt.c
++ string.c
++ sym.c
++ trace.c
++ tree.c
++ types.c
++ null.c
++ symbolic.c
++ gen.c
++ bytecode.c
++ alpha.c
++ mips.c
++ sparc.c
++ stab.c
++ x86.c
++ x86linux.c)
++
++target_include_directories(librcc PUBLIC .)
++
++add_library(c INTERFACE)
++target_include_directories(c INTERFACE .)
++
++add_library(profio INTERFACE)
++target_include_directories(profio INTERFACE .)
+\ No newline at end of file
diff --git a/sys-devel/lcc/lcc-2021.01.11.ebuild b/sys-devel/lcc/lcc-2021.01.11.ebuild
new file mode 100644
index 000000000..cd525f981
--- /dev/null
+++ b/sys-devel/lcc/lcc-2021.01.11.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Would allow installing gentoo on any arch.
+DESCRIPTION="The lcc retargetable ANSI C compiler"
+HOMEPAGE="https://drh.github.io/lcc/"
+SHA='3fd0acc0c3087411c0966d725a56be29038c05a9'
+SRC_URI="https://github.com/drh/lcc/archive/${SHA}.tar.gz"
+
+# Build using CMake, still missing some features.
+PATCHES=( "${FILESDIR}/add_cmake_support.patch" )
+
+LICENSE="lcc"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# What are the dependencies if any?
+#DEPEND=""
+#RDEPEND="${DEPEND}"
+#BDEPEND=""
+S="${WORKDIR}/${PN}-${SHA}"
+
+src_install() {
+ doman "doc/bprint.1"
+ doman "doc/lcc.1"
+ #into "/usr/lib/lcc"
+ dobin "${WORKDIR}/${PN}-${SHA}_build/cpp/cpp"
+ dobin "${WORKDIR}/${PN}-${SHA}_build/etc/bprint"
+ dobin "${WORKDIR}/${PN}-${SHA}_build/etc/lcc"
+ dobin "${WORKDIR}/${PN}-${SHA}_build/lburg/lburg"
+ dobin "${WORKDIR}/${PN}-${SHA}_build/src/rcc"
+}