1
0
mirror of https://git.savannah.gnu.org/git/gperf.git synced 2025-12-02 13:09:22 +00:00
Commit Graph

24 Commits

Author SHA1 Message Date
Bruno Haible
4939b6b615 Mark automake 1.18 as supported.
* autogen.sh: Update comment.
2025-05-31 14:27:11 +02:00
Bruno Haible
772a63e46d Optimize: Use a hash table in compute_partition.
This reduces the execution time of gperf on large inputs by ca. 30%.

* autogen.sh (GNULIB_MODULES): Add map-c++, hash-map.
* src/keyword.h: Include <stddef.h>.
(struct KeywordExt): Add fields _undetermined_chars,
_undetermined_chars_length, _undetermined_chars_hashcode.
* src/search.cc: Include gl_map.hh, gl_hash_map.h.
(Search::prepare_asso_values): Initialize the _undetermined_chars field.
(struct EquivalenceClass): Remove the fields _undetermined_chars,
_undetermined_chars_length.
(undetermined_equals, undetermined_hashcode): New functions.
(Search::compute_partition): Initialize the _undetermined_chars* fields
of all keywords. Use a hash map instead of a loop over the equivalence
classes.
(Search::find_good_asso_values): Deallocate the _undetermined_chars field.
2025-04-19 15:03:10 +02:00
Bruno Haible
46db237ecc build: Use more gnulib modules.
* autogen.sh (GNULIB_MODULES): Add getopt-gnu.
Use directory gnulib-local.
* gnulib-local/lib/getopt-pfx-ext.h.diff: New file.
* Makefile.in (SOURCE_FILES): Add it.
(distdir): Use 'mkdir -p' instead of 'mkdir'.
* lib/getopt.h: Remove file.
* lib/getopt.c: Remove file.
* lib/getopt1.c: Remove file.
* lib/Makefile.am (libgp_a_SOURCES): Remove them.
2025-04-16 23:21:12 +02:00
Bruno Haible
6ca5ea1384 build: Use more gnulib modules.
* autogen.sh (GNULIB_MODULES): Add read-file.
Copy also config.guess and config.sub.
* lib/Makefile.am (BUILT_SOURCES, MOSTLYCLEANDIRS): New variables.
(libgp_a_SOURCES): Remove getline.h, getline.cc.
* lib/getline.h: Remove file.
* lib/getline.cc: Remove file.
* src/configure.ac: Change config.h to also include ../lib/config.h.
* src/output.cc: Include <config.h> first.
* src/search.cc: Likewise.
* src/bool-array.cc: Include <config.h>.
* src/keyword.cc: Likewise.
* src/keyword-list.cc: Likewise.
* src/hash-table.cc: Likewise.
* src/main.cc: Likewise.
* src/options.cc: Likewise.
* src/positions.cc: Likewise.
* src/version.cc: Likewise.
* src/input.cc: Likewise. Include read-file.h instead of getline.h.
(Input<KT>::read_input): Use fread_file instead of get_delim.
2025-04-16 22:28:11 +02:00
Bruno Haible
ad7a21f223 build: Use gnulib-tool with a module list.
* .gitmodules: New file.
* gitsub.sh: New file, from gnulib/top/gitsub.sh.
* autopull.sh: Use gitsub.sh to check out gnulib.
* autogen.sh: Accept --skip-gnulib option. Invoke gnulib-tool, assuming
a gnulib checkout is already present.
* Makefile.devel (lib/aclocal.m4): Update reference to macros directory.
* lib/configure.ac: Likewise. Invoke gl_EARLY, gl_INIT.
* lib/Makefile.am (EXTRA_DIST, MOSTLYCLEANFILES): New variables.
Include Makefile.gnulib.
2025-04-16 22:05:58 +02:00
Bruno Haible
e60835d424 build: Use Automake in lib/.
* autopull.sh: Copy also m4/init-package-version.m4.
* autogen.sh: Mention the requirement for Automake.
* Makefile.devel (lib/aclocal.m4, lib/config.h.in, lib/Makefile.in): New
rules.
(lib/configure): Use lib/aclocal.m4 instead of the top-level aclocal.m4.
(src/config.h.in): Fix rule.
(totally-clean): Remove the new generated files.
* lib/configure.ac: Require Autoconf >= 2.70. Change AC_INIT invocation.
Invoke AC_CONFIG_MACRO_DIRS, gl_INIT_PACKAGE_VERSION, AM_INIT_AUTOMAKE,
AC_CONFIG_HEADERS. Don't invoke AC_MAKE_SET, AC_PROG_CPP,
AC_PROG_CXXCPP, AC_PROG_INSTALL.
* lib/Makefile.am: New file.
* lib/Makefile.in: Remove file.
* Makefile.in (IMPORTED_FILES): Remove lib/filename.h.
2025-04-16 22:02:43 +02:00
Bruno Haible
ca5217fc79 Mark autoconf 2.72 as supported.
* autogen.sh: Update comment.
2023-12-30 10:08:54 +01:00
Bruno Haible
64940479e3 Split autogen.sh into autopull.sh and autogen.sh.
* autopull.sh: New file, based on autogen.sh.
* autogen.sh: Remove code that was moved to autopull.sh.
* Makefile.in (SOURCE_FILES): Add autogen.sh.
2022-07-17 16:15:08 +02:00
Bruno Haible
1862c6e57a Add support for reproducible builds.
Suggested by Richard Purdie <richard.purdie@linuxfoundation.org> in
<https://lists.gnu.org/archive/html/bug-gperf/2022-07/msg00000.html>.

* autogen.sh: Import also lib/filename.h.
* Makefile.in (IMPORTED_FILES): Add lib/filename.h.
* src/options.cc: Include filename.h.
(Options::print_options): Print only the base name of the program name.
* tests/*.exp: Update.
2022-07-05 07:51:46 +02:00
Bruno Haible
b0f961a9b3 Mark Autoconf 2.71 as supported.
* autogen.sh: Update comment.
2021-01-30 14:46:54 +01:00
Bruno Haible
556e87b5c5 Mark Autoconf 2.70 as supported.
* autogen.sh: Update comment.
2020-12-09 01:18:42 +01:00
Bruno Haible
4706572628 Update after gnulib changed.
* configure.ac (AC_PREREQ): Require Autoconf >= 2.64.
* doc/configure.ac (AC_PREREQ): Likewise.
* lib/configure.ac (AC_PREREQ): Likewise.
* src/configure.ac (AC_PREREQ): Likewise.
* tests/configure.ac (AC_PREREQ): Likewise.
* autogen.sh: Update comment.
2020-08-30 02:06:20 +02:00
Bruno Haible
9f4f11ab13 Update after gnulib changed. 2018-10-24 11:59:45 +02:00
Bruno Haible
b3c3566855 Prefer https URLs where possible. 2018-09-17 16:53:00 +02:00
Bruno Haible
825b077bf4 Fix copyright years. 2017-02-22 15:32:38 +01:00
Bruno Haible
f4ad699ac5 Make autogen.sh more user-friendly. 2016-12-30 00:56:10 +01:00
Bruno Haible
b4b58ca38d Make Makefile.devel more useful for the users of the released tarball. 2016-12-03 15:35:24 +01:00
Bruno Haible
a4e455187f Fix typo in autogen.sh. 2016-11-25 19:53:04 +01:00
Bruno Haible
bf93ebd28e Remove old infrastructure for building with MSVC. 2012-07-01 18:05:30 +02:00
Bruno Haible
dd4c596245 Support for building with MSVC much like for Unix. 2012-07-01 17:59:59 +02:00
Bruno Haible
238fa3bf09 Move build infrastructure files to build-aux/. 2012-07-01 16:44:26 +02:00
Bruno Haible
73f48ca14d Distribute install-sh. 2012-07-01 16:29:28 +02:00
Bruno Haible
9702bc0bff Remove files distributed via gnulib from version control. 2012-07-01 16:22:19 +02:00
Bruno Haible
008922a2e9 Remove autotools generated files from version control. 2012-07-01 16:04:36 +02:00