This package depends on the two previously ITP'd packages, kelbt and colm, so 
it 
probably can't be reviewed easily until those are in the distro.

ragel is in Debian and Fedora:

     https://packages.debian.org/source/stretch/ragel
     https://apps.fedoraproject.org/packages/ragel

My cygport file and patch are attached.

The build requires a bootstrapping procedure, as explained in the cygport file. 
For maximum transparency, I propose to first make a preliminary unannounced 
release 1 using the attached cygport file as is.  Once that's in the distro, 
I'll install it, bump the release to 2, uncomment the "bootstrap=1" line, and 
make a new release.

Package files for release 1:

http://sanibeltranquility.com/cygwin/x86/release/ragel/ragel-7.0.0.11-1-src.tar.xz
http://sanibeltranquility.com/cygwin/x86/release/ragel/ragel-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86/release/ragel/ragel-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86/release/ragel/libragel-devel/libragel-devel-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86/release/ragel/libragel-devel/libragel-devel-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86/release/ragel/ragel-debuginfo/ragel-debuginfo-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86/release/ragel/ragel-debuginfo/ragel-debuginfo-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86/release/ragel/libragel0/libragel0-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86/release/ragel/libragel0/libragel0-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/ragel-7.0.0.11-1-src.tar.xz
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/ragel-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/ragel-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/libragel-devel/libragel-devel-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/libragel-devel/libragel-devel-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/ragel-debuginfo/ragel-debuginfo-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/ragel-debuginfo/ragel-debuginfo-7.0.0.11-1.tar.xz
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/libragel0/libragel0-7.0.0.11-1.hint
http://sanibeltranquility.com/cygwin/x86_64/release/ragel/libragel0/libragel0-7.0.0.11-1.tar.xz

License: MIT and LGPLv2+

Ken

NAME="ragel"
VERSION=7.0.0.11
RELEASE=1

inherit vim

HOMEPAGE="http://www.colm.net/open-source/${NAME}";
SRC_URI="https://www.colm.net/files/${NAME}/${NAME}-${VERSION}.tar.gz";
PATCH_URI="ragel-no_undefined.patch"

CATEGORY="Devel"
SUMMARY="Finite state machine compiler"
DESCRIPTION="Ragel compiles executable finite state machines from regular
languages.  Ragel targets C, C++, and ASM.  Ragel state machines can
not only recognize byte sequences as regular expression machines do,
but can also execute code at arbitrary points in the recognition of a
regular language.  Code embedding is done using inline operators that
do not disrupt the regular language syntax."

PKG_NAMES="ragel libragel0 libragel-devel"

ragel_CONTENTS="usr/bin/*.exe usr/share"

libragel0_SUMMARY="${SUMMARY} (runtime)"
libragel0_CONTENTS="usr/bin/cyg*-0.dll"

libragel_devel_SUMMARY="${SUMMARY} (devel)"
libragel_devel_CONTENTS="usr/include usr/lib"

DEPEND="colm libcolm-devel"

# The build of a fully-functional ragel package requires some version
# of ragel.exe.  Until that's available, we can build and install a
# less functional package for bootstrapping.

# The following line should be commented out for the initial build,
# and uncommented after the bootstrap ragel is installed.

# bootstrap=1
if defined bootstrap
then
    DEPEND+=" ragel kelbt"
fi

src_compile() {
    cd ${S}
    cygautoreconf
    lndirs
    cd ${B}
    cygconf
    cygmake
}

src_install() {
    cd ${B}
    cyginstall
    cd ${S}
    viminto syntax
    dovim ragel.vim
}
--- origsrc/ragel-7.0.0.11/src/Makefile.am      2018-05-18 12:42:37.000000000 
-0400
+++ src/ragel-7.0.0.11/src/Makefile.am  2018-11-14 17:35:09.132763500 -0500
@@ -35,6 +35,8 @@ data_DATA = ragel.lm
 #
 libfsm_la_CPPFLAGS = -I$(top_srcdir)/aapl
 
+libfsm_la_LDFLAGS = -no-undefined
+
 dist_libfsm_la_SOURCES = \
        buffer.h codegen.h \
        actloop.h actexp.h \
@@ -61,36 +63,40 @@ nodist_libfsm_la_SOURCES = \
 #
 libragel_la_CPPFLAGS = -I$(top_srcdir)/aapl -DBINDIR='"@bindir@"'
 
+libragel_la_LDFLAGS = -no-undefined
+
+libragel_la_LIBADD = libfsm.la $(COLM_LD)
+
 dist_libragel_la_SOURCES = \
        parsedata.h parsetree.h inputdata.h pcheck.h reducer.h rlscan.h load.h \
        parsetree.cc parsedata.cc inputdata.cc load.cc reducer.cc
 
-#
-# ragel program.
-#
-ragel_CPPFLAGS = -I$(top_srcdir)/aapl
-
-dist_ragel_SOURCES = \
-       main.cc
-
-nodist_ragel_SOURCES = \
+nodist_libragel_la_SOURCES = \
        parse.c rlreduce.cc
 
-ragel_LDADD = libragel.la libfsm.la $(COLM_LD)
-ragel_DEPENDENCIES = libragel.la libfsm.la $(COLM_LIBDEP)
-
 BUILT_SOURCES = \
        version.h \
        parse.c rlreduce.cc
 
 if WITH_RAGEL_KELBT
-nodist_ragel_SOURCES += \
+nodist_libragel_la_SOURCES += \
        rlscan.cc rlparse.cc rlparse.h 
 
 BUILT_SOURCES += \
        rlscan.cc rlparse.cc rlparse.h 
 endif
 
+#
+# ragel program.
+#
+ragel_CPPFLAGS = -I$(top_srcdir)/aapl
+
+dist_ragel_SOURCES = \
+       main.cc
+
+ragel_LDADD = libragel.la libfsm.la $(COLM_LD)
+ragel_DEPENDENCIES = libragel.la libfsm.la $(COLM_LIBDEP)
+
 version.h: Makefile
        echo '#define VERSION "$(PACKAGE_VERSION)"' > version.h
        echo '#define PUBDATE "$(PUBDATE)"' >> version.h

Reply via email to