view lispref/Makefile.in @ 18260:a642c99198ec

(PTR_TO_OFFSET): New macro. (POS_AS_IN_BUFFER): New macro. (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table' text property into account when doing SYNTAX (c). (re_compile_fastmap): disable fastmap if any of wordbound notwordbound wordbeg wordend notsyntaxspec syntaxspec are seen. (re_search_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start. (re_match_object): New variable. (re_match_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start. (re_match_2_internal): For any of wordbound notwordbound wordbeg wordend notsyntaxspec syntaxspec call UPDATE_SYNTAX_TABLE before doing SYNTAX (c). [emacs]: Include charset.h and category.h [!emacs] (BASE_LEADING_CODE_P, WORD_BOUNDARY_P, CHAR_HEAD_P, SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MULTIBYTE_FORM_LENGTH, STRING_CHAR_AND_LENGTH, GET_CHAR_AFTER_2, GET_CHAR_BEFORE_2): New dummy macros. (enum re_opcode_t): New member categoryspec and notcategoryspec. (STORE_CHARACTER_AND_INCR, EXTRACT_CHARACTER, CHARSET_LOOKUP_RANGE_TABLE_WITH_COUNT, CHARSET_LOOKUP_RANGE_TABLE, CHARSET_BITMAP_SIZE, CHARSET_RANGE_TABLE_EXISTS_P, CHARSET_RANGE_TABLE CHARSET_PAST_RANGE_TABLE): New macros. (TRANSLATE): Cast return value to unsigned char, not char. (struct range_table_work_area): New structure. (EXTEND_RANGE_TABLE_WORK_AREA, SET_RANGE_TABLE_WORK_AREA, FREE_RANGE_TABLE_WORK_AREA, CLEAR_RANGE_TABLE_WORK_USED, RANGE_TABLE_WORK_USED, RANGE_TABLE_WORK_ELT): New macros. (FREE_STACK_RETURN): Call FREE_RANGE_TABLE_WORK_AREA. (regex_compile): Declare `c' and `c1' as int to store multibyte characters. Declare range_table_work and initialize it. Initialize bufp->multibyte to 0 if not emacs. For case '[' and `default', code re-written to handle multibyte characters. Add code for case 'c' and 'C' to handle category spec. (re_compile_fastmap): New local variables k, simple_char_max, and match_any_multibyte_characters. Use macro CHARSET_BITMAP_SIZE. Handle multibyte characters in cases charset, charset_not, wordchar, notwordchar, anychar, syntaxspec, notsyntaxspec, categoryspec, notcategoryspec. (STOP_ADDR_VSTRING, POS_ADDR_VSTRING): New macros. (re_search_2): Code re-written to handle multibyte characters. (AT_WORD_BOUNDARY): Macro disabled. (re_match_2_internal): New local variable multibyte. `d' is incremented while paying attention to multibyte characters if necessary. For case charset, charsetnot, wordbound, notwordbound, wordbeg, wordend, matchsyntax, and matchnotsyntax, code re-written to handle multibyte characters. Add code for case categoryspec and notcategoryspec. Declare c, c1 as unsigned int, not unsigned char.
author Richard M. Stallman <rms@gnu.org>
date Sun, 15 Jun 1997 19:00:12 +0000
parents c9ce47315e38
children dd9d371a4489
line wrap: on
line source

# Makefile for the   GNU Emacs Lisp Reference Manual.
#
# 11 August 1990

# Redefine `TEX' if `tex' does not invoke plain TeX. For example:
# TEX=platex

TEX=tex
MAKE=make

# Where the TeX macros are kept:
texmacrodir = /usr/local/lib/tex/macros

# Where the Emacs hierarchy lives ($EMACS in the INSTALL document for Emacs.)
# For example: 
# emacslibdir = /usr/local/gnu/lib/emacs

# Directory where Emacs is installed, by default:
emacslibdir = /usr/local/emacs

# Unless you have a nonstandard Emacs installation, these shouldn't have to 
# be changed.
prefix = /usr/local
infodir = ${prefix}/info

# The name of the manual:

VERSION=2.4.2
manual = elisp-manual-19-$(VERSION)

# Uncomment this line for permuted index.
# permuted_index = 1 

# List of all the texinfo files in the manual:

srcs = elisp.texi back.texi \
  abbrevs.texi anti.texi backups.texi locals.texi buffers.texi \
  calendar.texi commands.texi compile.texi control.texi debugging.texi \
  display.texi edebug.texi errors.texi eval.texi files.texi \
  frames.texi functions.texi help.texi hooks.texi \
  internals.texi intro.texi keymaps.texi lists.texi \
  loading.texi macros.texi maps.texi markers.texi \
  minibuf.texi modes.texi numbers.texi objects.texi \
  os.texi positions.texi processes.texi searching.texi \
  sequences.texi streams.texi strings.texi symbols.texi \
  syntax.texi text.texi tips.texi variables.texi \
  windows.texi \
  index.unperm index.perm

.PHONY: elisp.dvi clean

# The info file is named `elisp'.
# We depend on makeinfo.c rather than makeinfo -- there's no need to rebuild
# everything just because makeinfo isn't part of the distribution.

elisp: $(srcs) index.texi makeinfo.c
	$(MAKE) makeinfo
	rm -f elisp-*
	./makeinfo elisp.texi

elisp.dvi: $(srcs) index.texi texindex
	# Avoid losing old contents of aux file entirely.
	-mv elisp.aux elisp.oaux
	# First shot to define xrefs:
	$(TEX) elisp.texi
	if [ a${permuted_index} != a ]; \
	then \
	  ./permute-index; \
	  mv permuted.fns elisp.fns; \
	else \
	  ./texindex elisp.??; \
	fi
	$(TEX) elisp.texi

index.texi:
	if [ a${permuted_index} != a ]; \
	then \
	  ln -s index.perm index.texi; \
	else \
	  ln -s index.unperm index.texi; \
	fi

install: elisp
	./mkinstalldirs $(infodir)
	cp elisp elisp-* $(infodir)
	@echo also add the line for elisp to $(infodir)/dir.

installall: install
	install -c texinfo.tex $(texmacrodir)

clean:
	rm -f *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \
              *.vr *.vrs *.pg *.pgs *.ky *.kys
	rm -f make.out core 
	rm -f makeinfo.o makeinfo getopt.o getopt1.o
	rm -f texindex.o texindex index.texi

maintainer-clean: clean
	rm -f elisp elisp-*

dist:
	-mkdir temp
	-mkdir temp/$(manual)
	-ln README Makefile permute-index $(srcs) \
   texinfo.tex getopt.c getopt1.c getopt.h \
   elisp.dvi elisp.aux elisp.??s elisp elisp-[0-9] elisp-[0-9][0-9] temp/$(manual)
	-(cd temp/$(manual); rm -f texindex.c makeinfo.c mkinstalldirs)
	cp texindex.c makeinfo.c mkinstalldirs temp/$(manual)
	(cd temp/$(manual); rm -f *~)
	(cd temp; tar chf - $(manual)) | gzip > $(manual).tar.gz
	-rm -rf temp

# Make two programs used in generating output from texinfo.

CFLAGS = -g

texindex: texindex.o
	$(CC) -o $@ $(LDFLAGS) $(CFLAGS) $?
texindex.o: texindex.c

MAKEINFO_MAJOR = 1
MAKEINFO_MINOR = 0
MAKEINFO_FLAGS = -DMAKEINFO_MAJOR=$(MAKEINFO_MAJOR) -DMAKEINFO_MINOR=$(MAKEINFO_MINOR)

makeinfo: makeinfo.o getopt.o getopt1.o
	$(CC) $(LDFLAGS) -o makeinfo makeinfo.o getopt.o getopt1.o

makeinfo.o: makeinfo.c
	$(CC) -c $(CFLAGS) $(MAKEINFO_FLAGS) makeinfo.c