From: David Masterson <dsmasterson@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Resources for an old newbie ?
Date: Sun, 04 Jun 2023 00:26:54 -0700 [thread overview]
Message-ID: <SJ0PR03MB5455B24A382DF4A11A882482A24CA@SJ0PR03MB5455.namprd03.prod.outlook.com> (raw)
In-Reply-To: <83fs777q9m.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 04 Jun 2023 08:25:25 +0300")
Eli Zaretskii <eliz@gnu.org> writes:
>> From: David Masterson <dsmasterson@gmail.com>
>> Date: Sat, 03 Jun 2023 18:00:30 -0700
>>
>> > # 1. setup directories
>> > src_dir=~/src
>> > emacs_dir=${src_dir}/emacs
>> > mkdir -p $emacs_dir
>> >
>> > # 2. get dependencies
>> > sudo apt-get -qq update
>> > sudo apt-get install build-essential debian-goodies libgccjit-10-dev
>> > sudo apt-get build-dep emacs
>>
>> This pulled in a *LOT* of stuff.
>>
>> > # 3. get source
>> > cd $src_dir
>> > git clone https://git.savannah.gnu.org/git/emacs.git
>> >
>> > # 4. refresh source/upgrade
>> > cd $emacs_dir
>> > git fetch
>> > git merge
>>
>> I modified this to 'git pull' as previously suggested. There was
>> nothing to pull.
>>
>> > # 5. compile and install
>> > autogen.sh
>> > configure --with-x-toolkit=no --with-native-compilation
>> > make
>> > sudo make install
>>
>> Gave this a try. Still having problems:
>
> Is this about concise and comprehensive instructions for how to build
> Emacs? In such cases, I've many times found the "Linux from scratch!"
> site very useful. In this case, read here:
>
> https://www.linuxfromscratch.org/blfs/view/svn/postlfs/emacs.html
Useful, but for Emacs 28.2. The script I followed above got me
30.0.50. I may rethink being bleeding edge.
Your URL link (sort of) assumes a GTK rather than Lucid X-toolkit. The
above script seems to assume no-toolkit. I'm still figuring out what
the limits of that are.
> This lists all the dependencies, both mandatory and optional. Each
> dependency is a link to another page, which describes how to build it
> (if you don't have it installed already, and cannot download a
> pre-built package). If you want to decide which optional dependency
> you want, read the file INSTALL in the Emacs source tree, it gives
> that information.
Yeah, but it gets you into dependency hell as you follow the tree of
dependencies down. I wasn't confident enough to do this for 27.1 a year
or two ago, so I waited for Debian to release it as a package. I've
learned a little bit about snap/flatpak/guix since then and thought I
might go that way for v28.2.
The "build-dep" step above looked like a good compromise to let me load
up Debian approved dependent libraries and source build Emacs itself.
>> 3. The GNUMakefile in the Emacs distribution seems to rerun configure
>> with no options, so your "configure" is NO-OP.
>
> That's incorrect. I guess you've misread GNUMakefile. In reality, if
> you have run the configure script, GNUMakefile redirects to the
> top-level Makefile, and that obeys the configure-time options.
Good point. Configure looked like it worked, but it didn't produce a
Makefile (and I didn't pay attention to that). Therefore, when I did a
make, it saw (via GNUMakefile) configure, but no Makefile and, so, ran
configure and then used the generated Makefile. I'm not sure why my
configure didn't build a Makefile.
I now note that it would've also run autogen.sh if configure didn't
exist, thus doing all the work to setup a freshly retrieved set of
sources. A nice way to hide extra steps as long as autogen.sh and
configure guess the right setup.
>> 4. You can add arguments to the configure in the make step by passing
>> 'configure="--ARG1..."' to make.
>
> True. Type "./configure --help" for the full story.
>
>> 7. Probably should've tee'd the output of make to a log file... :(
>
> Or run the commands inside Emacs's shell mode.
This is probably the reason I messed up on #3 -- key errors/warnings
scrolled off the screen without me noticing. I prefer a complete log
file ("make |& tee log.file") for historical reasons in case I need to
check some things days or months later. The config.status and
config.log are good, but the simple log is quicker to read.
--
David Masterson
next prev parent reply other threads:[~2023-06-04 7:26 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-22 0:44 Resources for an old newbie ? Frederick Bartlett
2023-05-22 0:50 ` Eduardo Ochs
2023-05-22 1:30 ` Michael Heerdegen
2023-05-22 1:39 ` Michael Heerdegen
2023-05-22 6:33 ` Basile Starynkevitch
2023-05-23 0:11 ` Michael Heerdegen
2023-05-23 5:31 ` Emanuel Berg
2023-05-23 20:19 ` Philip Kaludercic
2023-05-25 0:55 ` Emanuel Berg
2023-05-23 23:09 ` Michael Heerdegen
2023-05-25 1:13 ` Emanuel Berg
2023-05-26 3:28 ` Michael Heerdegen
2023-05-27 5:41 ` Emanuel Berg
2023-05-28 1:50 ` Michael Heerdegen
2023-05-28 21:23 ` Emanuel Berg
2023-05-24 4:25 ` tomas
2023-05-25 1:25 ` Emanuel Berg
2023-05-25 4:01 ` tomas
2023-05-26 1:26 ` David Masterson
2023-05-26 3:36 ` Michael Heerdegen
2023-05-26 4:13 ` Robby Zambito
2023-05-27 4:09 ` David Masterson
2023-05-27 5:29 ` Emanuel Berg
2023-05-29 22:13 ` David Masterson
2023-05-27 5:48 ` Emanuel Berg
2023-05-29 22:14 ` David Masterson
2023-05-27 17:48 ` Robby Zambito
2023-05-29 22:23 ` David Masterson
2023-05-28 2:12 ` Michael Heerdegen
2023-05-28 21:26 ` Emanuel Berg
2023-05-29 22:21 ` David Masterson
2023-05-29 22:52 ` Michael Heerdegen
2023-05-30 2:18 ` Emanuel Berg
2023-06-03 21:40 ` David Masterson
2023-05-30 23:24 ` Emanuel Berg
2023-05-31 3:12 ` Platon Pronko
2023-05-31 3:20 ` Emanuel Berg
2023-05-31 22:07 ` Michael Heerdegen
2023-06-03 21:45 ` David Masterson
2023-06-03 22:03 ` Michael Heerdegen
2023-06-03 22:39 ` David Masterson
2023-06-03 23:19 ` Michael Heerdegen
2023-06-04 1:00 ` David Masterson
2023-06-04 1:31 ` Emanuel Berg
2023-06-04 2:15 ` Michael Heerdegen
2023-06-04 5:23 ` David Masterson
2023-06-04 2:21 ` Emanuel Berg
2023-06-04 21:05 ` David Masterson
2023-06-06 16:45 ` Emanuel Berg
2023-06-04 3:02 ` Emanuel Berg
2023-06-04 21:01 ` David Masterson
2023-06-04 5:25 ` Eli Zaretskii
2023-06-04 7:08 ` Basile Starynkevitch
2023-06-04 20:35 ` David Masterson
2023-06-04 7:26 ` David Masterson [this message]
2023-06-04 7:37 ` Eli Zaretskii
2023-06-04 10:45 ` Emanuel Berg
2023-06-04 20:07 ` David Masterson
2023-06-04 22:12 ` Michael Heerdegen
2023-06-04 22:36 ` David Masterson
2023-06-05 20:34 ` Emanuel Berg
2023-06-05 20:35 ` Emanuel Berg
2023-06-04 10:39 ` Emanuel Berg
2023-06-04 20:23 ` David Masterson
2023-06-05 0:29 ` Michael Heerdegen
2023-06-05 2:22 ` David Masterson
2023-06-05 2:59 ` Michael Heerdegen
2023-06-06 1:19 ` Emanuel Berg
2023-06-06 16:35 ` Emanuel Berg
2023-06-11 3:14 ` Michael Heerdegen
2023-06-11 4:48 ` David Masterson
2023-06-11 6:02 ` Emanuel Berg
2023-06-11 23:33 ` Michael Heerdegen
2023-06-11 23:41 ` Emanuel Berg
2023-06-16 2:22 ` Michael Heerdegen
2023-06-16 2:27 ` Michael Heerdegen
2023-06-11 5:54 ` Emanuel Berg
2023-06-11 23:42 ` Michael Heerdegen
2023-06-11 23:56 ` Emanuel Berg
2023-06-05 20:41 ` Emanuel Berg
2023-06-03 21:33 ` David Masterson
2023-05-26 4:28 ` tomas
2023-05-26 11:34 ` Robert Pluim
2023-05-26 12:06 ` tomas
2023-05-26 14:11 ` Robert Pluim
2023-05-26 21:40 ` Emanuel Berg
2023-06-08 8:39 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=SJ0PR03MB5455B24A382DF4A11A882482A24CA@SJ0PR03MB5455.namprd03.prod.outlook.com \
--to=dsmasterson@gmail.com \
--cc=eliz@gnu.org \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).