Commits

Author Commit Message Labels Comments Date
ccorrodi
add simple missing dependency detection This commit contains a lot of new code, the main feature is a simple missing dependency detection function (in src/ocamlmake.ml). Two new command line flags for src/main.ml are present, -cf for specifying a command file (which will be used in the future for unit testing the generation of the command list), and -x for executing the missing dependency detection for given targets.
Branches
develop
ccorrodi
add patch for GNU make misc/cmdfile.patch patches GNU make 3.82. When running the patched make, a file called commands.txt is opened in the current working directory. All executed commands (including commands without output, using @) are written to commands.txt. This results in a file that contains only the commands that are executed and no standard output from the commands themselves.
Branches
develop
ccorrodi
add unix library for all targets
Branches
develop
ccorrodi
replace command variables later The last commit mad all tests fail, because command variable were replaced when building the ast. Now, we only replace it during the "generate_commands" function, meaning that functions like printing the ast or printing the database still show the variable names. Printing the database with the variable names fixes the failing tests.
Branches
develop
ccorrodi
variable replacement and command list generating The main changes in this commit are the replacing of variables (as listed in a make database variable section) in the commands of a rule. In addition, one can specify a target and the -d switch to generate the list of commands, based on the rules parsed from the database (while the "command section" or "stdout section" on top of the database is ignored). While we parse pattern rules, we do not use…
Branches
develop
ccorrodi
print command section in debug, add exceptions - debug.ml: print command section, ast should be printed completely now - exception.ml: contains exceptions (currently TodoException for unimplemented stuff and BadMatchException for when a pattern is matched that should never be matched) - lexer.mll: parse commands without newline - ocamlmake.ml: throw BadMatchException
Branches
develop
ccorrodi
refactor debug functions into own module - add files debug.ml and debug.mli which are used for all debug functions - ast.ml contains only functions that format strings in the make database format - rename pp_* functions to debug_* - print file section in debug_database
Branches
develop
ccorrodi
fix non exhaustive pattern-matching
Branches
develop
ccorrodi
set next fields for rules
Branches
develop
ccorrodi
new module Util, update command parsing - The util.ml module contains general functions, such as string manipulation functions (currently, there is only a regex replace function). - In rules, leading tabs are removed from the command (only one), and readded when printed in the make database format. The command section on the other hand is parsed and stored as is (with all the leading tabs).
Branches
develop
ccorrodi
add various debug output related changes - ast.ml: - add functions for debug output - update rule handling - move string functions (indentation) around - ast.mli: - expose rule fields - new debug function - main.ml: - add command line flag to toggle debug output - ocamlmake.ml: - add debug function - introduce skeleton for post-processing ast - ocamlmake.mli: - expose debug function - parser.mly: - note on linking rules (previo…
Branches
develop
ccorrodi
simple command-line utility The main program prints takes a single filename and possible options. In order to use a generated file using "make -f generated.mkdb sometarget", the option "-c false" allows to omit printing the parsed / generated (later) commands.
Branches
develop
ccorrodi
pretty print using command line utility Add an option (-p) to the main program to pretty print an ast.
Branches
develop
ccorrodi
replace another fold_right by String.concat
Branches
develop
ccorrodi
replace some fold_right calls with String.concat
Branches
develop
ccorrodi
test makefile from the i3 window manager
Branches
develop
ccorrodi
documentation and refactoring
Branches
develop
ccorrodi
change ast to represent multiple databases The ast can now represent a file that contains multiple databases (as seen in test/vim.mkdb). A type database is introduced that contains the items previously in type ast. The type ast is now simply a database list.
Branches
develop
ccorrodi
update parser and lexer - resolve multiple shift/reduce conflicts - allow multiple databases in one file (for an example, see test/vim.mkdb)
Branches
develop
ccorrodi
add make database for vim The vim project folder contains multiple makefiles. Simply calling make requires descending in various folders and call make there again. As a result, "make -p" contains multiple databases.
Branches
develop
ccorrodi
fix bug in finding mkdb files
Branches
develop
ccorrodi
test all .mkdb files in the test/ directory
Branches
develop
ccorrodi
add "all", "all-byte", and "all-native" targets
Branches
develop
ccorrodi
add new test make database
Branches
develop
ccorrodi
fix s_of_rule whitespace issues
Branches
develop
ccorrodi
fix bug in makefile with linking libs
Branches
develop
ccorrodi
parse and print rules and files sections
Branches
develop
ccorrodi
update parsing of rules in lexer and parser
Branches
develop
ccorrodi
pretty print command section, improve testsuite
Branches
develop
ccorrodi
fix diff function when test fails
Branches
develop
  1. Prev
  2. Next