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])])