aboutsummaryrefslogtreecommitdiffstats
path: root/core
AgeCommit message (Collapse)Author
2024-11-25Fix conversion of git_subdir to git-subfolderRoger Lipscombe
Fixes #1004
2024-11-21Fix infinite loop when fetching amqp_client deps via Hexfix-amqp_clientLoïc Hoguin
2024-11-21Reinstate dep_name as it's still used by RabbitMQ pluginsLoïc Hoguin
It will be removed at a later date.
2024-11-19Use short variable names when possibleLoïc Hoguin
We use $1 instead of $(1) or $p instead of $(p) when possible, except when building variable names (pkg_$(p)_name for example, but also $(dep_fetch_$(1))).
2024-11-19Remove legacy fetch methodLoïc Hoguin
This method dates back from the beginnings of Erlang.mk and should not have been used for around a decade by now. Adding "git" to the offending dep lines is enough to upgrade.
2024-11-19Remove deprecated dep_fetch, dep_name, dep_repo, dep_commitLoïc Hoguin
Use the query_* equivalents instead.
2024-11-19Use hex_core to fetch Hex packagesLoïc Hoguin
This should both be more solid and more secure.
2024-11-19CI: Also test with CACHE_DEPS=1Loïc Hoguin
2024-11-13Improve rebar.config generationimprove-rebar-configLoïc Hoguin
We now provide the version as a tagged tuple indicating whether this is a branch, tag or ref. This should help rebar automatically upgrade dependencies, and remove an annoying warning when rebar is used. In order to detect the type of version the dependencies must be available, therefore the rebar.config target now depends on the deps target. To test this the Cowboy package version had to be changed from 1.0.4 to master. This is a breaking change, but I do not expect too many people to still use 1.0.4.
2024-10-01Initial beam-cache implementationLoïc Hoguin
When switching between normal build and running tests it takes a while for modules to be rebuilt. With the beam-cache the files are saved and can be restored when switching between contexts. This greatly speeds up the context switching.
2024-06-21Don't use the shell in core_findLoïc Hoguin
Instead of calling `find` we use $(wildcard ...) and some logic on top to find all the files we are looking for. This is more efficient and greatly helps reduce re-build times when there's little to be done, particularly when many dependencies are involved.
2024-05-28Update rebar3 to 3.23.0Loïc Hoguin
2024-03-20Update rebar3 to include OTP-27 fixesLoïc Hoguin
2024-02-16Remove unnecessary file:pid2name callLoïc Hoguin
2023-08-31Tweak c_src autopatch output on macOSLoïc Hoguin
2023-08-31Fix autopatch on WindowsLoïc Hoguin
The bug was introduced in dcc2741 when erl_first_files autopatch was reworked.
2023-06-21Fix verbosity regressionTyler Hughes
2023-05-16Remove support for HiPE and ErlLLVMLoïc Hoguin
2023-05-16Fix autopatch of shared libraries on DarwinLoïc Hoguin
Thanks to David.Gao / DavidAlphaFox for the original patch.
2023-05-15Use $(CACHE_DIR)/git instead of $(CACHE_DIR)/gitsLoïc Hoguin
2023-05-15Rename __fetch_git to dep_cache_fetch_gitLoïc Hoguin
2023-05-15Cleaned up dep cache tests, added hex test and fixed a bugLoïc Hoguin
2023-05-15Allow git + hex deps to be cached to XDG_CACHE_HOMETyler Hughes
2023-05-12Ignore files with '#' in their names, e.g. emacs lock filesMartin Björklund
Also remove usage of grep for ignoring files since find can do this directly.
2023-05-12Support optional applicationsjdamanalo
Loïc: Added more info to guide.
2023-05-09Autopatch: Include $LBLIBS when compiling c_src filesLoïc Hoguin
2023-05-09Autopatch: better handle COMPILE_FIRST/erl_first_filesLoïc Hoguin
This is still a bit hackish but it appears that some projects have wrong erl_first_files entries (module exists but not at the location configured) and so we have to do a bit of manipulation before we can find the module. We also need to be cautious about .yrl/.xrl because their corresponding .erl files may not exist in the repository before compilation yet can be listed in erl_first_files.
2023-05-05Autopatch: add support for >= hex versionsLoïc Hoguin
We use the same strategy as ~= we try to look for the version in the .lock file and if we can't find it we guess for now.
2023-05-05Deps: Add a project-specific patch for hutLoïc Hoguin
Hut has both a Makefile and erlang.mk but the default target does not build the project. To fix a few packages we have a special patch HUT_PATCH that will call the appropriate target.
2023-05-05Autopatch: Move to Rebar3Loïc Hoguin
2023-05-05Autopatch: Improve hex version detection for ~>Loïc Hoguin
2023-05-05Autopatch: support rebar3 plugin-style C compile hooksLoïc Hoguin
2023-05-04Remove rabbit/amqp_client packages and patchesLoïc Hoguin
We expect users to fetch these projects from hex.pm now and the packages no longer worked.
2023-05-04Autopatch: do not export ERLC_OPTSLoïc Hoguin
Otherwise some dependencies may get the wrong ERLC_OPTS and may end up with invalid or duplicate options.
2022-05-31Add -Werror by default againLoïc Hoguin
It was removed by mistake.
2022-05-30Revamp and document Xref supportLoïc Hoguin
2022-04-26Fix .app.src.script autopatch when no .app.src is present2022.04.26Loïc Hoguin
Thanks Luke Bakken for the report!
2021-03-26core/deps.mk: Support Rebar lock files with version "1.2.0"Jean-Sébastien Pédron
This is the case in erlang-systemd [1]. As far as I can tell, the format is the same for the bits Erlang.mk is interested in. The testsuite is expanded to use version 0.6.0 of erlang-systemd. [1] https://github.com/rabbitmq/erlang-systemd
2020-12-04Revert "fix: replace perl usage with coreutils"Loïc Hoguin
This reverts commit 1762278d9654e5f90ab587cbde7bac0e2b220014.
2020-11-30fix: replace perl usage with coreutilspinicarus
2020-07-20Fix `query-deps` for projects without depsLuke Bakken
To reproduce: ``` git clone https://github.com/rabbitmq/inet_tcp_proxy.git cd inet_tcp_proxy $ make BRANCH=master QUERY='name fetch_method repo version absolute_path' query-deps /bin/sh: /home/lbakken/development/rabbitmq/umbrella/deps/inet_tcp_proxy/.erlang.mk/recursive-tmp-deps-231462.log: No such file or directory rm: cannot remove '/home/lbakken/development/rabbitmq/umbrella/deps/inet_tcp_proxy/.erlang.mk/recursive-tmp-deps-231462.log': No such file or directory make: *** [erlang.mk:7642: /home/lbakken/development/rabbitmq/umbrella/deps/inet_tcp_proxy/.erlang.mk/recursive-deps-list.log] Error 1 ```
2020-06-22core/test.mk: Abort build if a test file fails to compileJean-Sébastien Pédron
In commit c55d0dcd6182983521d4ab34478cfe4b093edb12, the recipe was improved to only rebuild out-of-date test files (not everything as it was the case before). However in the process, the exit status of the Erlang compiler was not checked anymore, leading to build failures in the test directory to be ignored. This patch fixes this bug.
2020-05-20Remove -lerl_interface also when autopatchingLoïc Hoguin
2020-04-21core/test.mk: Rebuild out-of-date test modules onlyJean-Sébastien Pédron
... instead of always rebuilding all of them each time a testsuite is executed. The only exception is when a Makefile was modified: like for main source files, test modules are all recompiled in this case.
2020-04-14Fix encoding issues when generating the makedep fileLoïc Hoguin
In some cases the input will be parsed as UTF-8 and converted to "characters" and in others it won't and will be processed as bytes (for example, `erl -oldshell` will do that). This means that encoding-dependent characters such as "é" only need to be converted to binary in the former case. To detect which situation we are in we check what the value of "é" is. If it is [233] then the eval input was parsed as UTF-8 and converted to characters. Otherwise we assume it wasn't.
2020-04-12core/test.mk: Build application before its testsJean-Sébastien Pédron
This fixes compiler warnings if modules under `tests` implement behaviors defined in `src`. This way, we make sure behaviors are compiled before the test modules.
2020-03-04Add the query-deps family of targets2020.03.05Loïc Hoguin
The query-deps, query-doc-deps, query-rel-deps, query-test-deps and query-shell-deps targets go through dependencies and print some information about them: $ make query-deps ... cowboy: cowlib git https://github.com/ninenines/cowlib 2.7.3 cowboy: ranch git https://github.com/ninenines/ranch 1.7.1 $ make query-deps QUERY="name repo version absolute_path" ... cowboy: cowlib https://github.com/ninenines/cowlib 2.7.3 /path/to/deps/cowlib cowboy: ranch https://github.com/ninenines/ranch 1.7.1 /path/to/deps/ranch The query-deps target is recursive; the others aren't. This mirrors the behavior when fetching and building dependencies. The full list of options is: QUERY="fetch_method name repo version extra absolute_path" When an option has no corresponding value, "-" will be printed. For example most fetch methods do not have extra information to print. When there is extra information, the value will be prefixed with a descriptive name. For example: package-name=uuid_erl This commit also introduces changes to deps handling: some of the functions for querying will now be used directly. In the future the goal is to remove the old dep_name, dep_commit, etc. functions and replace their usage with the new query functions. Custom fetch methods should implement query functions in order to have information about the relevant dependencies printed properly.
2020-02-25Replace +A0 with +A1Loïc Hoguin
In recent versions there has been issues with disabling +A completely. Starting in OTP-23 the VM will automatically use +A1 when the +A0 argument is given, as well.
2020-02-11Support Hex packages with name different from application2020.02.11Loïc Hoguin
Properly fixes partisan.
2020-02-11Add yet another dep spec format for rebar.config autopatchLoïc Hoguin
Fixes partisan.