Mercurial > hg > xemacs-beta
changeset 1083:d87493ecc64b
[xemacs-hg @ 2002-11-04 05:19:45 by ben]
factor out some module code
author | ben |
---|---|
date | Mon, 04 Nov 2002 05:19:54 +0000 |
parents | cf8bc037c5ef |
children | d4a870aceb04 |
files | modules/common/Makefile.common modules/common/configure-post.ac modules/common/configure-pre.ac |
diffstat | 3 files changed, 101 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/common/Makefile.common Mon Nov 04 05:19:54 2002 +0000 @@ -0,0 +1,79 @@ +## Common Makefile section for modules in XEmacs. +## Copyright (C) 2002 Jerry James. + +## 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. + +SRC_SRCS=$(SRCS:%=$(srcdir)/%) +OBJS=$(SRCS:.c=.o) + +SHELL=/bin/sh +RM=rm -f +PROGNAME=@PROGNAME@ +CFLAGS=@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@ + +CC=@MOD_CC@ +MODARCHDIR=@MODARCHDIR@ +MAKE_DOCFILE=@MAKE_DOCFILE@ +MODCFLAGS=@MODCFLAGS@ +INSTALLPATH=@INSTALLPATH@ +INSTALL_PROGRAM=@MOD_INSTALL_PROGRAM@ +OBJECT_TO_BUILD=@OBJECT_TO_BUILD@ + +.PHONY: clean distclean install +all: $(OBJECT_TO_BUILD) + +.c.o: + $(CC) $(MODCFLAGS) -c $< + +$(MODNAME).ell: $(OBJS) $(MODNAME)_i.o + $(CC) --mode=link --mode=verbose --mod-output=$@ $^ $(LDFLAGS) + +$(MODNAME)_i.c: $(SRCS) + ELLMAKEDOC=$(MAKE_DOCFILE) $(CC) --mode=init --mod-output=$@ \ + --mod-name=$(MODNAME) --mod-version=$(MODVER) \ + --mod-title=$(MODTITLE) $(SRC_SRCS) + +clean: + $(RM) $(MODNAME).ell $(OBJS) $(MODNAME)_i.* *~ + +distclean: clean + $(RM) Makefile config.* configure + +extraclean: distclean + +install: $(OBJECT_TO_BUILD) + $(INSTALL_PROGRAM) $< $(INSTALLPATH)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/common/configure-post.ac Mon Nov 04 05:19:54 2002 +0000 @@ -0,0 +1,13 @@ + +# This part should appear unchanged in every module configure.ac +AC_SUBST(PROGNAME, "module") +AC_SUBST(MOD_CC, "@ELLCC@") +AC_SUBST(MODARCHDIR, "\$(shell @ELLCC@ --mod-archdir)") +AC_SUBST(MAKE_DOCFILE, "\$(MODARCHDIR)/make-docfile") +AC_SUBST(MODCFLAGS, "\$(CFLAGS) --mode=compile --mod-output=\$@ -I\$(MODARCHDIR)/include") +AC_SUBST(INSTALLPATH, "\$(shell @ELLCC@ --mod-site-location)") +AC_SUBST(MOD_INSTALL_PROGRAM, "@INSTALL_PROGRAM@") +AC_SUBST(OBJECT_TO_BUILD, "\$(MODNAME).ell") + +AC_CONFIG_FILES([Makefile.in Makefile]) +AC_OUTPUT
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/common/configure-pre.ac Mon Nov 04 05:19:54 2002 +0000 @@ -0,0 +1,9 @@ +AC_PROG_CC +AC_PROG_INSTALL +AC_SUBST(CFLAGS) +AC_SUBST(LDFLAGS) + +# Find ELLCC +AC_ARG_VAR([ELLCC], [The path to the ellcc module compiler]) +AC_PATH_PROG([ELLCC], [ellcc], ["FAIL"]) +AS_IF([test "$ELLCC" = "FAIL"], [AS_ERROR([Cannot find ellcc])])