Commit Graph

131 Commits

Author SHA1 Message Date
Henrik Lissner
bf3d35c287
Clean up makefile & update it to match bin/doom 2018-05-24 16:05:52 +02:00
Henrik Lissner
f058505306
New bin/doom (eventual replacement for make)
This commit adds bin/doom, which acts as the middle man that make once
was (and will stay for a while, though the documentation will shift away
from using it). It does everything the previous make interface did, but
is faster and more flexible. bin/doom should eventually replace the
makefile.

bin/doom also makes it easier to run Doom outside of ~/.emacs.d and
~/.doom.d with, for example:

  bin/doom run -p ~/.other.doom.d/ -e ~/.other.emacs.d

bin/doom.cmd is included for Windows users, but I don't recommend using
it yet. It hasn't been tested nor have I ever written a batch script
before.

Also update init.example.el with new defaults.
2018-05-21 01:38:17 +02:00
Henrik Lissner
9b0dbe20b0
doom//refresh-packages -> doom//reload-packages (consistency) 2018-05-16 18:26:56 +02:00
Henrik Lissner
a126450280
Fix make info 2018-05-16 18:26:31 +02:00
Henrik Lissner
595109209a
Fix doom//reload & optimize make all task 2018-05-16 00:11:14 +02:00
Henrik Lissner
c74dbfd1e6
make quickrun: improve feedback 2018-05-10 22:39:49 +02:00
Henrik Lissner
cea270d950
Add recompile step to make quickstart 2018-05-10 22:39:35 +02:00
ar1a
d9b06962be
Add recompile (re) alias to Makefile 2018-05-09 08:38:57 +10:00
Henrik Lissner
e22c176195
make quickstart: run make afterwards 2018-05-07 19:26:31 +02:00
Henrik Lissner
36e626f7a3
Add make quickstart 2018-04-04 06:12:18 -04:00
Henrik Lissner
01bd58ff3e
Recompile on make upgrade 2018-04-04 04:13:25 -04:00
Henrik Lissner
b1ddcf1787
Fix locality of makefile commands 2018-04-04 00:01:11 -04:00
Henrik Lissner
a4eaf7c865
Add make U alias for make upgrade 2018-04-03 22:35:46 -04:00
Henrik Lissner
9017879ff4
Add make upgrade
A convenience command for upgrading to the latest version of Doom.
2018-04-03 19:53:23 -04:00
Henrik Lissner
2933142d40
💥 add default init.el
Doom is moving away from supporting direct modification of its source
files, or private modules within Doom's source tree. Instead,
customizations should be relegated to ~/.doom.d/ (or ~/.config/doom/,
doom will respect XDG conventions if it sees this directory).

As suchm a default init.el is now supplied, which will break your custom
~/.emacs.d/init.el!

The quick fix:

  mkdir ~/.doom.d
  mv ~/.emacs.d/init.el ~/.doom.d/init.el

~/.doom.d/early-init.el is also available if you need to change crucial
settings before Doom loads anything. init.el will still be loaded before
any other module is.
2018-04-03 19:50:34 -04:00
Henrik Lissner
d85a2a6af0
Refactor noninteractive init; set doom-emacs-dir internally 2018-04-03 19:46:22 -04:00
Henrik Lissner
e7331e9026
Ensure load-prefer-newer = t in non-interactive Emacs #479 2018-03-24 17:05:06 -04:00
Henrik Lissner
d8f2abbeab
Fix make info 2018-03-20 20:44:59 -04:00
Henrik Lissner
627280c5da
make run now supports additional args via the ARGS envvar 2018-03-15 00:20:40 -04:00
Henrik Lissner
3e0e5bcad8
Refactor makefile
For better cross platform compatibility (rely on Emacs; nofewer bash
commands) and correctness (keep tasks synchronous, even when make is
called with -j|--jobs)
2018-03-12 13:32:02 -04:00
Henrik Lissner
0425724571
Major rewrite of doom module API
+ Fix #446, where the .local/packages.el cache was generated with
  a faulty load-path.
+ Entries in the doom-modules hash table are now plists, containing
  :flags and :path, at least.
+ Add doom-initialize-modules for loading module config.el files.
+ Add doom-module-get for accessing this plist, e.g.

    (doom-module-get :some module)         ; returns plist
    (doom-module-get :some module :flags)  ; return specific property

+ Replace doom-module-enable with doom-module-set, e.g.

    (doom-module-set :some module :flags '(+a +b +c))

+ Remove doom-module-flags (use doom-module-get instead)
+ Rename doom-module-enabled-p with doom-module-p
+ Replace doom-module-path with doom-module-find-path and
  doom-module-expand-file. The former will search for an existing module
  or file in doom-modules-dirs. The latter will expand the path from
  whatever path is stored in doom-modules.
+ Replace doom-module-paths with doom-module-load-path
+ Changed doom! to allow for nested doom! calls by delaying the loading
  of module config.el files until as late as possible.
+ Refactor doom-initialize-packages to only ihitialize package state
  (i.e. doom-packages, package-alist, and quelpa-cache), rather than its
  previous behavior of loading all Doom files (and sometimes all module
  files). This is faster and more predictable.
2018-03-02 19:14:45 -05:00
Henrik Lissner
c3fb916435
Use native wildcard+dir over shell find in makefile
OS-agnostic. Only depends on GNU Make.
2018-02-11 00:51:21 -05:00
Henrik Lissner
2e5bfe623a
Add 'make info' task 2018-02-10 17:27:15 -05:00
Henrik Lissner
1fda25ce9a
Force make commands to traverse symlinks too 2018-01-29 23:23:48 -05:00
Henrik Lissner
fe3db542ed
Fix ERT not running properly on make test 2017-12-10 15:37:32 -05:00
Henrik Lissner
5f166d9297
Add --quick to Emacs batch calls (experimental) 2017-11-07 13:09:24 +01:00
Henrik Lissner
2516a123d6
Use -- to delimit arguments 2017-11-07 13:08:19 +01:00
Henrik Lissner
c45e2c4918
General & minor refactor+cleanup 2017-11-05 19:54:44 +01:00
Henrik Lissner
95a5b46dc5
New // naming convention + refactor doom management functions 2017-11-05 19:54:43 +01:00
Henrik Lissner
27cd8d8432
Removed colon from makefile task names 2017-09-23 13:48:07 +02:00
Henrik Lissner
9f6b90cf13
Add convenience task aliases to makefile 2017-09-15 14:37:19 +02:00
Henrik Lissner
5346670ab0 Add doom/recompile-packages (make compile:elpa)
If you upgrade (or downgrade) Emacs, there may be byte-compilation
errors. This works around that.
2017-07-28 19:21:00 +02:00
Henrik Lissner
5ae8dd3159
Refactor makefile 2017-07-09 22:55:06 +02:00
Henrik Lissner
b0ef2569f3
Rename core + module byte-compilation make tasks
+ make core => make compile:core
+ make MODULE/SUBMODULE => make compile:MODULE/SUBMODULE
2017-07-09 22:53:50 +02:00
Henrik Lissner
1ff0c2a8e7
doom/clean-compiled => doom/clean-compiled-files 2017-07-09 22:52:28 +02:00
Henrik Lissner
27b344b64a
Rename doom/clean-cache => doom/reset (+ make reset) 2017-07-09 22:51:36 +02:00
Henrik Lissner
c8e138ff51
Rename bin/doctor => bin/doom-doctor 2017-07-09 22:48:54 +02:00
Carlos Garcia
dd5d530f61 Remove repeated flags in run's Makefile rule. 2017-07-07 12:33:28 +02:00
Henrik Lissner
c7f42c4706
Fix make run using incorrect emacs.d #142 2017-07-06 16:42:35 +02:00
Henrik Lissner
9fdc449976
Remove update from make default task 2017-06-29 02:40:29 +02:00
Henrik Lissner
cbfb3eeda4
Fix, rename & move doom/run-tests => doom-run-tests 2017-06-24 17:15:22 +02:00
Henrik Lissner
77ce7d11b4
Remove forced DEBUG on make testi:* 2017-06-15 15:19:03 +02:00
Henrik Lissner
9c93c453e8
Reorganize unit-tests and test workflow
+ Moved unit tests out of tests/ and into their respective modules.
+ Rewrite makefile and added these tasks:
  + <MODULE>/<SUBMODULE> -- byte-compile a specific module
  + test:<MODULE>/<SUBMODULE> -- runs tests for a specific module
  + testi -- run tests in an interactive session of Emacs (WIP)
  + run -- opens an Emacs session with this config; useful when it is in
    a non-standard location.
2017-06-14 21:15:19 +02:00
Henrik Lissner
4be5ff1092
Redo unit-test initialization 2017-06-09 01:09:19 +02:00
Henrik Lissner
73fb6b0800
Simplify make core & make <module-path> tasks 2017-06-09 01:09:19 +02:00
Henrik Lissner
cd078e5e5c
Refactor make core (more flexible) 2017-06-07 17:20:29 +02:00
Henrik Lissner
3ca9d45216 Add generic %.el => %.elc make task 2017-06-07 16:01:35 +02:00
Henrik Lissner
9c5788baf0 Add make clean-pcache task 2017-06-07 16:01:35 +02:00
Henrik Lissner
9acdbc8552 Add make <MODULE PATH> task for compiling modules 2017-06-07 16:01:21 +02:00
Henrik Lissner
a7dc2bc83c Rename make compile-lite => make core 2017-06-07 16:01:21 +02:00