aboutsummaryrefslogtreecommitdiffstats
path: root/core
AgeCommit message (Collapse)Author
12 hoursProperly handle asdf-installed Elixirelixir-related-fixesLoïc Hoguin
17 hoursDon't fail Mix autopatch if Elixir is disabled but it has a MakefileLoïc Hoguin
3 daysNative Elixir supportTyler Hughes
This commit also includes a way to completely disable Eunit as that is generally desirable for Elixir-only projects.
7 daysAdd missing core_native_path call to Hex fetchLoïc Hoguin
Was failing on Windows in lz4-erlang without it.
2024-11-26Make $(ERL) fasterLoïc Hoguin
While using "-mode minimal" removes too much that we need (such as inet_db), we can safely disable the distribution by default and limit the number of processes and sockets to a maximum of 1024.
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.