branch: main commit 18de3e1b6bdbbf2c5ceb271368d453c357f3adc1 Author: Stefan Monnier <monn...@iro.umontreal.ca> Commit: Stefan Monnier <monn...@iro.umontreal.ca>
README (Getting the source): Sync with the `admin/README` --- README | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/README b/README index 0616a3a760..2ac0eedde8 100644 --- a/README +++ b/README @@ -39,28 +39,26 @@ The layout of the =elpa.git= repository is as follows: * Getting the source -Start with source that is cloned directly from Savannah. See [[https://savannah.gnu.org/git/?group=emacs][the -Savannah page]] and look for "GNU ELPA". Using a clone of a clone does -not work. +Start with source that is cloned directly from Savannah +(See [[https://savannah.gnu.org/git/?group=emacs][the Savannah page]] and look for "ELPA"). +Using a clone of a clone might not work. -The =Makefile= in =main= will automatically pull the =elpa-admin= -branch to populate the =admin= subdirectory. This is done by: +The repository is large because it contains all the packages, so you +will usually want to clone with =--single-branch= to avoid downloading +a large amount of irrelevant data. More specifically, here is how you +can get the source and setup the general infrastructure: #+begin_src shell - make setup + git clone --single-branch git://git.savannah.gnu.org/emacs/elpa.git + cd elpa + make #+end_src -This will checkout the =elpa-admin= branch to the subdirectory -=admin=. +Where the =Makefile= in the =main= branch is used to automatically +pull the =elpa-admin= branch to populate the =admin= subdirectory. However, it leaves the =packages= directory empty; you must check out -the ones you want. The =Makefile= in the =admin= subdirectory is -responsible for populating the =packages= subdirectories from the -relevant sources. - -Note that this =Makefile= is symlinked to the root of the repository -by the above =make setup= command. This means that you can run -targets directly from +the ones you want. ** Check out all packages @@ -80,6 +78,12 @@ directory with this command: make packages/<pkgname> #+end_src +The first time you run this command, it just populates that directory. +After that, it will (re)"build" the package for use in-place, i.e. it will +create (or refresh) the =<pkgname>-pkg.el= and =<pkgname>-autoloads.el= files +and (re)compile the ELisp files under the assumption that you have put +=.../elpa/packages/= into your =package-directory-list=. + ** Updating a package directory If you already have a =packages/<pkgname>= directory with a previous