4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
23 # Copyright (c) 2015, 2020, Oracle and/or its affiliates.
24 # Copyright (c) 2020, Andreas Wacknitz
25 # Copyright (c) 2023, Friedrich Kink
28 include ..
/..
/..
/make-rules
/shared-macros.mk
31 COMPONENT_VERSION
= 3.0
32 COMPONENT_SUMMARY
= re2c is a free and open-source lexer generator for C
, C
++ and Go.
33 COMPONENT_DESCRIPTION
= Its main goal is generating fast lexers
: at least
as \
34 fast
as their reasonably optimized hand-coded counterparts. Instead of \
35 using traditional table-driven approach
, re2c encodes the generated finite \
36 state automata directly in the form of conditional jumps and comparisons. \
37 The resulting programs are faster and often smaller than their table-driven analogues
, \
38 and they are much easier to debug and understand. re2c applies quite a few \
39 optimizations in order to speed up and compress the generated code. \
40 Another distinctive feature is its flexible interface
: instead of assuming a \
41 fixed program template
, re2c lets the programmer write most of the interface code \
42 and adapt the generated lexer to any particular environment.
43 COMPONENT_FMRI
= developer
/lexer
/re2c
44 COMPONENT_CLASSIFICATION
= Development
/Other Languages
45 COMPONENT_SRC
= $(COMPONENT_NAME
)-$(COMPONENT_VERSION
)
46 COMPONENT_ARCHIVE
= $(COMPONENT_SRC
).
tar.xz
47 COMPONENT_PROJECT_URL
= https
://re2c.org
48 COMPONENT_ARCHIVE_HASH
= sha256
:b3babbbb1461e13fe22c630a40c43885efcfbbbb585830c6f4c0d791cf82ba0b
49 COMPONENT_ARCHIVE_URL
= https
://github.com
/skvadrik
/$(COMPONENT_NAME
)/releases
/download
/$(COMPONENT_VERSION
)/$(COMPONENT_ARCHIVE
)
50 COMPONENT_LICENSE
= public domain
51 COMPONENT_LICENSE_FILE
= LICENSE
53 include $(WS_MAKE_RULES
)/common.mk
55 export PATH
=$(PATH.gnu
)
57 # Needed to get the tests to run successfully.
58 COMPONENT_PRE_CONFIGURE_ACTION
= ($(CLONEY
) $(SOURCE_DIR
) $(@D
))
60 # Needed for "gmake test" to work successfully.
61 # If SHELLOPTS is exported (as it is by the userland makefiles),
62 # then all shell options get exported to child invocations of bash,
63 # which results in test failures due to nounset and xtrace being
64 # set unexpectedly, and errors such as "$1: unbound variable" and
65 # diffs failing due to script tracing in output files.
67 COMPONENT_TEST_TRANSFORMS
= \
70 '-e "/^Testsuite/p"' \
74 # Auto-generated dependencies
75 REQUIRED_PACKAGES
+= $(GCC_RUNTIME_PKG
)
76 REQUIRED_PACKAGES
+= $(GXX_RUNTIME_PKG
)
77 REQUIRED_PACKAGES
+= system
/library