aboutsummaryrefslogtreecommitdiffstats
path: root/core/deps.mk
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-05-28Update rebar3 to 3.23.0Loïc Hoguin
2024-03-20Update rebar3 to include OTP-27 fixesLoï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-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-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-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-05-20Remove -lerl_interface also when autopatchingLoïc Hoguin
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-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.
2019-06-28Accept a list of deps to forcibly rebuild in `$(FORCE_REBUILD)`Jean-Sébastien Pédron
... in addition to the `$(force_rebuild_dep)` function. It's easier for the common use case than specify a function.
2019-06-24Rename force_rebuilding_dep to force_rebuild_depLoïc Hoguin
2019-06-24Fix the force_rebuilding_dep testLoïc Hoguin
2019-06-24Accept `$(force_rebuilding_dep)` to tune the behavior of `$(FULL)`Jean-Sébastien Pédron
By default, Erlang.mk only builds dependencies once, the first time the top-level project is compiled. A forced rebuild of all dependencies can be forced by setting the `$(FULL)` variable to a non-empty value. For developers working on the top-level project and one or more dependencies at the same time, Erlang.mk now accepts a variable/function called `$(force_rebuilding_dep)` which is called to determine if the dependency passed as the first argument should be forcibly rebuilt. It allows a developer to filter the dependencies he works on (so they are always rebuilt) from other third-party dependencies he never touches (i.e. they are only built once at the beginning). The content of `$(force_rebuilding_dep)` is expected to be a shell one-liner where the `$(1)` Make variable is set to the path to the dependency. Here is an example from the testsuite: force_rebuilding_dep = test '$(1)' = '$(CURDIR)/deps/cowlib'
2019-06-20Small correction to semver conversion for hexLoïc Hoguin
Allow a lack of space in the front. This will of course need to be handled better eventually.
2019-06-20Display Hex dependency version in the "DEP mydep (version)" lineJean-Sébastien Pédron
... exactly as it is displayed for Git-based dependencies.
2019-05-27Do git describe on the right folder for {vsn,git}Loïc Hoguin
2018-12-31Add skeleton compatibility for semver versionsLoïc Hoguin
For now, ~> is expanded to a full version only.
2018-12-11Silence some boring output in autopatched dependencies2018.12.11Loïc Hoguin
2018-12-10Optimization: reduce the number of shell commands on noopsLoïc Hoguin
2018-12-10Correct expanding of shell variables in autopatch againLoïc Hoguin
This solution should work better, previous one would sometimes expand incorrectly and fail.
2018-12-07Autopatch: allow configuring REBAR_GIT and REBAR_COMMITLoïc Hoguin
And use this in the tests to fetch Rebar only once and then clone from the local repository. This should speed up tests a little.
2018-12-07Autopatch: erl_first_files can contain xrl/yrlLoïc Hoguin
2018-12-05Allow hooking before/after autopatchLoïc Hoguin
2018-12-04Remove some repetition in some outputLoïc Hoguin
2018-12-03Don't rebuild dependencies by defaultLoïc Hoguin
Unless it's a symbolic link, it's built directly, FULL=1 is set or the file ebin/dep_built in the dependency is removed. See the documentation changes for more details. This provides immense build speed gains, for example on a RabbitMQ project it went from 10s to 1s for the 2nd+ builds.
2018-11-30Support Elixir as a dependency via ELIXIR_PATCH=1Loïc Hoguin
For example: DEPS = elixir ELIXIR_PATCH = 1 include erlang.mk A language test suite will soon be added with a test for this.