view nt/make-nt-depend @ 1149:a123f88fa975

[xemacs-hg @ 2002-12-08 10:24:33 by michaels] 2002-12-02 Mike Sperber <mike@xemacs.org> * The Great Window Configuration rewrite: Re-implement window configuration functionality in Emacs Lisp. * window.h (Fcurrent_window_configuration): Don't export anymore. (Qcurrent_window_configuration): Declare. (Qset_window_configuration): Declare. * event-stream.c (execute_help_form): * bytecode.c (execute_rare_opcode): Call out to Lisp to save window excursion. * window.c (Qcurrent_window_configuration): Declare. (Qwindow_configurationp): (Vwindow_configuration_free_list): (Qset_window_configuration): (Qtemp_buffer_show_hook): (struct saved_window): (struct window_config): (SAVED_WINDOW_N): (XWINDOW_CONFIGURATION): (wrap_window_configuration): (WINDOW_CONFIGURATIONP): (CHECK_WINDOW_CONFIGURATION): (mark_window_config): (sizeof_window_config_for_n_windows): (sizeof_window_config): (print_window_config): (saved_window_equal): (window_config_equal): (Fwindow_configuration_p): (mark_windows_in_use_closure): (mark_windows_in_use): (free_window_configuration): (Fset_window_configuration): (count_windows): (saved_window_index): (save_window_save): (Fcurrent_window_configuration): (Fsave_window_excursion): Remove. (mark_window_as_deleted): Rectify comment about `set-window-configuration'. (Fset_window_buffer): Reinstate code not activated because of old implementation of window configurations. (temp_output_buffer_show): Don't run `temp-buffer-show-hook' anymore---this wasn't supposed to happen anyway according to the documentation of `temp-buffer-show-function'. (reinit_vars_of_window): Don't do the window configuration stuff no more (vars_of_window): Don't set up `temp-buffer-show-hook' any more. 2002-12-02 Mike Sperber <mike@xemacs.org> * The Great Window Configuration rewrite: Re-implement window configuration functionality in Emacs Lisp. * window-xemacs.el (current-window-configuration): (set-window-configuration): (plus many functions they depend on) Re-implement window configurations in Emacs Lisp.
author michaels
date Sun, 08 Dec 2002 10:25:14 +0000
parents 184461bc8de4
children 4542b72c005e
line wrap: on
line source

: #-*- Perl -*-

# Generate dependency info in a form acceptable to nmake
#
# Copyright (C) 2000, 2002 Jonathan Harris.
#
# This file is part of XEmacs.
#
# XEmacs is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# XEmacs is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with XEmacs; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author: Jonathan Harris <jonathan@xemacs.org>
#
# Synched up with: Not in FSF.

use Getopt::Long;

my $optsok = GetOptions ('src=s' => \$src,
			 'config=s' => \$config,
			 'obj=s' => \$obj);

die "Generates nmake dependencies for the XEmacs src directory.

Usage: $0 --src SRCDIR --config CONFIGDIR --obj OBJDIR

  SRCDIR        Location of XEmacs sources
  CONFIGDIR     Location of config.inc
  OBJDIR	Location for compiler-generated object files

Expects output from src/make-src-depend on stdin.
The dependencies are written to stdout.
" if (@ARGV || !$optsok
      || !defined ($src) || !defined ($config) || !defined ($obj));

while (<>)
  {
    # must hack away CRLF junk.  wouldn't it be nice if perl handled this
    # right??  really can't be that hard!!!
    s/\r\n/\n/g;

    # rewrite references to generating script
    s/make-src-depend/make-nt-depend/;

    # rewrite '#if defined(...)' into nmake syntax
    s/^#if defined(.+)/!if defined$1/;

    # rewrite '#else' and '#endif' into nmake syntax
    s/^#e/!e/;

    # add src path to source filenames
    # allow for source filename being used in variable assignment
    s/([\s=])([\w\d\.\-]+\.[ch])/$1$src\\$2/g;

    # add obj path to object filenames
    # rewrite .o to .obj
    # add dependency on config.inc to all objects (this might be too broad)
    s/^(.+)\.o:(.+)/$obj\\$1.obj:$2 $config\\config.inc/;

   print;
  }