Mercurial > hg > xemacs-beta
view modules/common/Makefile.common @ 5272:66dbef5f8076
Be better about bounds-checking, #'subseq, #'fill; add same, #'reduce.
2010-09-16 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (Fsubseq):
Change the string code to better fit in with the rest of this
function (it still uses get_string_range_char(), though, which *may*
diverge algorithmically from what we're doing).
If dealing with a cons, only call #'length if we have reason to
believe that the START and END arguments are badly specified, and
check for circular lists ourselves when that's appropriate.
If dealing with a vector, call Fvector() on the appropriate subset
of the old vector's data directly, don't initialise the result
with nil and then copy.
(Ffill):
Only check the range arguments for a cons SEQUENCE if we have good
reason to think they were badly specified.
(Freduce):
Handle multiple values properly. Add bounds checking to this
function, as specificied by ANSI Common Lisp.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 16 Sep 2010 18:46:05 +0100 |
parents | c356806cc933 |
children | 308d34e9f07d |
line wrap: on
line source
## Common Makefile section for modules in XEmacs. ## Copyright (C) 2002 Jerry James. ## Copyright (C) 2005 Ben Wing. ## 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. ## Synched up with: Not in FSF. ## This is more complicated than would normally be the case, as this makefile ## has been tailored to work both inside and independently of the XEmacs ## source tree, and to support both module and non-module building inside the ## source tree. ## Note: This will be appended to the individual module Makefiles by configure. #define NOT_C_CODE #include "../../src/config.h" SHELL=/bin/sh RM=rm -f PROGNAME=@PROGNAME@ CFLAGS=@XE_CFLAGS@ INSTALL=@INSTALL@ version=@version@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ instvardir=@instvardir@ configuration=@configuration@ moduledir=@moduledir@ with_modules=@with_modules@ srcdir=@srcdir@ VPATH=@srcdir@ SRC_SRCS=$(SRCS:%=@srcdir@/%) OBJS=$(SRCS:.c=.o) MODCC=@MOD_CC@ MODARCHDIR=@MODARCHDIR@ MAKE_DOCFILE=@MAKE_DOCFILE@ MODCFLAGS=@MODCFLAGS@ INSTALLPATH=@INSTALLPATH@ INSTALL_PROGRAM=@MOD_INSTALL_PROGRAM@ OBJECT_TO_BUILD=@OBJECT_TO_BUILD@ LIBSTDCPP=@LIBSTDCPP@ #ifdef WIN32_ANY IMPORT_LIB=../../src/xemacs-import.a #endif .PHONY: install all: $(OBJECT_TO_BUILD) .c.o: $(MODCC) $(MODCFLAGS) -c $< $(MODNAME).ell: $(OBJS) $(MODNAME)_i.o $(IMPORT_LIB) $(MODCC) --mode=link --mode=verbose --mod-output=$@ \ $(OBJS) $(MODNAME)_i.o $(IMPORT_LIB) $(LDFLAGS) $(LIBSTDCPP) $(MODNAME)_i.c: $(SRCS) ELLMAKEDOC=$(MAKE_DOCFILE) $(MODCC) --mode=init --mod-output=$@ \ --mod-name=$(MODNAME) --mod-version=$(MODVER) \ --mod-title=$(MODTITLE) $(SRC_SRCS) .PHONY: mostlyclean clean distclean realclean extraclean .PHONY: distclean-noconfig realclean-noconfig extraclean-noconfig mostlyclean: -$(RM) $(OBJS) $(MODNAME)_i.* core clean: mostlyclean -$(RM) $(MODNAME).ell distclean-noconfig: clean -$(RM) config.* TAGS ## This is used in making a distribution. ## Do not use it on development directories! distclean: distclean-noconfig -$(RM) GNUmakefile Makefile Makefile.in configure realclean-noconfig: distclean-noconfig realclean: distclean extraclean-noconfig: realclean-noconfig -$(RM) *~ \#* extraclean: realclean -$(RM) *~ \#* install: $(OBJECT_TO_BUILD) $(INSTALL_PROGRAM) $< $(INSTALLPATH) ## ## Local Variables: ## mode: makefile ## End: ##