X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2FMakefile.in.in;h=8a02b11485a182541df7dcc99bba77e5f4fa8bbe;hb=02276b8e7e7b7e647493d52f77beb00d64951836;hp=3da462fec18f7a7e4821804f3be34f469712397b;hpb=6883ee56ec887c2c48abe5b06b5e66aa74031910;p=chise%2Fxemacs-chise.git- diff --git a/src/Makefile.in.in b/src/Makefile.in.in index 3da462f..8a02b11 100644 --- a/src/Makefile.in.in +++ b/src/Makefile.in.in @@ -2,6 +2,7 @@ ## 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. @@ -31,11 +32,18 @@ all: ${PROGNAME} .SUFFIXES: .SUFFIXES: .c .h .o .i .s .dep +#ifdef USE_GNU_MAKE +RECURSIVE_MAKE=$(MAKE) +#else @SET_MAKE@ +RECURSIVE_MAKE=@RECURSIVE_MAKE@ +#endif + SHELL=/bin/sh RM = rm -f lispdir = ${srcdir}/../lisp/ +moduledir = ${srcdir}/../modules/ libsrc = ../lib-src/ etcdir = ../etc/ @@ -44,12 +52,11 @@ prefix=@prefix@ srcdir=@srcdir@ blddir=@blddir@ version=@version@ -CC=@CC@ +CC=@XEMACS_CC@ CPP=@CPP@ CFLAGS=@CFLAGS@ CPPFLAGS=@CPPFLAGS@ LDFLAGS=@LDFLAGS@ -RECURSIVE_MAKE=@RECURSIVE_MAKE@ c_switch_all=@c_switch_all@ ld_switch_all=@ld_switch_all@ @@ -90,7 +97,6 @@ vpath %.h @srcdir@ vpath config.h vpath paths.h vpath Emacs.ad.h -vpath puresize-adjust.h vpath sheap-adjust.h #else VPATH=@srcdir@ @@ -111,7 +117,7 @@ $(lwlib_libs) : 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 @@ -169,13 +175,13 @@ objs=\ 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 pure.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 @@ -292,19 +298,28 @@ X11_objs = EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o ## define otherobjs as list of object files that make-docfile ## should not be told about. -otherobjs = $(BTL_objs) lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs) +otherobjs = lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs) otherrtls = $(otherobjs:.o=.c.rtl) othersrcs = $(otherobjs:.o=.c) -LIBES = $(lwlib_libs) $(quantify_libs) $(malloclib) $(ld_libs_all) $(lib_gcc) +LIBES = $(lwlib_libs) $(malloclib) $(ld_libs_all) $(lib_gcc) #ifdef I18N3 mo_dir = ${etcdir} 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 release: temacs ${libsrc}DOC $(mo_file) ${other_files} #ifdef CANNOT_DUMP @@ -314,39 +329,37 @@ release: temacs ${libsrc}DOC $(mo_file) ${other_files} -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 - -$(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump +#ifdef HEAP_IN_DATA + @$(RM) $@ $@.exe && touch SATISFIED + -${dump_temacs} @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 - -$(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump - @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 : @@ -441,22 +454,26 @@ temacs: $(temacs_deps) .PHONY : run-temacs run-temacs: temacs - -$(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el run-temacs + -${run_temacs} + +## We have automated tests!! +testdir = ${srcdir}/../tests/automated +batch_test_emacs = -batch -l ${testdir}/test-harness.el -f batch-test-emacs ${testdir} + +.PHONY: check check-temacs +check: + ./${PROGNAME} ${batch_test_emacs} +check-temacs: + ${run_temacs} ${batch_test_emacs} ## Debugging targets: ## -## RTC is Sun WorkShop's Run Time Checking -## -## Purify, Quantify, PureCoverage are software quality products from -## Rational, formerly Pure Atria, formerly Pure Software. -## -## None of these products work with a dumped xemacs binary, because it -## does unexpected things like free memory that has been malloc'ed in -## a *different* process!! So we need to run these on temacs. -## - -.PHONY : run-rtcmacs run-puremacs run-quantmacs +## None of the debugging products work with a dumped xemacs binary, +## because it does unexpected things like free memory that has been +## malloc'ed in a *different* process!! So we need to run these on +## temacs. +## RTC is Sun WorkShop's Run Time Checking, integrated with dbx rtc_patch.o: rtc_patch_area -o $@ @@ -464,6 +481,7 @@ rtcmacs: $(temacs_deps) rtc_patch.o $(RM) temacs; $(RECURSIVE_MAKE) temacs RTC_patch_objs=rtc_patch.o mv temacs rtcmacs +.PHONY: run-rtcmacs run-rtcmacs: rtcmacs dbx -q -C -c \ 'dbxenv rtc_error_log_file_name /dev/fd/1; \ @@ -474,27 +492,32 @@ run-rtcmacs: rtcmacs runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \ run' rtcmacs +## 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 \ +PURIFY_PROG = purify +PURIFY_FLAGS = -chain-length=32 -ignore-signals=SIGPOLL -threads=yes \ -cache-dir=./purecache -always-use-cache-dir=yes -pointer-mask=0x0fffffff +PURIFY_LIBS = -lpthread puremacs: $(temacs_deps) - $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) -lpthread - -run-puremacs: puremacs - -$(DUMPENV) ./puremacs -batch -l ${srcdir}/../lisp/loadup.el run-temacs + $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS) + cp $@ temacs ## Quantify #ifdef QUANTIFY -quantify_prog = quantify -quantify_flags = -windows=no -record-data=no -quantify_includes = -I/local/include -quantify_libs = /local/lib/quantify_stubs.a +QUANTIFY_PROG = quantify +QUANTIFY_HOME = `$(QUANTIFY_PROG) -print-home-dir` +QUANTIFY_FLAGS = -cache-dir=./purecache -always-use-cache-dir=yes +cppflags += -I$(QUANTIFY_HOME) +temacs_link_args += $(QUANTIFY_HOME)/quantify_stubs.a quantmacs: $(temacs_deps) - $(quantify_prog) $(quantify_flags) $(LD) $(temacs_link_args) + $(QUANTIFY_PROG) $(QUANTIFY_FLAGS) $(LD) $(temacs_link_args) + cp $@ temacs #endif /* QUANTIFY */ + PURECOV_PROG=purecov covmacs: $(temacs_deps) $(PURECOV_PROG) $(LD) $(temacs_link_args) @@ -604,10 +627,9 @@ libextcli_Xlib.so.1: ${external_client_xlib_objs_shared} #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." @@ -648,16 +670,6 @@ alloca.o : ${srcdir}/alloca.s config.h #endif /* HAVE_ALLOCA */ #endif /* ! defined (C_ALLOCA) */ -#ifdef EMACS_BTL -BTL_includes = -I$(BTL_dir) -BTL_compile = -DEMACS_BTL -D`lucid-arch` -I. $(BTL_includes) $(BTL_dir)/$(@:.o=.c) - -cadillac-btl.o cadillac-btl-process.o cadillac-btl-emacs.o: - $(CC) $(CFLAGS) -c $(BTL_compile) -cadillac-btl-asm.o: - $(CC) $(CFLAGS) -c $(BTL_compile) -#endif /* EMACS_BTL */ - #ifdef HAVE_NATIVE_SOUND sunplay.o: ${srcdir}/sunplay.c $(CC) -c $(sound_cflags) $(cflags) ${srcdir}/sunplay.c @@ -672,14 +684,14 @@ hpplay.o: ${srcdir}/hpplay.c .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 TAGS ${PROGNAME}.* + GNUmakefile Makefile Makefile.in TAGS ${PROGNAME}.* realclean: distclean versionclean: $(RM) ${PROGNAME} ${PROGNAME}.exe ${libsrc}DOC @@ -695,8 +707,37 @@ unlock: 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 - $(RM) ${srcdir}/depend depend.tmp - perl ${srcdir}/make-src-depend > depend.tmp - mv depend.tmp ${srcdir}/depend + cd ${srcdir} && $(RM) depend.tmp && \ + perl make-src-depend > depend.tmp && \ + $(RM) depend && mv depend.tmp depend