aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* build: remove nvim as a dependency of unittests (#21903)dundargoc2023-01-19
| | | | | | Unittests rely on nvim-test and not nvim, leading to both nvim and nvim-test being compiled each time a file is changed. Furthermore, the dependencies are already specified by CMakeLists.txt and shouldn't need to be specified in Makefile as it's only meant to be syntactic sugar.
* build: enable cmake workflow presets (#21860)dundargoc2023-01-19
| | | | | | | | | | | | | Workflow presets allows combining configure, build, test and packaging steps and makes it possible to run everything in a single command. So cmake --preset iwyu cmake --build --preset iwyu instead becomes cmake --workflow --preset iwyu Workflow presets requires at least cmake version 3.25 to use.
* build: remove clint error suppression #21782dundargoc2023-01-13
| | | | | | | | | | | | | | | Fix remaining clint errors and remove error suppression completely. Rename the lint targets to align with the established naming convention: - lintc-clint lints with clint.py. - lintc-uncrustify lints with uncrustify. - lintc runs both targets. lintc is also provided as a make target for convenience. After this change we can remove these files: https://github.com/neovim/doc/tree/gh-pages/reports/clint https://github.com/neovim/doc/blob/main/ci/clint-errors.sh
* build: allow IWYU to fix includes for all .c filesdundargoc2022-11-15
| | | | | | | | | | Allow Include What You Use to remove unnecessary includes and only include what is necessary. This helps with reducing compilation times and makes it easier to visualise which dependencies are actually required. Work on https://github.com/neovim/neovim/issues/549, but doesn't close it since this only works fully for .c files and not headers.
* build: remove python linting #20851dundargoc2022-10-29
| | | | | | This includes both the `lintpy` make target and for CI. We're actively trying to reduce our python usage, so this only seems to give warnings for unimportant things such as exceeding the line after deleting python code.
* fix(build): "make clean" failsJustin M. Keyes2022-10-04
| | | | | | | | | | | | Problem: "make clean" fails since 03bc23de36c8. make -C runtime/doc clean make[1]: *** No rule to make target `clean'. Stop. make: *** [clean] Error 2 Solution: Update the "clean" target.
* feat(docs): gen_help_html.luaJustin M. Keyes2022-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The :help docs HTML generated is driven by an old awk script `runtime/doc/makehtml.awk` that is hard to maintain (ad hoc parser and no one has touched it in decades) and has bugs like: - https://github.com/neovim/neovim.github.io/issues/96 - https://github.com/neovim/neovim.github.io/issues/97 Solution: Use Lua + treesitter (https://github.com/vigoux/tree-sitter-vimdoc) to generate :help docs HTML. Also validates tag links. fix https://github.com/neovim/neovim.github.io/issues/96 fix https://github.com/neovim/neovim.github.io/issues/97 TODO: - delete doc_html build task - delete runtime/doc/Makefile - delete makehtml.awk - delete maketags.awk OUTPUT: $ nvim -V1 -es --clean +"lua require('scripts.gen_help_html')" output dir: /…/neovim.github.io/_site/doc/ generated (207 errors): api.txt => api.html generated (122 errors): arabic.txt => arabic.html generated (285 errors): autocmd.txt => autocmd.html generated (641 errors): builtin.txt => builtin.html generated (623 errors): change.txt => change.html generated (65 errors): channel.txt => channel.html generated (353 errors): cmdline.txt => cmdline.html generated (3 errors): debug.txt => debug.html generated (28 errors): deprecated.txt => deprecated.html generated (193 errors): dev_style.txt => dev_style.html generated (460 errors): develop.txt => develop.html generated (19 errors): diagnostic.txt => diagnostic.html generated (57 errors): diff.txt => diff.html generated (818 errors): digraph.txt => digraph.html generated (330 errors): editing.txt => editing.html generated (368 errors): eval.txt => eval.html generated (184 errors): fold.txt => fold.html generated (61 errors): ft_ada.txt => ft_ada.html generated (0 errors): ft_ps1.txt => ft_ps1.html generated (20 errors): ft_raku.txt => ft_raku.html generated (5 errors): ft_rust.txt => ft_rust.html generated (41 errors): ft_sql.txt => ft_sql.html generated (110 errors): gui.txt => gui.html generated (79 errors): hebrew.txt => hebrew.html generated (17 errors): help.txt => index.html generated (104 errors): helphelp.txt => helphelp.html generated (0 errors): if_cscop.txt => if_cscop.html generated (23 errors): if_perl.txt => if_perl.html generated (16 errors): if_pyth.txt => if_pyth.html generated (9 errors): if_ruby.txt => if_ruby.html generated (216 errors): indent.txt => indent.html generated (634 errors): index.txt => vimindex.html generated (320 errors): insert.txt => insert.html generated (265 errors): intro.txt => intro.html generated (9 errors): job_control.txt => job_control.html generated (0 errors): lsp-extension.txt => lsp-extension.html generated (214 errors): lsp.txt => lsp.html generated (311 errors): lua.txt => lua.html generated (592 errors): luaref.txt => luaref.html generated (798 errors): luvref.txt => luvref.html generated (663 errors): map.txt => map.html generated (228 errors): mbyte.txt => mbyte.html generated (228 errors): message.txt => message.html generated (0 errors): mlang.txt => mlang.html generated (761 errors): motion.txt => motion.html generated (4 errors): nvim.txt => nvim.html generated (226 errors): nvim_terminal_emulator.txt => nvim_terminal_emulator.html generated (988 errors): options.txt => options.html generated (567 errors): pattern.txt => pattern.html generated (15 errors): pi_gzip.txt => pi_gzip.html generated (10 errors): pi_health.txt => pi_health.html generated (27 errors): pi_msgpack.txt => pi_msgpack.html generated (2177 errors): pi_netrw.txt => pi_netrw.html generated (41 errors): pi_paren.txt => pi_paren.html generated (9 errors): pi_spec.txt => pi_spec.html generated (218 errors): pi_tar.txt => pi_tar.html generated (0 errors): pi_tutor.txt => pi_tutor.html generated (235 errors): pi_zip.txt => pi_zip.html generated (265 errors): print.txt => print.html generated (31 errors): provider.txt => provider.html generated (335 errors): quickfix.txt => quickfix.html generated (572 errors): quickref.txt => quickref.html generated (109 errors): recover.txt => recover.html generated (14 errors): remote.txt => remote.html generated (14 errors): remote_plugin.txt => remote_plugin.html generated (351 errors): repeat.txt => repeat.html generated (23 errors): rileft.txt => rileft.html generated (12 errors): russian.txt => russian.html generated (6 errors): scroll.txt => scroll.html generated (106 errors): sign.txt => sign.html generated (347 errors): spell.txt => spell.html generated (784 errors): starting.txt => starting.html generated (1499 errors): syntax.txt => syntax.html generated (23 errors): tabpage.txt => tabpage.html generated (257 errors): tagsrch.txt => tagsrch.html generated (31 errors): term.txt => term.html generated (0 errors): testing.txt => testing.html generated (96 errors): tips.txt => tips.html generated (57 errors): treesitter.txt => treesitter.html generated (71 errors): uganda.txt => uganda.html generated (74 errors): ui.txt => ui.html generated (87 errors): undo.txt => undo.html generated (17 errors): userfunc.txt => userfunc.html generated (1 errors): usr_01.txt => usr_01.html generated (89 errors): usr_02.txt => usr_02.html generated (293 errors): usr_03.txt => usr_03.html generated (46 errors): usr_04.txt => usr_04.html generated (96 errors): usr_05.txt => usr_05.html generated (54 errors): usr_06.txt => usr_06.html generated (20 errors): usr_07.txt => usr_07.html generated (241 errors): usr_08.txt => usr_08.html generated (130 errors): usr_09.txt => usr_09.html generated (50 errors): usr_10.txt => usr_10.html generated (33 errors): usr_11.txt => usr_11.html generated (32 errors): usr_12.txt => usr_12.html generated (22 errors): usr_20.txt => usr_20.html generated (75 errors): usr_21.txt => usr_21.html generated (8 errors): usr_22.txt => usr_22.html generated (3 errors): usr_23.txt => usr_23.html generated (163 errors): usr_25.txt => usr_25.html generated (13 errors): usr_26.txt => usr_26.html generated (84 errors): usr_27.txt => usr_27.html generated (173 errors): usr_28.txt => usr_28.html generated (285 errors): usr_29.txt => usr_29.html generated (280 errors): usr_30.txt => usr_30.html generated (11 errors): usr_31.txt => usr_31.html generated (13 errors): usr_32.txt => usr_32.html generated (156 errors): usr_40.txt => usr_40.html generated (134 errors): usr_41.txt => usr_41.html generated (35 errors): usr_42.txt => usr_42.html generated (19 errors): usr_43.txt => usr_43.html generated (60 errors): usr_44.txt => usr_44.html generated (13 errors): usr_45.txt => usr_45.html generated (1 errors): usr_toc.txt => usr_toc.html generated (69 errors): various.txt => various.html generated (68 errors): vi_diff.txt => vi_diff.html generated (437 errors): vim_diff.txt => vim_diff.html generated (296 errors): visual.txt => visual.html generated (181 errors): windows.txt => windows.html generated 119 html pages total errors: 23862 invalid tags: 537
* build: add formatting targets for c and lua files (#19488)dundargoc2022-08-02
| | | | | | | | | | | | The targets will only format files that have been changed in current branch compared to the master branch. This includes unstaged, staged and committed files. Add following make and cmake targets: formatc - format changed c files formatlua - format changed lua files format - run formatc and formatlua Remove scripts/uncrustify.sh as this deprecates it.
* build: move lint target to cmake #19169dundargoc2022-07-01
| | | This will ensure less verbose output and faster linting.
* build: rename build-related dirsJustin M. Keyes2022-06-28
| | | | | | | | | | | | | | Problem: Dirs "config", "packaging", and "third-party" are all closely related but this is not obvious from the layout. This adds friction for new contributors. Solution: - rename config/ to cmake.config/ - rename test/config/ to test/cmakeconfig/ because it is used in Lua tests: require('test.cmakeconfig.paths'). - rename packaging/ to cmake.packaging/ - rename third-party/ to cmake.deps/ (parallel with .deps/)
* build: add a cmake target for all used linters #18543dundargoc2022-06-09
| | | | | | | | | * build: move the logic for linters to cmake Cmake is our source of truth. We should have as much of our build process there as possible so everyone can make use of it. * build: remove redundant check for ninja generator The minimum cmake version as of writing this is 3.10, which has ninja support.
* ci: lint runtime with styluaChristian Clason2022-05-09
|
* ci(commitlint): use -u NONE instead of --cleanDundar Göc2022-03-27
| | | | | I get a weird error about syntax.vim not being installed when using --clean when running it locally.
* build: enhance MakefileEisuke Kawashima2021-09-21
| | | | | | | - fix regression where `-j` is not passed to ninja (39c886551bf8323b63938f5dee5beb650c61f02b, #15708) - enable to pass `-l` (load) to ninja as well - s/BUILD_TYPE/CMAKE_GENERATOR/
* build(lint): commit linterJustin M. Keyes2021-09-19
|
* refactor(Makefile): use built-in make commands #15708kylo2522021-09-19
| | | | | | | | | | | | | | | | | | | Changes to the main Makefile: - add `MAKEFILE_PATH` and `MAKEFILE_DIR` that are set with native commands - add `NVIM_PRG` - rename `BUILD_TYPE` to `CMAKE_GENERATOR` to align with CMake naming - remove the misleading `BUILD_CMD` and use `BUILD_TOOL` instead Add the following phony target to quickly test the changes ```make debug-print: @echo makefile path: $(MAKEFILE_PATH) @echo makefile dir: $(MAKEFILE_DIR) @echo build dir: $(BUILD_DIR) @echo cmake generator tool: $(CMAKE_GENERATOR) @echo build-tool: $(BUILD_TOOL) @echo nvim-prg: $(NVIM_PRG) ```
* build(lint): commit linter #15620dundargoc2021-09-19
|
* build: Inherit -n and -jN flags if Ninja #12219Eisuke Kawashima2020-05-01
|
* oldtest: support for running by filename (#11473)Daniel Hahler2019-12-02
| | | | | | | | | | | | Follow-up to 8969efca8 (Vim patch 8.1.0723) NOTE: This changes the main entrypoint for running single oldtest files to not use/require the ".res" extension anymore. But it is handled for B/C. Adds a phony rule to run oldtest by filename. Not going through "$(MAKE)" avoids GNUmakefile being used then (which I use for WIP things), and it seems like SINGLE_MAKE should be used anyway probably.
* vim-patch:8.1.0723: cannot easily run specific test when in src/testdirJan Edmund Lazo2019-11-22
| | | | | | | | | | | | Problem: Cannot run specific test when in src/testdir the same was as in the src directory. Solution: Move build rule to src/testdir/Makefile. https://github.com/vim/vim/commit/ec50401e1e1357a1340b3c92109fd4860e38a8ac Developer can omit '.res' suffix now. TEST_FILE=test_syntax make oldtest or make -C src/nvim/testdir test_syntax
* build: add shlint target for shellcheck (#11350)Jan Edmund Lazo2019-11-09
|
* vim-patch:8.1.1213: "make clean" in top dir does not cleanup indent test outputDaniel Hahler2019-09-18
| | | | | | | Problem: "make clean" in top dir does not cleanup indent test output. Solution: Clean the indent test output. Do not rely on the vim executable for that. (closes vim/vim#4307) https://github.com/vim/vim/commit/e13a3901cae0afb4d2af30d497696af08029fd81
* tests: use runtime from build for doc/tags with :help (#10479)Daniel Hahler2019-08-28
| | | | | | | | | | | | This is better practice in general, and allows to remove the "helptags ALL" hacks. Ref: https://github.com/neovim/neovim/issues/8824 Ref: https://github.com/neovim/neovim/commit/f1b67c3453c * Makefile: fix dependencies with regard to helptags - use the file as the main target to avoid unnecessary triggering - use "make oldtest" on Travis to ensure it gets built
* build: Makefile: use _opt_pylint [ci skip] (#10720)Daniel Hahler2019-08-08
| | | | | | A separate rule it clearer, and allows for `make --keep-going lint` in general later. Ref: https://github.com/neovim/neovim/pull/10714
* build: lint: fix exit with optional pylintDaniel Hahler2019-08-07
| | | | Ref: https://github.com/neovim/neovim/pull/10714#issuecomment-518932355
* build: move pylint to Makefile, optional with "make lint" (#10714)Daniel Hahler2019-08-06
| | | | | This avoids errors when using "make lint", but "flake8" is not available. We do not want to install it then via third-party. On CI "make pylint" is used explicitly.
* Makefile: only use pattern rules with BUILD_TYPE=Ninja (#10687)Daniel Hahler2019-08-04
| | | | | | While not doing any harm with "Unix Makefiles", they do not work there as-is. Therefore just do not use them then. Followup to #10366 (7f6ff829a).
* Makefile: use pattern rules for build/.deps [ci skip] (#10366)Daniel Hahler2019-07-30
| | | | This allows for `make build/bin/nvim`, `make build/src/nvim/auto/funcs.generated.h` etc.
* ci: pylint target via flake8Daniel Hahler2019-07-29
| | | | Ref: https://github.com/neovim/neovim/pull/10631#issuecomment-515756591
* build: fix handling of install prefix with CMAKE_EXTRA_FLAGS (#10530)Daniel Hahler2019-07-17
| | | | | | | Append `CMAKE_INSTALL_PREFIX` to any given `CMAKE_EXTRA_FLAGS` always. Regressed in 5031e3298. Fixes https://github.com/neovim/neovim/issues/10524.
* Improve luacheck setup [skip appveyor]Daniel Hahler2019-07-04
| | | | | | | | - Move .luacheckrc to root, add read_globals=vim - Simplify lualint target, run it on all lua files - Lint preload.lua, but ignore W211 - Remove testlint target, included in lualint (and lint) - Clean up .luacheckrc
* build: Fix rule of `build/.ran-third-party-cmake` #10402Eisuke Kawashima2019-07-03
| | | In order that `$(DEPS_BUILD_DIR)/Makefile` exists under parallel make
* Makefile: CMAKE_INSTALL_PREFIX: skip parsing CMAKE_EXTRA_FLAGS if set (#10374)Daniel Hahler2019-06-30
| | | | | Fixes: > Recursive variable 'CMAKE_EXTRA_FLAGS' references itself (eventually). Stop.
* Makefile: move `all` target to the top [ci skip] #10375Daniel Hahler2019-06-30
| | | Fixes "make: Nothing to be done for 'checkprefix'." after 5031e3298.
* Makefile: revisit/improve checkprefix handling (#10348)Daniel Hahler2019-06-29
| | | | | | | | | | | | | | Main improvement: do not error out, but re-run CMake in case CMAKE_INSTALL_PREFIX changed, and only check it for "install". - only look at CMAKE_EXTRA_FLAGS via shell if not empty - add CMAKE_INSTALL_PREFIX to CMAKE_EXTRA_FLAGS (not CMAKE_FLAGS), to override it being set in CMAKE_EXTRA_FLAGS from local.mk - use an empty "checkprefix" target if CMAKE_INSTALL_PREFIX is not provided - skip checking of cached value without build/.ran-cmake; it will be run then anyway - only use it with "install" target; it is only relevant there - do not error, but re-run CMake (by removing the stamp file)
* Makefile: fix regression with "make functionaltest-lua" (#10346)Daniel Hahler2019-06-26
| | | Regressed in 69eb4fa0c.
* build: Makefile: fix distclean [ci skip] (#10336)Daniel Hahler2019-06-25
| | | | | | | | Do not run CMake in build before deleting it unnecessarily: % make distclean test -d build && ninja -C build clean || true ninja: Entering directory `build' [0/1] Re-running CMake...
* build: Makefile: handle "rm -rf .deps" (#10305)Daniel Hahler2019-06-24
| | | | | | | | | | - make `build/.ran-third-party-cmake` depend on `$(DEPS_BUILD_DIR)`. It still creates `build` there as a side-effect, which does not belong there really, but is OK for now. - add an explicit target for `$(DEPS_BUILD_DIR)` (".deps"), only with USE_BUNDLED=1 (the default). This makes it easier to rebuild deps cleanly, by using `rm -rf .deps; make`.
* Makefile: fix trailing space in BUILD_CMD #10312Daniel Hahler2019-06-23
| | | | | Only append flag for verbosity with ninja if non-empty. Fixes the trailing space with `ninja -C .deps`.
* build: do not pass empty CMAKE_INSTALL_PREFIXJustin M. Keyes2019-03-19
| | | | | ref #9748 ref #9743
* build: pass CMAKE_INSTALL_PREFIX explicitly #9748Justin M. Keyes2019-03-17
| | | | | On some (but not all) systems this works implicitly. fixes #9743
* build: checkprefix: skip if empty #9624Daniel Hahler2019-02-17
| | | | | | | | | | | | | | | This regressed in 3b473bb14f9f452461016c7042949a23499df629: ``` % make 'CMAKE_BUILD_TYPE=RelWithDebInfo' 'CMAKE_EXTRA_FLAGS=-DCMAKE_INSTALL_PREFIX=/vim-build/neovim/neovim/master -DENABLE_JEMALLOC=OFF' 'DEPS_CMAKE_FLAGS=-DUSE_BUNDLED=OFF' error: CMAKE_INSTALL_PREFIX '/vim-build/neovim/neovim/master' does not match cached value '' Run this command, then try again: cmake build -DCMAKE_INSTALL_PREFIX=/vim-build/neovim/neovim/master make: *** [Makefile:169: checkprefix] Error 1 ``` It was checking before for non-empty also [1]. 1: https://github.com/neovim/neovim/pull/9621/files#diff-b67911656ef5d18c4ae36cb6741b7965L22
* build/Makefile: validate prefix for specific targets (#9621)Justin M. Keyes2019-02-17
| | | | | | `clean` and `distclean` should not check CMAKE_INSTALL_PREFIX. ref #9615 Helped-by: bruce-hill
* build/Makefile: check CMAKE_INSTALL_PREFIXJustin M. Keyes2019-02-16
| | | | closes #9615
* build: fix `doc_html` targetJustin M. Keyes2019-01-04
| | | | ref 24f2cc55a83d #9430
* build: `make helphtml`Justin M. Keyes2018-11-05
|
* build: Unify USE_BUNDLED, USE_BUNDLED_DEPS (#9046)Justin M. Keyes2018-09-24
| | | It's confusing that the Makefile uses a different name than CMake.
* cmake: add "generated-sources" targetBjörn Linse2018-09-06
| | | | | | | This is intended to be used with source introspection tools like clangd, where it would useful to regenerate headers and source files, which introspection results depend on, without making a full rebuild which takes much longer time than just generating headers.
* build: respect $DEPS_BUILD_DIRJustin M. Keyes2018-03-11
| | | | | Without this, the CI_TARGET=lint travis job cant't find the cached deps (in $HOME/nvim-deps), nor can it update the cache.
* ci/travis: use ninja instead of makeJustin M. Keyes2018-03-11
|