view modules/common/Makefile.common @ 4949:018e13fdeaeb

compile-related functions added, for use in Unicode-internal ws -------------------- ChangeLog entries follow: -------------------- lisp/ChangeLog addition: 2010-01-17 Ben Wing <ben@xemacs.org> * bytecomp-runtime.el: * bytecomp-runtime.el (error-unless-tests-match): New. * bytecomp-runtime.el (byte-compile-file-being-compiled): New. * bytecomp-runtime.el (compiled-if): New. * bytecomp-runtime.el (compiled-when): New. Add functions for dealing with conditional compilation of different code depending on the presence or absence of features. Necessary for some Mule code where code is run during compilation (macros or eval-when-compile) but, depending on how the code is written, the code itself will crash either with or without Unicode-internal. compiled-if and compiled-when are the basic functions for conditional compilation. They automatically trigger an error message upon file loading if, at that time, the test expression that selected which code to compile does not have the same value as at compile time.
author Ben Wing <ben@xemacs.org>
date Sun, 17 Jan 2010 04:52:48 -0600
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:
##