Gnus development mailing list
 help / color / mirror / Atom feed
From: Frank Schmitt <usereplyto@Frank-Schmitt.net>
Subject: But this one really is final (was: Final version of newmake.bat)
Date: Thu, 20 Mar 2003 23:57:54 +0100	[thread overview]
Message-ID: <u8yv9wsr1.fsf_-_@hschmi22.userfqdn.rz-online.de> (raw)
In-Reply-To: <uisue3mv5.fsf@xpediantsolutions.com>

[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]

Kevin Greiner <kgreiner@xpediantsolutions.com> writes:

> Frank Schmitt <usereplyto@Frank-Schmitt.net> writes:
>
>> Kevin Greiner <kgreiner@xpediantsolutions.com> writes:
>>
>>> The compilation buffer ends with
>>> "Compilation exited abnormally with code 1 at Wed Mar 19 08:51:57"
>>
>> No idea about this one, however this is an Emacs message and I don't
>> think we can blame newmake.bat for this. This one comes before the
>> processing of info files, does it?
>
> No. This is the last line in the compilation buffer.  Emacs is
> reporting the process status returned by the external process just
> executed (i.e. newmake).  Emacs follows the Unix convention that a
> zero status indicates normal completion while a non-zero status
> indicates an error.

Inspired by your post, I added error handling to newmake.bat (it checks
for the returncodes of the programs it calls and if there are errors,
it reports where they occurred and sets ERRORLEVEL to one, if there are
no errors it sets ERRORLEVEL to 0. 

Here we go:


[-- Attachment #2: newmake.bat --]
[-- Type: application/octet-stream, Size: 9701 bytes --]

@echo off

rem Written by Frank Schmitt <ich@frank-schmitt.net>
rem based on the work by David Charlap (shamino@writeme.com)
rem .
rem Clear PWD so emacs doesn't get confused
set GNUS_PWD_SAVE=%PWD%
set PWD=
set ERROR=:

if "%1" == "" goto usage

rem Emacs 20.7 no longer includes emacs.bat. Use emacs.exe if the batch file is
rem not present -- this also fixes the problem about too many parameters on Win9x.
if exist %1\emacs.bat goto ebat
if exist %1\emacs.exe goto eexe
if exist %1\xemacs.exe goto xemacs
goto noemacs

:ebat
set EMACS=emacs.bat
echo.
echo ***************************************************************************
echo * Using emacs.bat (If you've got en Emacs >= 20.3 please remove Emacs.bat, 
echo * it isn't needed anymore.
echo ***************************************************************************
echo.
goto emacs

:eexe
set EMACS=emacs.exe
echo.
echo ***************************************************************************
echo * Using emacs.exe
echo ***************************************************************************
echo.
goto emacs

:emacs
if not "%2" == "/copy" goto emacsnocopy
if not exist %1\..\site-lisp mkdir %1\..\site-lisp
if not exist %1\..\site-lisp\gnus mkdir %1\..\site-lisp\gnus
if not exist %1\..\site-lisp\subdirs.el set subdirwarning=yes
:emacsnocopy
set GNUS_INFO_DIR=%1\..\info
set GNUS_LISP_DIR=%1\..\site-lisp\gnus\lisp
set GNUS_ETC_DIR=%1\..\site-lisp\gnus\etc
goto lisp
      
:xemacs      
set EMACS=xemacs.exe
if not "%2" == "/copy" goto xemacsnocopy
if not exist %1\..\..\site-packages\ mkdir %1\..\..\site-packages\
if not exist %1\..\..\site-packages\info mkdir %1\..\..\site-packages\info
if not exist %1\..\..\site-packages\lisp mkdir %1\..\..\site-packages\lisp
if not exist %1\..\..\site-packages\etc mkdir %1\..\..\site-packages\etc
:xemacsnocopy
set GNUS_INFO_DIR=%1\..\..\site-packages\info
set GNUS_LISP_DIR=%1\..\..\site-packages\lisp\gnus
set GNUS_ETC_DIR=%1\..\..\site-packages\etc
echo.
echo ***************************************************************************
echo * Using xemacs.exe
echo ***************************************************************************
echo.
goto lisp

:lisp
set EMACSBATCH=call %1\%EMACS% -no-site-file -batch -q
cd lisp
if exist gnus-load.el del gnus-load.el
echo.
echo Stand by while generating autoloads.
echo.
%EMACSBATCH% -l ./dgnushack.el -f dgnushack-make-cus-load .
if ErrorLevel 1 set ERROR=make-cus-load
%EMACSBATCH% -l ./dgnushack.el -f dgnushack-make-auto-load .
if ErrorLevel 1 set ERROR=%ERROR%,make-auto-load
%EMACSBATCH% -l ./dgnushack.el -f dgnushack-make-load
if ErrorLevel 1 set ERROR=%ERROR%,make-load
echo.
echo Stand by while compiling lisp files.
echo.
%EMACSBATCH% -l ./dgnushack.el -f dgnushack-compile
if ErrorLevel 1 set ERROR=%ERROR%,compile

if not "%2" == "/copy" goto infotest
echo.
echo Stand by while copying lisp files.
echo.
if not exist %GNUS_LISP_DIR% mkdir %GNUS_LISP_DIR%
xcopy /R /Q /Y *.el* %GNUS_LISP_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-lisp
goto infotest

:infotest
cd ..\texi
if exist sieve del sieve
makeinfo sieve.texi
if exist sieve goto minfo 
REM It seems that makeinfo isn't available
set EMACSINFO=%EMACSBATCH% -l infohack.el -f batch-makeinfo
echo.
echo ***************************************************************************
echo * Using infohack.el, if you've got makeinfo.exe put it in PATH.
echo ***************************************************************************
echo.
goto info

:minfo
set EMACSINFO=makeinfo  
echo.
echo ***************************************************************************
echo * Using makeinfo
echo ***************************************************************************
echo.
goto info

:info
echo.
echo Stand by while generating info files.
echo.
%EMACSINFO% emacs-mime.texi
if ErrorLevel 1 set ERROR=%ERROR%,emacs-mime.texi
%EMACSINFO% gnus.texi
if ErrorLevel 1 set ERROR=%ERROR%,gnus.texi
%EMACSINFO% sieve.texi
if ErrorLevel 1 set ERROR=%ERROR%,sieve.texi
%EMACSINFO% pgg.texi
if ErrorLevel 1 set ERROR=%ERROR%,pgg.texi
%EMACSINFO% message.texi
if ErrorLevel 1 set ERROR=%ERROR%,message.texi

if not "%2" == "/copy" goto nocopy
if not exist %GNUS_INFO_DIR% mkdir %GNUS_INFO_DIR%

echo.
echo Stand by while copying info files.
echo.
xcopy /R /Q /Y gnus       %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-gnus-info
xcopy /R /Q /Y gnus-?     %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-gnus-x-info
xcopy /R /Q /Y gnus-??    %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-gnus-xx-info
xcopy /R /Q /Y message    %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-message-info
if exist message-1 xcopy /R /Q /Y message-?  %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-message-x-info
xcopy /R /Q /Y emacs-mime %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-emacs-mime-info
xcopy /R /Q /Y sieve      %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-sieve-info
xcopy /R /Q /Y pgg        %GNUS_INFO_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-pgg-info

echo.
echo ***************************************************************************
echo * You should add the following lines to 
echo * %GNUS_INFO_DIR%\dir 
echo * if they aren't already there:
echo *
echo * * PGG: (pgg).	Emacs interface to various PGP implementations.
echo * * Sieve: (sieve).	Managing Sieve scripts in Emacs.
echo ***************************************************************************
echo.

:etc
cd ..\etc
echo.
echo Stand by while copying etc files.
echo.
if not exist %GNUS_ETC_DIR% mkdir %GNUS_ETC_DIR%
xcopy /R /Q /Y gnus-tut.txt %GNUS_ETC_DIR%
if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-gnus-tut-txt
if not exist %GNUS_ETC_DIR%\gnus mkdir %GNUS_ETC_DIR%\gnus
xcopy /R /Q /Y .\gnus\* %GNUS_ETC_DIR%\gnus\
if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-gnus-*
if not exist %GNUS_ETC_DIR%\smilies mkdir %GNUS_ETC_DIR%\smilies
xcopy /R /Q /Y .\smilies\* %GNUS_ETC_DIR%\smilies\
if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-smilies-*
goto warnings

:nocopy
echo.
echo ***************************************************************************
echo * You chose not to copy the files, therefore you should add the 
echo * following lines to the TOP of your [X]emacs customization file:
echo *
echo * (add-to-list 'load-path "/Path/to/gnus/lisp")
echo * (if (featurep 'xemacs)
echo *     (add-to-list 'Info-directory-list "c:/Path/to/gnus/texi/")
echo *   (add-to-list 'Info-default-directory-list "c:/Path/to/gnus/texi/")
echo * (require 'gnus-load)
echo *
echo * Replace c:/Path/to/gnus with the Path where your new Gnus is (that's here
echo * and yes, you've got to use forward slashes).
echo ***************************************************************************
echo.

:warnings
if not "%subdirwarning%" == "yes" goto warngnusload
echo.
echo ***************************************************************************
echo * There's no subdirs.el file in your site-lisp directory, you should
echo * therefor add the following line to the TOP of your Emacs
echo * customization file:
echo *
echo * (add-to-list 'load-path "/Path/to/emacs-site-lisp-directory/gnus/lisp")
echo * (require 'gnus-load)
echo * Yes, it must be forward slashes.
echo ***************************************************************************
echo.
goto warnerrors

:warngnusload
echo.
echo ***************************************************************************
echo * You should add the following line to the TOP of your Emacs
echo * customization file:
echo *
echo * (require 'gnus-load)
echo ***************************************************************************
echo.

:warnerrors
if "%ERROR%"==":" goto noerrors
set errorlevel=1
echo.
echo ***************************************************************************
echo * WARNING ERRORS OCCURRED!
echo * You should look for error messages in the output of the called programs
echo * and try to find out what exactly went wrong.
echo * Errors occured in the following modules:
echo * %ERROR%
echo ***************************************************************************
echo.
goto done

:noerrors
set errorlevel=0

:done
cd ..
goto end

:noemacs
echo.
echo ***************************************************************************
echo * Unable to find emacs.exe or xemacs.exe on the path you specified!
echo * STOP!
echo ***************************************************************************
echo.
goto usage

:usage
echo.
echo ***************************************************************************
echo * Usage: make.bat :[X]Emacs-exe-dir: [/copy]
echo *
echo * where: :[X]Emacs-exe-dir: is the directory your 
echo *           emacs.exe respectively xemacs.exe resides in, 
echo *           e.g. G:\Programme\XEmacs\XEmacs-21.4.11\i586-pc-win32\
echo *           or G:\Emacs\bin
echo *        /copy indicates that the compiled files should be copied to your
echo *           emacs lisp, info, and etc site directories.
echo *
echo * Note: If you have Emacs/w3 you should set the environment variable 
echo *       W3DIR to the directory where w3 is installed eg.
echo *                set W3DIR=d:\lisp\w3-4.0pre46\lisp
echo ***************************************************************************
echo.

:end
rem Restore environment variables
set PWD=%GNUS_PWD_SAVE%
set GNUS_PWD_SAVE=
set EMACSBATCH=
set GNUS_LISP_DIR=
set GNUS_INFO_DIR=
set GNUS_ETC_DIR=
set subdirwarning=
set ERROR=

[-- Attachment #3: Type: text/plain, Size: 158 bytes --]



-- 
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.

  parent reply	other threads:[~2003-03-20 22:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-18 23:43 Final version of newmake.bat Frank Schmitt
2003-03-19  6:43 ` Kevin Greiner
2003-03-19  7:16   ` Frank Schmitt
2003-03-19 15:05     ` Kevin Greiner
2003-03-19 22:36       ` Frank Schmitt
2003-03-20  0:25         ` Kevin Greiner
2003-03-20  9:00           ` Frank Schmitt
2003-03-20 22:57           ` Frank Schmitt [this message]
2003-03-21  5:59             ` But this one really is final Kevin Greiner
2003-03-21  7:50               ` Frank Schmitt

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=u8yv9wsr1.fsf_-_@hschmi22.userfqdn.rz-online.de \
    --to=usereplyto@frank-schmitt.net \
    --cc=replies@Frank-Schmitt.net \
    /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 NNTP newsgroup(s).