X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2FMakefile.in.in;h=e840e6d3d2e19efc38955cb139b1230b03beeea2;hp=bbb31271114933b1860faf838088d66c2e21f8ad;hb=2fd9701a4f902054649dde9143a3f77809afee8f;hpb=cb9f6f4eadc44f1becb32cbbd1db26449e347755 diff --git a/src/Makefile.in.in b/src/Makefile.in.in index bbb3127..e840e6d 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. @@ -24,7 +25,20 @@ PROGNAME=@PROGNAME@ -all: ${PROGNAME} +#define NOT_C_CODE +#include "config.h" + +#ifdef PDUMP +DUMP_TARGET = ${PROGNAME}.dmp +EXE_TARGET = ${PROGNAME} +ID_FILE = dump-id.c +#else +DUMP_TARGET = ${PROGNAME} +EXE_TARGET = temacs +ID_FILE = +#endif + +all: ${DUMP_TARGET} .PHONY : all release dump-elc dump-elcs all-elc all-elcs lint ## For performance and consistency, no built-in rules. @@ -42,6 +56,7 @@ SHELL=/bin/sh RM = rm -f lispdir = ${srcdir}/../lisp/ +moduledir = ${srcdir}/../modules/ libsrc = ../lib-src/ etcdir = ../etc/ @@ -71,8 +86,6 @@ LD=@ld@ lib_gcc=@lib_gcc@ ##libmcheck=@libmcheck@ -#define NOT_C_CODE -#include "config.h" ## With the traditional VPATH setting, it is not possible to ## simultaneously compile in-place and in another directory. The @@ -95,8 +108,8 @@ vpath %.h @srcdir@ vpath config.h vpath paths.h vpath Emacs.ad.h -vpath puresize-adjust.h vpath sheap-adjust.h +vpath dump-id.c #else VPATH=@srcdir@ #endif @@ -116,7 +129,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 @@ -125,7 +138,7 @@ LIBI18N = -li18n X11_libs = $(LIBI18N) #endif /* HAVE_X_WINDOWS */ -#ifdef HEAP_IN_DATA +#if defined (HEAP_IN_DATA) && !defined(PDUMP) sheap_obj=sheap.o #endif @@ -174,13 +187,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 glyphs-widget.o\ - gui.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 @@ -235,37 +248,37 @@ external_widget_objs = ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o # define EXTW_LINK(objs, output) $(CC) -shared objs -Xlinker -z -Xlinker text -o output extw_link_beg = $(CC) -shared extw_link_mid = -Xlinker -z -Xlinker text -o -extw_link_end = +extw_link_end = ## I cannot figure out how to do shared a.out libraries, so just punt. # elif !defined (LINUX) || defined (__ELF__) # define EXTW_LINK(objs, output) $(CC) -shared objs -o output extw_link_beg = $(CC) -shared extw_link_mid = -o -extw_link_end = +extw_link_end = # endif # elif defined (USG5) # if defined (IRIX) # define EXTW_LINK(objs, output) $(LD) -shared -g -check_registry ${TOOLROOT}/usr/lib/so_locations objs -o output -extw_link_beg = $(LD) -shared -g -check_registry ${TOOLROOT}/usr/lib/so_locations -extw_link_mid = -o -extw_link_end = +extw_link_beg = $(LD) -shared -g -check_registry ${TOOLROOT}/usr/lib/so_locations +extw_link_mid = -o +extw_link_end = # else /* not IRIX */ # define EXTW_LINK(objs, output) $(CC) -G objs -z text -o output extw_link_beg = $(CC) -G extw_link_mid = -z text -o -extw_link_end = +extw_link_end = # endif /* not IRIX */ # else /* not USG5 */ # if defined (DEC_ALPHA) && defined (OSF1) # define EXTW_LINK(objs, output) $(LD) $(ldflags) $(ld_switch_shared) -d objs -o output $(LIBES) -extw_link_beg = $(LD) $(ldflags) $(ld_switch_shared) -d -extw_link_mid = -o +extw_link_beg = $(LD) $(ldflags) $(ld_switch_shared) -d +extw_link_mid = -o extw_link_end = $(LIBES) # else /* !(DEC_ALPHA && OSF1) */ # define EXTW_LINK(objs, output) $(LD) -dc objs -assert pure-text -o output extw_link_beg = $(LD) -dc extw_link_mid = -assert pure-text -o -extw_link_end = +extw_link_end = # endif /* !(DEC_ALPHA && OSF1) */ # endif /* not USG5 */ @@ -308,59 +321,49 @@ mo_dir = ${etcdir} mo_file = ${mo_dir}emacs.mo #endif -LOADPATH = EMACSBOOTSTRAPLOADPATH="${lispdir}:${blddir}" -DUMPENV = $(LOADPATH) -temacs_loadup = $(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el +temacs_loadup = ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/loadup.el dump_temacs = ${temacs_loadup} dump run_temacs = ${temacs_loadup} run-temacs +debug_temacs = gdb ${EXE_TARGET} -release: temacs ${libsrc}DOC $(mo_file) ${other_files} +release: ${EXE_TARGET} ${libsrc}DOC $(mo_file) ${other_files} #ifdef CANNOT_DUMP - ln temacs ${PROGNAME} + ln ${EXE_TARGET} ${PROGNAME} #else -#ifdef HAVE_SHM -if [ -w ${srcdir}/../lisp ]; then \ - w=`pwd`; cd ${srcdir} && $${w}/temacs -nl -batch -l ${srcdir}/../lisp/inc-vers; \ + w=`pwd`; cd ${srcdir} && $${w}/${EXE_TARGET} -nd -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) */ + -./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/loadup.el dump touch release #endif /* ! defined (CANNOT_DUMP) */ -${PROGNAME}: temacs ${libsrc}DOC $(mo_file) ${other_files} update-elc.stamp +${DUMP_TARGET}: ${EXE_TARGET} ${libsrc}DOC $(mo_file) ${other_files} update-elc.stamp +#ifdef HEAP_IN_DATA @$(RM) $@ && 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 +fastdump: ${EXE_TARGET} + @$(RM) ${DUMP_TARGET} && touch SATISFIED -${dump_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; + @./${PROGNAME} -batch -vanilla -f list-load-path-shadows FRC.update-elc.stamp : -update-elc.stamp : temacs FRC.update-elc.stamp +update-elc.stamp : ${EXE_TARGET} FRC.update-elc.stamp @touch NOBYTECOMPILE - ${DUMPENV} ./temacs -batch -l ${srcdir}/../lisp/update-elc.el + ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/update-elc.el @if test ! -f $@ -o -f NOBYTECOMPILE; then touch $@; fi; \ $(RM) NOBYTECOMPILE @@ -379,16 +382,16 @@ dynodump_deps = ../dynodump/dynodump.so cd ../dynodump && $(RECURSIVE_MAKE) #endif /* DYNODUMP */ -${libsrc}DOC: temacs update-elc.stamp +${libsrc}DOC: ${EXE_TARGET} update-elc.stamp $(RM) ${libsrc}DOC; \ - ${DUMPENV} ./temacs -batch -l ${srcdir}/../lisp/make-docfile.el -- \ + ${DUMPENV} ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/make-docfile.el -- \ -o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \ ${obj_src} ${mallocdocsrc} ${rallocdocsrc} dump_elcs: dump-elcs -dump-elcs: temacs - -${DUMPENV} ./temacs -batch -l ${srcdir}/../lisp/update-elc.el +dump-elcs: ${EXE_TARGET} + -${DUMPENV} ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/update-elc.el all-elc all-elcs: cd .. && $(RECURSIVE_MAKE) all-elc @@ -422,6 +425,9 @@ ${libsrc}make-po: #endif /* I18N3 */ +${libsrc}make-dump-id: + cd ${libsrc} && $(RECURSIVE_MAKE) make-dump-id + ${libsrc}make-docfile: cd ${libsrc} && $(RECURSIVE_MAKE) make-docfile @@ -435,31 +441,31 @@ lint: $(LINTFILES) $(LINT.c) $(LINTFILES) ## end of Lint Section -temacs_deps=\ +link_deps=\ $(start_files) ${objs} ${otherobjs}\ $(lwlib_deps) $(dynodump_deps) +temacs_deps=\ + $(link_deps) $(ID_FILE) + temacs_link_args=\ - ${start_flags} ${ldflags}\ - -o $@ ${start_files} ${objs} ${otherobjs} ${LIBES} + ${start_flags} ${ldflags} -I${srcdir} \ + -o $@ ${start_files} ${objs} ${otherobjs} ${ID_FILE} ${LIBES} -temacs: $(temacs_deps) +${EXE_TARGET}: $(temacs_deps) $(LD) $(temacs_link_args) +dump-id.c: ${libsrc}make-dump-id ${link_deps} + ${libsrc}make-dump-id + .PHONY : run-temacs -run-temacs: temacs +run-temacs: ${EXE_TARGET} -${run_temacs} ## 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 \ - ${testdir}/md5-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: @@ -479,8 +485,8 @@ rtc_patch.o: rtc_patch_area -o $@ rtcmacs: $(temacs_deps) rtc_patch.o - $(RM) temacs; $(RECURSIVE_MAKE) temacs RTC_patch_objs=rtc_patch.o - mv temacs rtcmacs + $(RM) ${EXE_TARGET}; $(RECURSIVE_MAKE) ${EXE_TARGET} RTC_patch_objs=rtc_patch.o + mv ${EXE_TARGET} rtcmacs .PHONY: run-rtcmacs run-rtcmacs: rtcmacs @@ -493,17 +499,25 @@ run-rtcmacs: rtcmacs runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \ run' rtcmacs +debug-temacs: ${EXE_TARGET} + -${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 +PURIFY_FLAGS =\ +#ifdef PDUMP + -search-mmaps=yes\ +#endif + -chain-length=32 -ignore-signals=SIGPOLL -threads=yes\ + -cache-dir=./purecache -always-use-cache-dir=yes + PURIFY_LIBS = -lpthread puremacs: $(temacs_deps) $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS) - cp $@ temacs + cp $@ ${EXE_TARGET} ## Quantify #ifdef QUANTIFY @@ -515,7 +529,7 @@ temacs_link_args += $(QUANTIFY_HOME)/quantify_stubs.a quantmacs: $(temacs_deps) $(QUANTIFY_PROG) $(QUANTIFY_FLAGS) $(LD) $(temacs_link_args) - cp $@ temacs + cp $@ ${EXE_TARGET} #endif /* QUANTIFY */ @@ -628,10 +642,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." @@ -686,7 +699,7 @@ 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. @@ -709,10 +722,40 @@ 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 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