Skip to content

Commit

Permalink
Docs (help): use language-specific program name instead of "re2c".
Browse files Browse the repository at this point in the history
Split help source file for all language backends.
  • Loading branch information
skvadrik committed Oct 11, 2024
1 parent 52c89f1 commit a9f4ffd
Show file tree
Hide file tree
Showing 15 changed files with 4,677 additions and 56 deletions.
48 changes: 33 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ ac_check_headers("io.h")
# docs (manpages and help)
set(re2c_manpage_source "${CMAKE_CURRENT_BINARY_DIR}/doc/manpage.rst")
set(re2c_help_source "${CMAKE_CURRENT_BINARY_DIR}/doc/help.rst")
set(re2c_help_bootstrap "${CMAKE_CURRENT_SOURCE_DIR}/bootstrap/src/msg/help.cc")
set(re2c_manpage_c "${CMAKE_CURRENT_BINARY_DIR}/doc/re2c.1")
set(re2c_manpage_d "${CMAKE_CURRENT_BINARY_DIR}/doc/re2d.1")
set(re2c_manpage_go "${CMAKE_CURRENT_BINARY_DIR}/doc/re2go.1")
Expand All @@ -97,12 +96,21 @@ set(re2c_manpage_python "${CMAKE_CURRENT_BINARY_DIR}/doc/re2py.1")
set(re2c_manpage_rust "${CMAKE_CURRENT_BINARY_DIR}/doc/re2rust.1")
set(re2c_manpage_v "${CMAKE_CURRENT_BINARY_DIR}/doc/re2v.1")
set(re2c_manpage_zig "${CMAKE_CURRENT_BINARY_DIR}/doc/re2zig.1")
set(re2c_help "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help.cc")
set(re2c_help_c "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2c.cc")
set(re2c_help_d "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2d.cc")
set(re2c_help_go "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2go.cc")
set(re2c_help_haskell "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2hs.cc")
set(re2c_help_java "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2java.cc")
set(re2c_help_js "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2js.cc")
set(re2c_help_ocaml "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2ocaml.cc")
set(re2c_help_python "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2py.cc")
set(re2c_help_rust "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2rust.cc")
set(re2c_help_v "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2v.cc")
set(re2c_help_zig "${CMAKE_CURRENT_BINARY_DIR}/src/msg/help_re2zig.cc")
set(re2c_rst2man "${CMAKE_CURRENT_SOURCE_DIR}/build/rst2man.py")
set(re2c_rst2txt "${CMAKE_CURRENT_SOURCE_DIR}/build/rst2txt.py")
set(re2c_splitman "${CMAKE_CURRENT_SOURCE_DIR}/build/split_man.py")
set(re2c_docs
"${re2c_help}"
"${re2c_manpage_c}"
"$<$<BOOL:${RE2C_BUILD_RE2D}>:${re2c_manpage_d}>"
"$<$<BOOL:${RE2C_BUILD_RE2GO}>:${re2c_manpage_go}>"
Expand Down Expand Up @@ -263,17 +271,18 @@ file(GLOB_RECURSE re2c_docs_sources CONFIGURE_DEPENDS
"doc/manual/*"
"${re2c_manpage_source}"
)
re2c_gen_help("${re2c_help_source}" "${re2c_help_c}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_c}")
re2c_gen_help("${re2c_help_source}" "${re2c_help}" "${re2c_help_bootstrap}")
add_custom_target(docs DEPENDS "${re2c_docs}")

# re2c
add_executable(re2c ${re2c_sources})
add_executable(re2c ${re2c_sources} "${re2c_help_c}")

# re2d
if (RE2C_BUILD_RE2D)
re2c_gen_help("${re2c_help_source}" "${re2c_help_d}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_d}")
add_executable(re2d ${re2c_sources})
add_executable(re2d ${re2c_sources} "${re2c_help_d}")
target_compile_definitions(re2d PUBLIC
"RE2C_LANG=Lang::D"
"RE2C_PROG=\"re2d\""
Expand All @@ -282,8 +291,9 @@ endif()

# re2go
if (RE2C_BUILD_RE2GO)
re2c_gen_help("${re2c_help_source}" "${re2c_help_go}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_go}")
add_executable(re2go ${re2c_sources})
add_executable(re2go ${re2c_sources} "${re2c_help_go}")
target_compile_definitions(re2go PUBLIC
"RE2C_LANG=Lang::GO"
"RE2C_PROG=\"re2go\""
Expand All @@ -292,8 +302,9 @@ endif()

# re2hs
if (RE2C_BUILD_RE2HS)
re2c_gen_help("${re2c_help_source}" "${re2c_help_haskell}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_haskell}")
add_executable(re2hs ${re2c_sources})
add_executable(re2hs ${re2c_sources} "${re2c_help_haskell}")
target_compile_definitions(re2hs PUBLIC
"RE2C_LANG=Lang::HASKELL"
"RE2C_PROG=\"re2hs\""
Expand All @@ -302,8 +313,9 @@ endif()

# re2java
if (RE2C_BUILD_RE2JAVA)
re2c_gen_help("${re2c_help_source}" "${re2c_help_java}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_java}")
add_executable(re2java ${re2c_sources})
add_executable(re2java ${re2c_sources} "${re2c_help_java}")
target_compile_definitions(re2java PUBLIC
"RE2C_LANG=Lang::JAVA"
"RE2C_PROG=\"re2java\""
Expand All @@ -312,8 +324,9 @@ endif()

# re2js
if (RE2C_BUILD_RE2JS)
re2c_gen_help("${re2c_help_source}" "${re2c_help_js}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_js}")
add_executable(re2js ${re2c_sources})
add_executable(re2js ${re2c_sources} "${re2c_help_js}")
target_compile_definitions(re2js PUBLIC
"RE2C_LANG=Lang::JS"
"RE2C_PROG=\"re2js\""
Expand All @@ -322,8 +335,9 @@ endif()

# re2ocaml
if (RE2C_BUILD_RE2OCAML)
re2c_gen_help("${re2c_help_source}" "${re2c_help_ocaml}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_ocaml}")
add_executable(re2ocaml ${re2c_sources})
add_executable(re2ocaml ${re2c_sources} "${re2c_help_ocaml}")
target_compile_definitions(re2ocaml PUBLIC
"RE2C_LANG=Lang::OCAML"
"RE2C_PROG=\"re2ocaml\""
Expand All @@ -332,8 +346,9 @@ endif()

# re2py
if (RE2C_BUILD_RE2PY)
re2c_gen_help("${re2c_help_source}" "${re2c_help_python}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_python}")
add_executable(re2py ${re2c_sources})
add_executable(re2py ${re2c_sources} "${re2c_help_python}")
target_compile_definitions(re2py PUBLIC
"RE2C_LANG=Lang::PYTHON"
"RE2C_PROG=\"re2py\""
Expand All @@ -342,8 +357,9 @@ endif()

# re2rust
if (RE2C_BUILD_RE2RUST)
re2c_gen_help("${re2c_help_source}" "${re2c_help_rust}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_rust}")
add_executable(re2rust ${re2c_sources})
add_executable(re2rust ${re2c_sources} "${re2c_help_rust}")
target_compile_definitions(re2rust PUBLIC
"RE2C_LANG=Lang::RUST"
"RE2C_PROG=\"re2rust\""
Expand All @@ -352,8 +368,9 @@ endif()

# re2v
if (RE2C_BUILD_RE2V)
re2c_gen_help("${re2c_help_source}" "${re2c_help_v}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_v}")
add_executable(re2v ${re2c_sources})
add_executable(re2v ${re2c_sources} "${re2c_help_v}")
target_compile_definitions(re2v PUBLIC
"RE2C_LANG=Lang::V"
"RE2C_PROG=\"re2v\""
Expand All @@ -362,8 +379,9 @@ endif()

# re2zig
if (RE2C_BUILD_RE2ZIG)
re2c_gen_help("${re2c_help_source}" "${re2c_help_zig}")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_zig}")
add_executable(re2zig ${re2c_sources})
add_executable(re2zig ${re2c_sources} "${re2c_help_zig}")
target_compile_definitions(re2zig PUBLIC
"RE2C_LANG=Lang::ZIG"
"RE2C_PROG=\"re2zig\""
Expand Down
84 changes: 47 additions & 37 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -130,15 +130,7 @@ re2c_SOURCES = \
$(re2c_SRC)

# autogenerated sources
re2c_GEN_HELP = src/msg/help.cc
re2c_GEN_SRC = \
$(re2c_GEN_HELP) \
src/msg/ver_to_vernum.cc \
src/options/parse_opts.cc \
src/parse/lexer.cc \
src/parse/parser.cc \
src/parse/conf_lexer.cc \
src/parse/conf_parser.cc \
src/default_syntax_c.cc \
src/default_syntax_d.cc \
src/default_syntax_go.cc \
Expand All @@ -149,7 +141,13 @@ re2c_GEN_SRC = \
src/default_syntax_python.cc \
src/default_syntax_rust.cc \
src/default_syntax_v.cc \
src/default_syntax_zig.cc
src/default_syntax_zig.cc \
src/msg/ver_to_vernum.cc \
src/options/parse_opts.cc \
src/parse/lexer.cc \
src/parse/parser.cc \
src/parse/conf_lexer.cc \
src/parse/conf_parser.cc
re2c_GEN_HDR = \
src/options/parser.h \
src/options/conf_parser.h \
Expand All @@ -158,13 +156,14 @@ re2c_GEN_HDR = \
re2c_GEN = \
$(re2c_GEN_SRC) \
$(re2c_GEN_HDR)
nodist_re2c_SOURCES = $(re2c_GEN)
nodist_re2c_SOURCES = \
$(re2c_GEN) \
src/msg/help_re2c.cc

# custom rules create headers and must go before normal rules
BUILT_SOURCES = $(re2c_GEN_SRC)

# bootstrap sources
re2c_BOOT_HELP = bootstrap/src/msg/help.cc
re2c_BOOT = \
bootstrap/doc/re2c.1 \
bootstrap/doc/re2d.1 \
Expand All @@ -177,16 +176,6 @@ re2c_BOOT = \
bootstrap/doc/re2rust.1 \
bootstrap/doc/re2v.1 \
bootstrap/doc/re2zig.1 \
$(re2c_BOOT_HELP) \
bootstrap/src/msg/ver_to_vernum.cc \
bootstrap/src/options/parse_opts.cc \
bootstrap/src/parse/lexer.cc \
bootstrap/src/parse/lexer.h \
bootstrap/src/parse/parser.cc \
bootstrap/src/parse/parser.h \
bootstrap/src/parse/conf_lexer.cc \
bootstrap/src/parse/conf_parser.h \
bootstrap/src/parse/conf_parser.cc \
bootstrap/src/default_syntax_c.cc \
bootstrap/src/default_syntax_d.cc \
bootstrap/src/default_syntax_go.cc \
Expand All @@ -197,7 +186,27 @@ re2c_BOOT = \
bootstrap/src/default_syntax_python.cc \
bootstrap/src/default_syntax_rust.cc \
bootstrap/src/default_syntax_v.cc \
bootstrap/src/default_syntax_zig.cc
bootstrap/src/default_syntax_zig.cc \
bootstrap/src/msg/help_re2c.cc \
bootstrap/src/msg/help_re2d.cc \
bootstrap/src/msg/help_re2go.cc \
bootstrap/src/msg/help_re2hs.cc \
bootstrap/src/msg/help_re2java.cc \
bootstrap/src/msg/help_re2js.cc \
bootstrap/src/msg/help_re2ocaml.cc \
bootstrap/src/msg/help_re2py.cc \
bootstrap/src/msg/help_re2rust.cc \
bootstrap/src/msg/help_re2v.cc \
bootstrap/src/msg/help_re2zig.cc \
bootstrap/src/msg/ver_to_vernum.cc \
bootstrap/src/options/parse_opts.cc \
bootstrap/src/parse/lexer.cc \
bootstrap/src/parse/lexer.h \
bootstrap/src/parse/parser.cc \
bootstrap/src/parse/parser.h \
bootstrap/src/parse/conf_lexer.cc \
bootstrap/src/parse/conf_parser.h \
bootstrap/src/parse/conf_parser.cc

# custom sources
re2c_CUSTOM_HELP = doc/help.rst
Expand Down Expand Up @@ -664,10 +673,11 @@ doc/re2%.1: $(re2c_SRC_DOC) $(re2c_SRC_DOC_EXT) $(SPLITMAN) $(RST2MAN)
&& cp $@ $(top_srcdir)/bootstrap/$@ \
&& rm $(top_builddir)/$@.rst
# generate help
$(re2c_GEN_HELP): $(re2c_CUSTOM_HELP) $(re2c_SRC_DOC_EXT) $(RST2TXT)
src/msg/help_re2%.cc: $(re2c_CUSTOM_HELP) $(re2c_SRC_DOC_EXT) $(RST2TXT)
$(AM_V_at)$(MKDIR_P) $(@D)
$(AM_V_GEN)$(PYTHON) $(RST2TXT) --variable-name=help $(top_builddir)/$(re2c_CUSTOM_HELP) $@ \
&& cp $@ $(top_srcdir)/$(re2c_BOOT_HELP)
$(AM_V_GEN)$(PYTHON) $(SPLITMAN) $(top_builddir)/$(re2c_CUSTOM_HELP) $(<D)/$(@F).rst \
&& $(PYTHON) $(RST2TXT) --variable-name=help $(<D)/$(@F).rst $@ \
&& cp $@ $(top_srcdir)/bootstrap/$@
else
docs: $(DOCS) $(re2c_GEN_HELP)
$(AM_V_at)echo "Reconfigure with --enable-docs to rebuild docs"
Expand All @@ -676,9 +686,9 @@ doc/re2%.1: bootstrap/doc/re2%.1
$(AM_V_at)$(MKDIR_P) $(@D)
$(AM_V_GEN)cp $(top_srcdir)/bootstrap/$@ $@
# copy bootstrap help
$(re2c_GEN_HELP): $(re2c_BOOT_HELP)
src/msg/help_re2%.cc: $(top_srcdir)/bootstrap/src/msg/help_re2%.cc
$(AM_V_at)$(MKDIR_P) $(@D)
$(AM_V_GEN)cp $(top_srcdir)/$(re2c_BOOT_HELP) $@
$(AM_V_GEN)cp @< $@
endif

all-local: docs $(re2c_BOOT_PARSER)
Expand Down Expand Up @@ -745,77 +755,77 @@ if WITH_DLANG
bin_PROGRAMS += re2d
re2d_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::D -DRE2C_PROG=\"re2d\"
re2d_SOURCES = $(re2c_SOURCES)
nodist_re2d_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2d_SOURCES = $(re2c_GEN) src/msg/help_re2d.cc
endif

# re2go
if WITH_GOLANG
bin_PROGRAMS += re2go
re2go_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::GO -DRE2C_PROG=\"re2go\"
re2go_SOURCES = $(re2c_SOURCES)
nodist_re2go_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2go_SOURCES = $(re2c_GEN) src/msg/help_re2go.cc
endif

# re2hs
if WITH_HASKELL
bin_PROGRAMS += re2hs
re2hs_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::HASKELL -DRE2C_PROG=\"re2hs\"
re2hs_SOURCES = $(re2c_SOURCES)
nodist_re2hs_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2hs_SOURCES = $(re2c_GEN) src/msg/help_re2hs.cc
endif

# re2java
if WITH_JAVA
bin_PROGRAMS += re2java
re2java_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::JAVA -DRE2C_PROG=\"re2java\"
re2java_SOURCES = $(re2c_SOURCES)
nodist_re2java_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2java_SOURCES = $(re2c_GEN) src/msg/help_re2java.cc
endif

# re2js
if WITH_JS
bin_PROGRAMS += re2js
re2js_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::JS -DRE2C_PROG=\"re2js\"
re2js_SOURCES = $(re2c_SOURCES)
nodist_re2js_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2js_SOURCES = $(re2c_GEN) src/msg/help_re2js.cc
endif

# re2ocaml
if WITH_OCAML
bin_PROGRAMS += re2ocaml
re2ocaml_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::OCAML -DRE2C_PROG=\"re2ocaml\"
re2ocaml_SOURCES = $(re2c_SOURCES)
nodist_re2ocaml_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2ocaml_SOURCES = $(re2c_GEN) src/msg/help_re2ocaml.cc
endif

# re2py
if WITH_PYTHON
bin_PROGRAMS += re2py
re2py_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::PYTHON -DRE2C_PROG=\"re2py\"
re2py_SOURCES = $(re2c_SOURCES)
nodist_re2py_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2py_SOURCES = $(re2c_GEN) src/msg/help_re2py.cc
endif

# re2rust
if WITH_RUST
bin_PROGRAMS += re2rust
re2rust_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::RUST -DRE2C_PROG=\"re2rust\"
re2rust_SOURCES = $(re2c_SOURCES)
nodist_re2rust_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2rust_SOURCES = $(re2c_GEN) src/msg/help_re2rust.cc
endif

# re2v
if WITH_VLANG
bin_PROGRAMS += re2v
re2v_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::V -DRE2C_PROG=\"re2v\"
re2v_SOURCES = $(re2c_SOURCES)
nodist_re2v_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2v_SOURCES = $(re2c_GEN) src/msg/help_re2v.cc
endif

# re2zig
if WITH_ZIG
bin_PROGRAMS += re2zig
re2zig_CXXFLAGS = $(AM_CXXFLAGS) -DRE2C_LANG=Lang::ZIG -DRE2C_PROG=\"re2zig\"
re2zig_SOURCES = $(re2c_SOURCES)
nodist_re2zig_SOURCES = $(nodist_re2c_SOURCES)
nodist_re2zig_SOURCES = $(re2c_GEN) src/msg/help_re2zig.cc
endif
File renamed without changes.
Loading

0 comments on commit a9f4ffd

Please sign in to comment.