diff src/Makefile.in.in @ 183:e121b013d1f0 r20-3b18

Import from CVS: tag r20-3b18
author cvs
date Mon, 13 Aug 2007 09:54:23 +0200
parents bfd6434d15b3
children 3d6bfa290dbd
line wrap: on
line diff
--- a/src/Makefile.in.in	Mon Aug 13 09:53:23 2007 +0200
+++ b/src/Makefile.in.in	Mon Aug 13 09:54:23 2007 +0200
@@ -23,7 +23,7 @@
 ## Synched up with: Not synched with FSF.
 
 all: xemacs
-.PHONY : all release dump-elc dump-elcs all-elc all-elcs lint binary
+.PHONY : all release dump-elc dump-elcs all-elc all-elcs lint
 
 ## For performance and consistency, no built-in rules.
 .SUFFIXES:
@@ -89,23 +89,12 @@
 vpath config.h
 vpath paths.h
 vpath Emacs.ad.h
-vpath puresize_adjust.h
+vpath puresize-adjust.h
 #else
 VPATH=@srcdir@
 #endif
 
 RM = rm -f
-PURIFY_PROG=purify
-PURIFY_FLAGS=-chain-length=16 -ignore-signals=SIGPOLL -log-file=puremacs.log \
-             -messages=batch -show-directory=yes -windows=yes -threads=yes \
-             -cache-dir=. -always-use-cache-dir=yes -pointer-mask=0x0fffffff
-PURECOV_PROG=purecov
-#ifdef  QUANTIFY
-quantify_prog  = quantify
-quantify_flags = -windows=no -record-data=no
-quantify_includes = -I/local/include
-quantify_libs = /local/lib/quantify_stubs.a
-#endif /* QUANTIFY */
 
 #ifdef HAVE_NATIVE_SOUND
 sound_cflags=@sound_cflags@
@@ -298,21 +287,20 @@
 
 FRC.DOC:
 
-FRC.xemacs:
+xemacs: temacs ${libsrc}DOC $(mo_file) ${other_files} update-elc.stamp
+	@$(RM) $@ && touch SATISFIED
+	-$(DUMPENV) ./temacs -batch -l loadup.el dump
+	@if test -f $@;        then $(RM) SATISFIED; exit 0; fi; \
+	 if test -f SATISFIED; then $(RM) SATISFIED; exit 1; fi; \
+	 $(RECURSIVE_MAKE) $@;
 
-xemacs: temacs ${libsrc}DOC $(mo_file) ${other_files} FRC.xemacs
+FRC.update-elc.stamp :
+
+update-elc.stamp : FRC.update-elc.stamp
 	@touch NOBYTECOMPILE
-	-${DUMPENV} ./temacs -batch -l ../prim/update-elc.el
-	if test -f NOBYTECOMPILE || test ! -f xemacs; then \
-		$(RECURSIVE_MAKE) binary; \
-	fi
-	@$(RM) NOBYTECOMPILE
-
-binary: temacs
-	@touch SATISFIED
-	-$(DUMPENV) ./temacs -batch -l loadup.el dump
-	@if test ! -f SATISFIED; then $(RECURSIVE_MAKE) $@; fi
-	@$(RM) SATISFIED
+	${DUMPENV} ./temacs -batch -l ../prim/update-elc.el
+	@if test ! -f $@ -o -f NOBYTECOMPILE; then touch $@; fi; \
+	 $(RM) NOBYTECOMPILE
 
 obj_src = $(objs:.o=.c)
 
@@ -382,7 +370,7 @@
 ## end of Lint Section
 
 temacs_deps=\
- $(LOCALCPP) $(start_files) ${objs} ${otherobjs}\
+ $(start_files) ${objs} ${otherobjs}\
  $(lwlib_deps) $(dynodump_deps) prefix-args
 
 temacs_link_args=\
@@ -390,9 +378,26 @@
  -o $@ ${start_files} ${objs} ${otherobjs} ${LIBES}
 
 temacs: $(temacs_deps)
-	if $(LD) $(temacs_link_args); then \
-		$(RM) xemacs; \
-	fi
+	$(LD) $(temacs_link_args)
+
+.PHONY : run-temacs
+
+run-temacs:
+	./temacs -batch -l loadup.el run-temacs
+
+## 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
 
 rtc_patch.o:
 	rtc_patch_area -o $@
@@ -401,7 +406,7 @@
 	$(RM) temacs; $(RECURSIVE_MAKE) temacs RTC_patch_objs=rtc_patch.o
 	mv temacs rtcmacs
 
-rtcrun: rtcmacs
+run-rtcmacs: rtcmacs
 	dbx -q -C -c \
 	'dbxenv rtc_error_log_file_name /dev/fd/1; \
 	dbxenv suppress_startup_message 5.0; \
@@ -411,19 +416,32 @@
 	runargs -batch -l loadup.el run-temacs -q; \
 	run' rtcmacs
 
+## 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
 puremacs: $(temacs_deps)
 	$(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) -lpthread
 
-.PHONY : run-puremacs
 run-puremacs: puremacs
 	./puremacs -batch -l loadup.el run-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
+
 quantmacs: $(temacs_deps)
 	$(quantify_prog) $(quantify_flags) $(LD) $(temacs_link_args)
+#endif /* QUANTIFY */
 
+PURECOV_PROG=purecov
 covmacs: $(temacs_deps)
 	$(PURECOV_PROG) $(LD) $(temacs_link_args)
 
+
 TopLevelEmacsShell.o : ${srcdir}/EmacsShell-sub.c
 	$(CC) -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
 	mv EmacsShell-sub.o TopLevelEmacsShell.o
@@ -523,11 +541,11 @@
 	$(CC) $(cflags) ${srcdir}/prefix-args.c -o prefix-args
 
 config.h: ${srcdir}/config.h.in
-puresize_adjust.h: ${srcdir}/puresize.h
+puresize-adjust.h: ${srcdir}/puresize.h
 paths.h: ${srcdir}/paths.h.in
 Emacs.ad.h: ${srcdir}/${etcdir}Emacs.ad
 
-config.h puresize_adjust.h paths.h Emacs.ad.h :
+config.h puresize-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."
@@ -598,11 +616,11 @@
 mostlyclean:
 	$(RM) temacs puremacs quantmacs prefix-args depend.* *.o *.i core
 clean: mostlyclean versionclean
-	$(RM) libextcli*
+	$(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 puresize_adjust.h Emacs.ad.h \
+	$(RM) config.h paths.h puresize-adjust.h Emacs.ad.h \
 	  Makefile Makefile.in TAGS
 realclean: distclean
 versionclean:
@@ -2106,7 +2124,7 @@
 pure.o: blocktype.h
 pure.o: config.h
 pure.o: dynarr.h
-pure.o: puresize.h puresize_adjust.h
+pure.o: puresize.h puresize-adjust.h
 ralloc.o: blocktype.h
 ralloc.o: config.h
 ralloc.o: dynarr.h