X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2FMakefile.in.in;h=0b2c9cf68fb02dc52355e53d564b3b9b3574addc;hp=0934deb4c7daa8da3e7158cb9bd556a5142e7216;hb=1cc5b779cb8755e01e02aead4fba711c06158b90;hpb=a7bf8d60d66c38f62928b171842d1b45d4539077 diff --git a/src/Makefile.in.in b/src/Makefile.in.in index 0934deb..0b2c9cf 100644 --- a/src/Makefile.in.in +++ b/src/Makefile.in.in @@ -25,7 +25,19 @@ PROGNAME=@PROGNAME@ -all: ${PROGNAME} +#define NOT_C_CODE +#include "config.h" + +#ifdef PDUMP +DUMP_TARGET = ${PROGNAME}.dmp +EXE_TARGET = ${PROGNAME} +DUMP_ID = dump-id.o +#else +DUMP_TARGET = ${PROGNAME} +EXE_TARGET = temacs +#endif + +all: ${DUMP_TARGET} .PHONY : all release dump-elc dump-elcs all-elc all-elcs lint ## For performance and consistency, no built-in rules. @@ -73,8 +85,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 @@ -98,16 +108,13 @@ vpath config.h vpath paths.h vpath Emacs.ad.h vpath sheap-adjust.h +vpath dump-id.c #else VPATH=@srcdir@ #endif RM = rm -f -#ifdef HAVE_NATIVE_SOUND -sound_cflags=@sound_cflags@ -#endif - LWLIB_SRCDIR = ${srcdir}/../lwlib #ifdef HAVE_X_WINDOWS @@ -116,7 +123,7 @@ lwlib_deps = $(lwlib_libs) $(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\ +x_objs=console-x.o device-x.o event-Xt.o frame-x.o\ glyphs-x.o objects-x.o redisplay-x.o select-x.o xgccache.o #ifdef AIX4 @@ -126,8 +133,12 @@ LIBI18N = -li18n X11_libs = $(LIBI18N) #endif /* HAVE_X_WINDOWS */ -#ifdef HEAP_IN_DATA -sheap_obj=sheap.o +#if defined (HEAP_IN_DATA) && !defined (PDUMP) +sheap_objs=sheap.o +#endif + +#if defined (WIN32_NATIVE) || defined (CYGWIN) +win32_objs=win32.o xemacs_res.o #endif ## -Demacs is needed to make some files produce the correct version @@ -135,7 +146,11 @@ sheap_obj=sheap.o cppflags = $(CPPFLAGS) -Demacs -I. $(c_switch_all) cflags = $(CFLAGS) $(cppflags) +#if defined (WIN32_NATIVE) || defined (CYGWIN) +ldflags = $(LDFLAGS) -mwindows $(ld_switch_all) $(ld_dynamic_link_flags) +#else ldflags = $(LDFLAGS) $(ld_switch_all) $(ld_dynamic_link_flags) +#endif #ifdef SOLARIS2 %.o : %.c @@ -181,9 +196,9 @@ objs=\ 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 select.o $(sheap_obj) signal.o sound.o\ + search.o select.o $(sheap_objs) signal.o sound.o\ specifier.o strftime.o symbols.o syntax.o sysdep.o\ - undo.o $(x_objs) widget.o window.o + undo.o $(x_objs) widget.o window.o $(win32_objs) obj_rtl = $(objs:.o=.c.rtl) @@ -309,52 +324,50 @@ mo_dir = ${etcdir} mo_file = ${mo_dir}emacs.mo #endif -temacs_loadup = ./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 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 -if [ -w ${srcdir}/../lisp ]; then \ - w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l ${srcdir}/../lisp/inc-vers; \ + w=`pwd`; cd ${srcdir} && $${w}/${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/inc-vers; \ else true; fi - -./temacs -batch -l ${srcdir}/../lisp/loadup.el dump + -./${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) $@ $@.exe && touch SATISFIED + @$(RM) $@ && 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; \ + $(RM) $@; \ $(RECURSIVE_MAKE) $@; #else - @$(RM) $@ xemacs.dmp + @$(RM) $@ ${dump_temacs} -#ifdef PDUMP - @mv temacs $@ -#endif @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} @./${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 - ./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 @@ -373,16 +386,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 @@ -416,6 +429,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 @@ -429,23 +445,25 @@ 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) ${DUMP_ID} + temacs_link_args=\ ${start_flags} ${ldflags}\ - -o $@ ${start_files} ${objs} ${otherobjs} ${LIBES} + -o $@ ${start_files} ${objs} ${otherobjs} ${DUMP_ID} ${LIBES} -temacs: $(temacs_deps) +${EXE_TARGET}: $(temacs_deps) $(LD) $(temacs_link_args) -#ifdef PDUMP - @$(RM) xemacs.dmp -#endif + +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!! @@ -470,8 +488,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 @@ -484,7 +502,7 @@ run-rtcmacs: rtcmacs runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \ run' rtcmacs -debug-temacs: temacs +debug-temacs: ${EXE_TARGET} -${debug_temacs} ## Purify, Quantify, PureCoverage are software quality products from @@ -492,17 +510,17 @@ debug-temacs: temacs ## ## Purify PURIFY_PROG = purify +PURIFY_LIBS = PURIFY_FLAGS =\ #ifdef PDUMP -search-mmaps=yes\ #endif - -chain-length=32 -ignore-signals=SIGPOLL -threads=yes\ - -cache-dir=./purecache -always-use-cache-dir=yes + -chain-length=32 -ignore-signals=SIGPOLL\ + -cache-dir=${blddir}/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 @@ -514,7 +532,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 */ @@ -539,6 +557,10 @@ TransientEmacsShell.c.rtl : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o conf $(CC) -dr -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c mv EmacsShell-sub.c.rtl TransientEmacsShell.c.rtl +## The above rules are subject to a race condition if using a parallel make. +TransientEmacsShell.o : TopLevelEmacsShell.o +TransientEmacsShell.c.rtl : TopLevelEmacsShell.c.rtl + ## Position-independent code for shared library creation #if USE_GCC pic_arg = -fpic @@ -671,19 +693,23 @@ alloca.o : ${srcdir}/alloca.s config.h #endif /* ! defined (C_ALLOCA) */ #ifdef HAVE_NATIVE_SOUND +sound_cflags=@sound_cflags@ sunplay.o: ${srcdir}/sunplay.c $(CC) -c $(sound_cflags) $(cflags) ${srcdir}/sunplay.c hpplay.o: ${srcdir}/hpplay.c $(CC) -c -Demacs $(sound_cflags) $(cflags) ${srcdir}/hpplay.c #endif /* HAVE_NATIVE_SOUND */ +xemacs_res.o: ${srcdir}/../nt/xemacs.rc + windres --include-dir ${srcdir}/../nt -i ${srcdir}/../nt/xemacs.rc -o $@ + ## System-specific programs to be made. ## ${other_files}, $(objects_system) and $(objects_machine) ## select which of these should be compiled. */ .PHONY: mostlyclean clean distclean realclean versionclean extraclean mostlyclean: - $(RM) temacs puremacs quantmacs prefix-args *.o *.i \ + $(RM) temacs puremacs quantmacs *.o *.i \ core temacs.exe sheap-adjust.h clean: mostlyclean versionclean $(RM) libextcli* update-elc.stamp @@ -694,7 +720,7 @@ distclean: clean GNUmakefile Makefile Makefile.in TAGS ${PROGNAME}.* realclean: distclean versionclean: - $(RM) ${PROGNAME} ${PROGNAME}.exe ${libsrc}DOC + $(RM) ${EXE_TARGET} ${DUMP_TARGET} ${libsrc}DOC extraclean: realclean $(RM) *~ \#* m/*~ m/\#* s/*~ s/\#* @@ -717,7 +743,7 @@ install: ${PROGNAME} cd ${srcdir}; hdrdir2=`pwd`; cd $$hdir; \ test "$$hdrdir2" != "$$hdir" && hdir="$$hdir $$hdrdir2"; \ (for thisdir in $$hdir; do \ - cd $$hdir && \ + cd $$thisdir && \ (hdrtars=; \ for hdrfile in *.h; do \ hdrtars="$$hdrtars $$hdrfile"; \