summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Updated include directive and added test cases.experimental/gsoc/astVishal Gupta2018-08-0411-26/+70
| | | | | | | After parsing the file given in the include directive, the tree generated is printed to standard input using Data::Dumper and this is evaled in the program having include directive. As a result the tree gets appended to the parent AST.
* Added case for testing recursive automake at multiple depthVishal Gupta2018-08-042-1/+3
|
* Updated make install to make parser work from any directoryVishal Gupta2018-08-046-37/+53
| | | | | | | | | | *Added parser.pl to /usr/bin so that it can work from any directory Modules are copied to /tmp/parser and the location is updated in parser.pl. This is for development purpose only and it can be changed in future. *Added a basedir variable so that recursive automake can work to arbitrary depth
* Added support for include directiveVishal Gupta2018-07-255-33/+49
| | | | Added lexer and parser support for include directive to handle fragements.
* Subdirs implementationVishal Gupta2018-07-128-37/+40
| | | | | | Added support to recursively call parser.pl on the directories defined in SUBDIRS variable. Added test case.
* Updated parser to tokenize and parse line by line.Vishal Gupta2018-07-066-48/+46
| | | | | | Lexer tokenizes the current line whenever it is called by parser. "end" token is returned when EOF is encountered. Currently assumes that newline is their before EOF.
* Added support for SUBDIRS and nested if/else statementVishal Gupta2018-07-026-27/+64
|
* Updated multiline statement and conditional statements.Vishal Gupta2018-06-2415-89/+158
| | | | | | | | * Added new test cases. * Added support for += . * Updated conditional statements to handle multiple statements inside * if/else block. * Prints error when comment follow trailing backslash.
* Added support for Conditional statement and Test files.Vishal Gupta2018-06-1616-129/+312
| | | | | | | | | | | | | | | * automake.y : Updated to handle conditional statement and empty variable * defination * parser.pl : Updated to read from standard input and write to standard * output. In debug mode, output on standard error stream. * Converter.pl : Updated to handle empty grammar definitions. * Tree.pm : Updated to handle conditional statements and write output to * standard output * Makefile : Added action test. * test.sh : Read all text files in t directory and generates corresponding * standard output * Makefile : Added action test. * t/*.txt : test files.
* Added support for multiline and comments.Vishal Gupta2018-06-118-89/+287
| | | | | | | | * automake.y : Updated the grammar to handle multiline statements and two * type of comments. * Lexer.pm, Tree.pm, parser.pl : Updated to support new features. * input.txt : Updated to test combination of multiline statements and * comments.
* Update Converter.pl to read write from Standard I/OVishal Gupta2018-06-043-24/+38
| | | | | | *Converter.pl: Updated the file to use input/output redirection in Makefile. *Makefile: Updated Makefile to support IO in converter.pl
* Use the ‘perl’ found in the PATH environment variableMathieu Lirzin2018-06-021-3/+3
|
* Remove generated ‘.png’ filesMathieu Lirzin2018-06-023-1/+2
|
* Automatic conversion of bison graph to parsing table.Vishal Gupta2018-06-017-41/+140
| | | | | | | | | * Converter.pl: Converts graph generated by bison (automake.dot) to table used by the parser. * Makefile: Executes the parser on input.txt file. build target builds the grammar and executes Converter.pl * Lexer.pm: Return "newline" as token instead of "\n". * automake.y, automake.png: Updated to handle "newline" token.
* Implemented Lexer, Parser and AST module.vishalgupta972018-05-269-0/+368
| | | | | | | | | | | | | The grammar seperates the automake rule into left side and right side. It divides the left side according to the primaries like PROGRAMS, LIBRARIES. * Lexer.pm: Lexer module. Converts a string into tokens. * ParserTable.pm: Contains the parsing table. * automake.y: Contains the grammar. * automake.png: Contains the state transition diagram generated by the grammar. * Tree.pm: Contains submodules for creating tree nodes. * parser.pl: Implements the parser.
* test-driver.scm: Add "--coverage" optionMathieu Lirzin2018-03-251-9/+28
| | | | | | | * contrib/test-driver.scm: When 'coverage' option is enabled, run tests in the debug vm and trace coverage data. (%options): Add 'coverage'. (show-help): Display option.
* test-driver.scm: Don't guess script name from "--test-name"Mathieu Lirzin2018-03-241-16/+22
| | | | | | | | | 'primitive-load' is used instead of 'load-from-path' since the script is given as a relative file name. For unknown reason, using 'load' fails with GNU Mcron test suite when running 'make distcheck'. * contrib/test-driver.scm: Get the actual script name directly from the command line. Handle the case where that argument is missing.
* test-driver.scm: Inline 'main' procedureMathieu Lirzin2018-03-241-24/+23
| | | | | | | Having a main procedure involves passing the '-e main' command-line argument to 'guile' which makes the test driver a bit less easy to use. * contrib/test-driver.scm (main): Delete. Move body to the top-level.
* maint: Use 'before-save-hook' in "contrib/test-driver.scm"Mathieu Lirzin2018-03-111-3/+3
| | | | | | | | | | This a follow-up to commit 6bab5b26a1241b0e0edd058d2a921989f9a1747c. Use 'before-save-hook' instead of 'write-file-functions' to match what is done in other scripts. * contrib/test-driver.scm: Update hook usage and use 'UTC0' timezone instead of 'UTC'.
* bin: Rely only on the shebang lineMathieu Lirzin2018-03-112-13/+2
| | | | | | | | | | Previously ‘automake’ and ‘aclocal’ were handling the case of being interpreted as a Shell script by using a hack leveraging the fact that Shell and Perl has a compatible syntax intersection allowing those scripts to launch ‘perl’ from the shell. * bin/aclocal.in: Remove cryptic launching hack. * bin/automake.in: Likewise.
* maint: Post-release administriviaMathieu Lirzin2018-03-113-3/+7
| | | | | | * NEWS: Add header line for next release. * configure.ac (AC_INIT): Bump version number to 1.16a. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16.1v1.16.1Mathieu Lirzin2018-03-113-4/+4
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* maint: Update files from upstream with 'make fetch'Mathieu Lirzin2018-03-117-20/+16
| | | | | | | | | | * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise.
* install-sh: avoid (low risk) race in "/tmp"Pavel Raiskup2018-03-112-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | Ensure that nobody can cross privilege boundaries by pre-creating symlink on '$tmpdir' destination directory. Just testing 'mkdir -p' by creating "/tmp/ins$RANDOM-$$/d" is not safe because "/tmp" directory is usually world-writeable and "/tmp/ins$RANDOM-$$" content could be pretty easily guessed by attacker (at least for shells where $RANDOM is not supported). So, as the first step, create the "/tmp/ins$RANDOM-$$" without -p. This step would fail early if somebody wanted catch us. Systems that implement (and have enabled) fs.protected_symlinks kernel feature are not affected even without this commit. References: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455 https://bugzilla.redhat.com/show_bug.cgi?id=1140725 * lib/install-sh: Implement safer 'mkdir -p' test by running '$mkdirprog $mkdir_mode "$tmpdir"' first. * NEWS: Update. Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
* automake: Don't rely on List::Util to provide 'none'Mathieu Lirzin2018-03-085-3/+51
| | | | | | | | | | | | | This change fixes automake bug#30631. This removes the use of List::Util which is not supported by Perl 5.6, by reimplementing the 'none' subroutine. * lib/Automake/General.pm (none): New subroutine. * bin/automake.in (handle_single_transform): Use it. * t/pm/General.pl: New test. * t/list-of-tests.mk (perl_TESTS): Add it. * NEWS: Update.
* python: Support future python version up to 3.9Mathieu Lirzin2018-03-082-4/+10
| | | | | | | | | | | | | | | This change fixes automake bug#28160. Since AM_PYTHON_PATH macro takes no maximum version argument, there is no need to generate _AM_PYTHON_INTERPRETER_LIST dynamically, like what was previously done by the reverted commit 1d60fb72168e62d33fe433380af621de64e22f23. We could rely on M4 to generate this list statically however this is likely to be a complex solution that would not improve maintainability. * m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add 'python3.7', 'python3.8', and 'python3.9'. * NEWS: Update.
* maint: write-file-hooks -> before-save-hookPaul Eggert2018-03-0611-20/+20
| | | | | | | | | | | write-file-hooks is obsolete since Emacs 22.1 (released June 2007) and it's time to use the recommended replacement. Problem reported by Glenn Morris in: https://lists.gnu.org/r/bug-gnulib/2018-03/msg00008.html * contrib/tap-driver.pl, lib/compile, lib/depcomp, lib/install-sh: * lib/mdate-sh, lib/missing, lib/mkinstalldirs, lib/py-compile: * lib/tap-driver.sh, lib/test-driver, lib/ylwrap: Update hook usage for files where Automake is the canonical source.
* Revert "python: Generate python interpreter list"Mathieu Lirzin2018-03-031-17/+4
| | | | This reverts commit 1d60fb72168e62d33fe433380af621de64e22f23.
* maint: Post-release administriviaMathieu Lirzin2018-02-253-3/+7
| | | | | | * NEWS: Add header line for next release. * configure.ac (AC_INIT): Bump version number to 1.16a. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* Merge branch 'release'Mathieu Lirzin2018-02-2514-794/+641
|\
| * version 1.16v1.16Mathieu Lirzin2018-02-253-6/+6
| | | | | | | | | | | | * configure.ac (AC_INIT, APIVERSION): Bump version number to 1.16. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
| * maint: Update INSTALLMathieu Lirzin2018-02-251-161/+159
| | | | | | | | * INSTALL: Use single quotes.
| * tests: Remove tests intended only for the 'next' branchMathieu Lirzin2018-02-252-191/+0
| | | | | | | | | | | | | | | | | | | | The commit 199e7a445040270fa5ef67623c56cde40d765199 "Prefer https: URLS" which is a cherry-pick of b09d945b795ab9deed2bc457289cd5f41c506b50 from 'next' to 'master' has mistakenly copied some tests only present on the 'next' branch. * t/am-prog-mkdir-p.sh: Delete. * t/txinfo-no-split.sh: Likewise.
| * maint: Update files from upstream with 'make fetch'Mathieu Lirzin2018-02-258-436/+476
|/ | | | | | | | | | | * lib/config.guess: Update * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gendocs_template: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise.
* python: Avoid exceeding command-line length limitMathieu Lirzin2018-02-181-16/+9
| | | | | | | | | | | | | With Python implementations following PEP-3174, a large number of files are installed in the ‘__pycache__’ directory. As a consequence “t/instmany-python.sh” test was failing due to the ‘uninstall-pythonPYTHON’ target deleting installed files in a single ‘rm’ command. Doing that in multiple steps avoids exceeding the command-line length limit. This fixes bug#30335. * lib/am/python.am (uninstall-%DIR%PYTHON): For byte-compiled files installed in '__pycache__' directory, uninstall them by batch of 40. [?FIRST?] (am__pep3147_tweak): Adapt.
* tests: Don't check 'Getopt::Long' corner casesMathieu Lirzin2018-02-183-14/+3
| | | | | | | | | | | | | | Depending on the installed 'Getopt::Long' perl module, command-line handling may vary a bit. As a consequence we prefer not to check command-line corners cases. This change fixes automake bug#29638. * t/aclocal.sh (am_create_testdir): Don't expect "--versi" to be interpreted as "--version". * t/automake-cmdline.tap: Don't expect "--vers" to be interpreted as "--version" and things after "--" to be interpreted as file arguments. (do_check): Display the actual command output. * t/maken3.sh (check_targets): "--force" is not a documented option, so don't use it.
* python: Generate python interpreter listMathieu Lirzin2018-02-041-4/+17
| | | | | | | | | | | | _AM_PYTHON_INTERPRETER_LIST is used by AM_PYTHON_PATH to autodetect Python programs whose names correspond to a specific Python version (e.g. python3.6). Previously this list was updated manually. The automatic support of newer versions (up to 4.0 excluded) fixes bug#28160. * m4/python.m4 (am_py_min_ver, am_py_max_ver): New macros. (_AM_PYTHON_INTERPRETER_LIST): Generate this list instead of hard-coding it. Implementation is taken from GNU Pyconfigure.
* tests: Improve comment in 'txinfo-many-output-formats.sh'Mathieu Lirzin2018-01-191-1/+2
| | | | | * t/txinfo-many-output-formats.sh: Explain why AM_MAKEINFOFLAGS is set with an invalid option.
* tests: Distribute DEJATOOL files manuallyMathieu Lirzin2018-01-191-0/+1
| | | | | | | | "t/check12.sh" was failing because files declared in DEJATOOL are not automatically distributed. The test running 'make distcheck' couldn't succeed since some scripts were not distributed. This fixes automake bug#26738. * t/check12.sh (Makefile.am): Distribute files from DEJATOOL.
* tests: Let 'ltorder.sh' run successfully with Guix dynamic loaderMathieu Lirzin2018-01-191-0/+6
| | | | | * t/ltorder.sh: Set GUIX_LD_WRAPPER_ALLOW_IMPURITIES environment variable to unlock the dynamic loader provided by GNU Guix.
* tests: Fix various 'flex' compilation issuesMathieu Lirzin2018-01-193-3/+9
| | | | | | | | | | * t/lex-clean-cxx.sh (parsefoo.lxx): Declare 'yylex': (mainfoo.cc): Make declaration compatible with C++. * t/lex-depend-cxx.sh (joe.ll): Declare 'yylex'. * t/silent-many-languages.sh (Makefile.am, sub/Makefile.am): Link -lfl only with 'fo2' and 'sub/ba2' which are the only program needing it. (foo5.l): Define 'isatty'. (foo6.y): Declare 'yylex'.
* tests: Check GCS conformance of 'aclocal' command-line interfaceMathieu Lirzin2018-01-181-1/+15
| | | | | * t/aclocal.sh: Check that 'aclocal' support the --version and --help command-line options.
* contrib: Add Guile custom test driver using SRFI-64 test harnessMathieu Lirzin2018-01-182-0/+216
| | | | | | | This sets a home for a script already used by GNU Guix and GNU Mcron. * contrib/test-driver.scm: New test driver script. * NEWS: Update.
* maint: Document how to use Guix for Automake developmentMathieu Lirzin2018-01-181-0/+11
| | | | * HACKING <Setting the development environment>: New part.
* automake: Add default libtool_tag to cppasmKhem Raj2018-01-051-0/+1
| | | | | | | * bin/automake.in (register_language): Define default libtool tag to be CC since CPPASCOMPILE is using CC to call assembler. Copyright-paperwork-exempt: yes
* doc: Document the portability of various tar formats betterBruno Haible2018-01-041-6/+9
| | | | | * doc/automake.texi (List of Automake options): Document the portability of the tar-ustar and tar-pax options better.
* missing: Update displayed URLsSimon Sobisch2018-01-042-4/+4
| | | | | | | * lib/missing (perl_URL): Use HTTPS. (flex_URL): Use new Github homepage. Copyright-paperwork-exempt: yes
* maint: Update copyright years to 2018Mathieu Lirzin2018-01-041442-1445/+1444
| | | | This update has been made with 'make update-copyright'.
* maint: Exclude ".dir-locals.el" from copyright updatesMathieu Lirzin2018-01-041-0/+1
| | | | * maintainer/maint.mk (files_without_copyright): Add ".dir-locals.el".
* port elisp-compilation support to emacs-23.1 and newerJim Meyering2017-12-164-3/+55
| | | | | | | | | | | | | | | | | In May of 2017, emacs.master support for using the long-deprecated byte-compile-dest-file function was removed, and that removal broke automake's elisp-compiling rule for any .el file not in the current directory. In emacs-23.1 (July 2009) byte-compile-dest-file-function became the recommended way to adjust the byte-compiler's destination. The removed functionality has been restored for Emacs-26, albeit with dissuasive diagnostics warning about the imminent removal of this functionality. It will be removed in Emacs-27. * lib/am/lisp.am (.el.elc): Use byte-compile-dest-file-function, rather than byte-compile-dest-file. Also, use "-f batch-byte-compile '$<'" rather than open-coding it, as suggested by Glenn Morris. * t/lisp-readonly-srcdir.sh: New file, to test for the above. * t/list-of-tests.mk (handwritten_TESTS): Add it. * NEWS (Bugs fixed): Mention this problem.