make targets are available by default. To use them you
have to be in
~/.config/emacs in a shell. They are implemented in
borg.mk, which is part of the
This target prints information about most of the following targets.
This is the default target, unless the user sets
This target prints information about all of the following targets.
This target removes all byte-code and native files of all drones and config files.
To ensure a clean build, this target should always be run before
build, so you might want to add a default target that does just
that. To do so, add this to
.DEFAULT_GOAL := all all: clean build
This target removes all byte-code files using
target on the other hand uses the lisp function
Byte-code isn’t always compatible between Emacs releases and this
target makes it possible to recover from such an incompatibility.
This target byte-compiles Borg and Compat first, followed by all
other drones in alphabetic order. After that it also byte-compiles
the user init files, like
This target byte-compiles and natively compiles Borg and Compat
first, followed by all other drones in alphabetic order. After that
it also byte-compiles the user init files, like
These targets act on most drones but exclude those for which the Git
submodule.DRONE.build-step is set. The assumption is that
those are the drones that take longer to build.
This target cleans and builds most drones.
It also cleans and builds the init files as described as for
This target removes all byte-code and native files of most drones It also remove the byte-code files of the config files.
This target builds most drones and the config files
It also builds the init files as described as for
This target removes all byte-code and native files belonging to the drone named DRONE.
This target byte-compiles the drone named DRONE.
lib/DRONE is an alias for this target; or rather
DIR is directory containing the drone submodules.
This target byte-compiles and natively-compiles the drone named DRONE.
This target removes byte-code files for init files.
This target tangles (creates)
init.org. You obviously
don’t have to use such a file if you don’t want to.
This target byte-compiles the init files specified by the make
INIT_FILES; or if that is unspecified
LOGIN is the value of the variable
If an init file does not exist, then that is silently ignored.
If you publish your
~/.config/emacs repository but would like to
keep some settings private, then you can do so by putting them in a
~/.config/emacs/LOGIN.el. The downside of this approach is
that you will have to somehow synchronize that file between your
machines without checking it into Git.
This target bootstraps
This target attempts to bootstrap the drones. To do so it runs
git submodule init,
borg.sh (which see), and
If an error occurs during the
borg.sh phase, then you can just run
that command again to process the remaining drones. The drones that
have already been bootstrapped or that have previously failed will
be skipped. If a drone cannot be cloned from any of the known
remotes, then you should temporarily remove it using
deinit lib/DRONE. When done with
borg.sh also manually run