## Copyright (C) 1985, 1987, 1988, 1993, 1994 Free Software Foundation, Inc.
## Copyright (C) 1994, 1995 Board of Trustees, University of Illinois
## Copyright (C) 1996, 1997 Sun Microsystems, Inc.
+## Copyright (C) 1998, 1999 J. Kean Johnston.
## This file is part of XEmacs.
RM = rm -f
lispdir = ${srcdir}/../lisp/
+moduledir = ${srcdir}/../modules/
libsrc = ../lib-src/
etcdir = ../etc/
vpath config.h
vpath paths.h
vpath Emacs.ad.h
-vpath puresize-adjust.h
vpath sheap-adjust.h
#else
VPATH=@srcdir@
cd ../lwlib && $(RECURSIVE_MAKE)
x_objs=balloon_help.o balloon-x.o console-x.o device-x.o event-Xt.o frame-x.o\
- glyphs-x.o objects-x.o redisplay-x.o xgccache.o xselect.o
+ glyphs-x.o objects-x.o redisplay-x.o select-x.o xgccache.o
#ifdef AIX4
LIBI18N = -li18n
eval.o events.o $(extra_objs)\
event-stream.o extents.o faces.o\
fileio.o $(LOCK_OBJ) filemode.o floatfns.o fns.o font-lock.o\
- frame.o general.o getloadavg.o glyphs.o glyphs-eimage.o\
- $(gui_objs) hash.o imgproc.o indent.o insdel.o intl.o\
+ frame.o general.o glyphs.o glyphs-eimage.o glyphs-widget.o\
+ gui.o gutter.o $(gui_objs) hash.o imgproc.o indent.o insdel.o intl.o\
keymap.o $(RTC_patch_objs) line-number.o lread.o lstream.o\
macros.o marker.o md5.o minibuf.o objects.o opaque.o\
print.o process.o profile.o\
rangetab.o redisplay.o redisplay-output.o regex.o\
- search.o $(sheap_obj) signal.o sound.o\
+ search.o select.o $(sheap_obj) signal.o sound.o\
specifier.o strftime.o symbols.o syntax.o sysdep.o\
undo.o $(x_objs) widget.o window.o
mo_file = ${mo_dir}emacs.mo
#endif
-LOADPATH = EMACSBOOTSTRAPLOADPATH="${lispdir}:${blddir}"
-DUMPENV = $(LOADPATH)
+#ifdef WINDOWSNT
+LOADPATH = EMACSBOOTSTRAPLOADPATH="${lispdir};${blddir}"
+MODULEPATH = EMACSBOOTSTRAPMODULEPATH="${moduledir};${blddir}"
+#else
+LOADPATH = EMACSBOOTSTRAPLOADPATH="${lispdir}:${blddir}"
+MODULEPATH = EMACSBOOTSTRAPMODULEPATH="${moduledir}:${blddir}"
+#endif
+DUMPENV = $(LOADPATH) $(MODULEPATH)
temacs_loadup = $(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el
dump_temacs = ${temacs_loadup} dump
run_temacs = ${temacs_loadup} run-temacs
+debug_temacs = $(DUMPENV) gdb temacs
release: temacs ${libsrc}DOC $(mo_file) ${other_files}
#ifdef CANNOT_DUMP
-if [ -w ${srcdir}/../lisp ]; then \
w=`pwd`; cd ${srcdir} && $${w}/temacs -nl -batch -l ${srcdir}/../lisp/inc-vers; \
else true; fi
- @touch SATISFIED
-$(DUMPENV) ./temacs -nl -batch -l ${srcdir}/../lisp/loadup.el dump
- @if test ! -f SATISFIED; then $(RECURSIVE_MAKE) $@; fi
- @$(RM) SATISFIED
#else /* ! defined (HAVE_SHM) */
-if [ -w ${srcdir}/../lisp ]; then \
w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l ${srcdir}/../lisp/inc-vers; \
else true; fi
- @touch SATISFIED
-$(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump
- @if test ! -f SATISFIED; then $(RECURSIVE_MAKE) $@; fi
- @$(RM) SATISFIED
#endif /* ! defined (HAVE_SHM) */
touch release
#endif /* ! defined (CANNOT_DUMP) */
${PROGNAME}: temacs ${libsrc}DOC $(mo_file) ${other_files} update-elc.stamp
- @$(RM) $@ && touch SATISFIED
+#ifdef HEAP_IN_DATA
+ @$(RM) $@ $@.exe && touch SATISFIED
-${dump_temacs}
- @if test -f $@; then if test -f SATISFIED; then \
+ @if test -f $@; then if test -f SATISFIED; then \
echo "Testing for Lisp shadows ..."; \
./${PROGNAME} -batch -vanilla -f list-load-path-shadows; fi; \
$(RM) SATISFIED; exit 0; fi; \
if test -f SATISFIED; then $(RM) SATISFIED; exit 1; fi; \
$(RECURSIVE_MAKE) $@;
+#else
+ @$(RM) $@
+ -${dump_temacs}
+ @echo "Testing for Lisp shadows ..."
+ @./${PROGNAME} -batch -vanilla -f list-load-path-shadows
+#endif
fastdump: temacs
@$(RM) ${PROGNAME} && touch SATISFIED
- -${dumpp_temacs}
- @if test -f ${PROGNAME}; then if test -f SATISFIED; then \
- ./${PROGNAME} -batch -vanilla -f list-load-path-shadows; fi; \
- $(RM) SATISFIED; exit 0; fi; \
- if test -f SATISFIED; then $(RM) SATISFIED; exit 1; fi;
+ -${dump_temacs}
+ @./${PROGNAME} -batch -vanilla -f list-load-path-shadows
FRC.update-elc.stamp :
## We have automated tests!!
testdir = ${srcdir}/../tests/automated
-tests = \
- ${testdir}/hash-table-tests.el \
- ${testdir}/lisp-tests.el \
- ${testdir}/database-tests.el \
- ${testdir}/byte-compiler-tests.el
-batch_test_emacs = -batch -l ${testdir}/test-harness.el -f batch-test-emacs ${tests}
+batch_test_emacs = -batch -l ${testdir}/test-harness.el -f batch-test-emacs ${testdir}
.PHONY: check check-temacs
check:
runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \
run' rtcmacs
+debug-temacs: temacs
+ -${debug_temacs}
+
## Purify, Quantify, PureCoverage are software quality products from
## Rational, formerly Pure Atria, formerly Pure Software.
##
## Purify
PURIFY_PROG = purify
PURIFY_FLAGS = -chain-length=32 -ignore-signals=SIGPOLL -threads=yes \
- -cache-dir=./purecache -always-use-cache-dir=yes -pointer-mask=0x0fffffff
+ -cache-dir=./purecache -always-use-cache-dir=yes
PURIFY_LIBS = -lpthread
puremacs: $(temacs_deps)
$(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS)
#endif /* EXTERNAL_WIDGET */
config.h: ${srcdir}/config.h.in
-puresize-adjust.h: ${srcdir}/puresize.h
Emacs.ad.h: ${srcdir}/${etcdir}Emacs.ad
-config.h puresize-adjust.h sheap-adjust.h paths.h Emacs.ad.h :
+config.h sheap-adjust.h paths.h Emacs.ad.h :
@echo "The file $@ needs to be re-generated."
@echo "Please run a make in the top level directory."
@echo "Consult the file \`INSTALL' for instructions for building XEmacs."
.PHONY: mostlyclean clean distclean realclean versionclean extraclean
mostlyclean:
$(RM) temacs puremacs quantmacs prefix-args *.o *.i \
- core temacs.exe puresize-adjust.h sheap-adjust.h
+ core temacs.exe sheap-adjust.h
clean: mostlyclean versionclean
$(RM) libextcli* update-elc.stamp
## This is used in making a distribution.
## Do not use it on development directories!
distclean: clean
$(RM) config.h paths.h Emacs.ad.h \
- Makefile Makefile.in GNUmakefile TAGS ${PROGNAME}.*
+ GNUmakefile Makefile Makefile.in TAGS ${PROGNAME}.*
realclean: distclean
versionclean:
$(RM) ${PROGNAME} ${PROGNAME}.exe ${libsrc}DOC
relock:
chmod -w $(SOURCES)
+## Header files for ellcc
+#ifdef HAVE_SHLIB
+MAKEPATH=../lib-src/make-path
+install: ${PROGNAME}
+ ${MAKEPATH} ${archlibdir}/include ${archlibdir}/include/m ${archlibdir}/include/s
+ -@echo "Copying include files for ellcc..."
+ -@hdir=`pwd`; \
+ cd ${srcdir}; hdrdir2=`pwd`; cd $$hdir; \
+ test "$$hdrdir2" != "$$hdir" && hdir="$$hdir $$hdrdir2"; \
+ (for thisdir in $$hdir; do \
+ cd $$hdir && \
+ (hdrtars=; \
+ for hdrfile in *.h; do \
+ hdrtars="$$hdrtars $$hdrfile"; \
+ done; \
+ test -d s && hdrtars="$$hdrtars s/*"; \
+ test -d m && hdrtars="$$hdrtars m/*"; \
+ test -n "$$hdrtars" && (tar cf - $$hdrtars) | \
+ (cd ${archlibdir}/include && umask 022 && tar xf -); \
+ chmod 755 ${archlibdir}/include; \
+ test -d ${archlibdir}/include/s && \
+ chmod 755 ${archlibdir}/include/s; \
+ test -d ${archlibdir}/include/m && \
+ chmod 755 ${archlibdir}/include/s;) \
+ done)
+#endif
+
## Dependency processing using home-grown script, not makedepend
.PHONY: depend
FRC.depend:
depend: FRC.depend
cd ${srcdir} && $(RM) depend.tmp && \
- perl make-src-depend > depend.tmp && \
- $(RM) depend && mv depend.tmp depend
+ perl ./make-src-depend > depend.tmp && \
+ if cmp -s depend depend.tmp; \
+ then $(RM) depend.tmp; \
+ else $(RM) depend && mv depend.tmp depend; \
+ fi