emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Moving homebrewn binaries and question about building documentation


From: Eric Lilja
Subject: Re: Moving homebrewn binaries and question about building documentation
Date: Sat, 21 Jul 2007 16:56:00 +0200
User-agent: Thunderbird 2.0.0.5 (Windows/20070716)

Eric Lilja wrote:
Eli Zaretskii wrote:
From: Eric Lilja <address@hidden>
Date: Sat, 21 Jul 2007 14:23:54 +0200

#!/bin/bash
export CVS_RSH="ssh"
touch ~/.cvspass
cvs -z3 -d:pserver:address@hidden:/sources/emacs co -r EMACS_22_BASE emacs
rm ~/.cvspass
cd emacs/nt/
./configure.bat --with-gcc --no-cygwin --no-debug
mingw32-make bootstrap --jobs=2 XMFLAGS="--jobs=2"
mingw32-make install
mingw32-make info

The last command, mingw32-make info, was not actually in the script but something I performed as an afterthought. I've had problems before with my homebrewn binaries not being able to find its documentation, and maybe this was the missing step?

You do need the last command on Windows, since nt/makefile will not
build the documentation by default (unlike on Unix and GNU systems).
This is because Windows users are not required to have Texinfo
installed, and we don't want to ail the build for those who don't.

My second question is: If I want to keep only the binaries and the files those binaries need, which directories should I get rid of now that the build is finished (and was a success)?

I'd suggest to use the "make install" target (in nt/makefile).  If you
give it a target directory, like this:

           make install INSTALL_DIR=/path/to/wherever/you/want

then it will copy only the files necessary for running Emacs you built
to the named directory.  You can then remove the source tree if you
don't want to keep it, and run Emacs from the directory where you told
"make install" to put it.

The advantage of "make install" as compared to removing unneeded
directories is that some files inside the directories you do need are
not copied (e.g., the CVS/ subdirectories, the ChangeLog files, etc.).
This might result in more disk space savings.

Ah, thanks for the useful reply, Eli! I've changed my script to:
#!/bin/bash
export CVS_RSH="ssh"
touch ~/.cvspass
cvs -z3 -d:pserver:address@hidden:/sources/emacs co -r EMACS_22_BASE emacs
rm ~/.cvspass
cd emacs/nt/
./configure.bat --with-gcc --no-cygwin --no-debug
mingw32-make bootstrap --jobs=2 XMFLAGS="--jobs=2"
mingw32-make info
mingw32-make install INSTALL_DIR=c:/emacs/

and I'm going to test it now (builds are started in c:/cvsemacs/emacs/nt) and no more manual copy to c:/emacs if this works or wondering what to copy.

I actually wrote an application that cleaned the emacs tree from the CVS-dirs but then that one is not needed anymore now that you've armed me with this new information! Thanks! :) I will post back if I encounter any problems.

- Eric

Ok, I just ran the script in my previous reply. There were a few "problems". As you can see I had a trailing / in my INSTALL_DIR so install tries to copy like this (just pasting one example):
cp -f oo-spd/i386/etags.exe c:/emacs//bin
Notice the double forward slash. It didn't seem to affect copying, though, and I will simply remove the trailing slash from INSTALL_DIR in my script (I thought it would check for a trailing slash and add one if there wasn't one but it seems it adds one regardless). Also, I still have many CVS directories in the subdirectories. I also noticed two empty top-level directories named lock and data, respectively. These are not present in the official emacs 22.1 windows binary package. Comments?

- Eric





reply via email to

[Prev in Thread] Current Thread [Next in Thread]