From: Ken Raeburn Date: Wed, 26 Aug 2009 08:28:23 +0000 (+0000) Subject: * Makefile.in (buildobj.h): New target. X-Git-Tag: emacs-pretest-23.1.90~1673 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=878bde492768ea1e0dca48391d1612766f552730;p=emacs.git * Makefile.in (buildobj.h): New target. (doc.o): Depend on it. (temacs${EXEEXT}): Don't generate buildobj.lst. (mostlyclean): Delete buildobj.h, not buildobj.lst. * makefile.w32-in ($(SRC)/buildobj.h): New target. ($(BLD)/doc.$(O)): Depend on it. (make-buildobj-CMD, make-buildobj-SH): New targets. (Syntax help provided by Eli Zaretskii.) ($(TEMACS)): Don't generate buildobj.lst. * doc.c: Include buildobj.h. (buildobj): New static variable. (Fsnarf_documentation): Use it, instead of opening and reading buildobj.lst. --- diff --git a/src/ChangeLog b/src/ChangeLog index cff1f7a6431..3377e833138 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,19 @@ +2009-08-26 Ken Raeburn + + * Makefile.in (buildobj.h): New target. + (doc.o): Depend on it. + (temacs${EXEEXT}): Don't generate buildobj.lst. + (mostlyclean): Delete buildobj.h, not buildobj.lst. + * makefile.w32-in ($(SRC)/buildobj.h): New target. + ($(BLD)/doc.$(O)): Depend on it. + (make-buildobj-CMD, make-buildobj-SH): New targets. (Syntax help + provided by Eli Zaretskii.) + ($(TEMACS)): Don't generate buildobj.lst. + * doc.c: Include buildobj.h. + (buildobj): New static variable. + (Fsnarf_documentation): Use it, instead of opening and reading + buildobj.lst. + 2009-08-25 Michael Albinus * dbusbind.c (Fdbus_call_method) diff --git a/src/Makefile.in b/src/Makefile.in index 567bff9acea..fa2457c73a8 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -938,8 +938,10 @@ ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} ${libsrc}make-docfile${EXEEXT}: cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT} +buildobj.h: Makefile + echo "#define BUILDOBJ \"${obj} ${otherobj} " OBJECTS_MACHINE "\"" > buildobj.h + temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT} - echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst #ifdef NS_IMPL_GNUSTEP $(CC) -rdynamic YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \ -L@GNUSTEP_SYSTEM_LIBRARIES@ -lgnustep-gui -lgnustep-base \ @@ -1064,7 +1066,8 @@ dispnew.o: dispnew.c systime.h commands.h process.h frame.h \ disptab.h indent.h $(INTERVALS_H) \ xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \ syssignal.h $(config_h) -doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h +doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h \ + buildobj.h doprnt.o: doprnt.c character.h $(config_h) dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \ msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \ @@ -1284,7 +1287,7 @@ mostlyclean: rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a rm -f ../etc/DOC rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT} - rm -f buildobj.lst + rm -f buildobj.h clean: mostlyclean rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT} #ifdef HAVE_NS diff --git a/src/doc.c b/src/doc.c index c74085e7b6c..6d5862ce292 100644 --- a/src/doc.c +++ b/src/doc.c @@ -42,6 +42,7 @@ along with GNU Emacs. If not, see . */ #include "keyboard.h" #include "character.h" #include "keymap.h" +#include "buildobj.h" #ifdef HAVE_INDEX extern char *index P_ ((const char *, int)); @@ -552,6 +553,7 @@ store_function_docstring (fun, offset) } } +static const char buildobj[] = BUILDOBJ; DEFUN ("Snarf-documentation", Fsnarf_documentation, Ssnarf_documentation, 1, 1, 0, @@ -598,32 +600,9 @@ the same file name is found in the `doc-directory'. */) /* Vbuild_files is nil when temacs is run, and non-nil after that. */ if (NILP (Vbuild_files)) { - size_t cp_size = 0; - size_t to_read; - int nr_read; - char *cp = NULL; - char *beg, *end; - - fd = emacs_open ("buildobj.lst", O_RDONLY, 0); - if (fd < 0) - report_file_error ("Opening file buildobj.lst", Qnil); - - filled = 0; - for (;;) - { - cp_size += 1024; - to_read = cp_size - 1 - filled; - cp = xrealloc (cp, cp_size); - nr_read = emacs_read (fd, &cp[filled], to_read); - filled += nr_read; - if (nr_read < to_read) - break; - } + const char *beg, *end; - emacs_close (fd); - cp[filled] = 0; - - for (beg = cp; *beg; beg = end) + for (beg = buildobj; *beg; beg = end) { int len; @@ -639,8 +618,6 @@ the same file name is found in the `doc-directory'. */) if (len > 0) Vbuild_files = Fcons (make_string (beg, len), Vbuild_files); } - - xfree (cp); } fd = emacs_open (name, O_RDONLY, 0); diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 05696072ec0..f3468a0482a 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -178,10 +178,24 @@ $(TEMACS): $(TLIB0) $(TLIB1) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES) \ ../nt/$(BLD)/addsection.exe $(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS) "../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 21 - echo $(OBJ0) > $(BLD)/buildobj.lst - echo $(OBJ1) >> $(BLD)/buildobj.lst - echo $(WIN32OBJ) >> $(BLD)/buildobj.lst - echo $(FONTOBJ) >> $(BLD)/buildobj.lst + +# These omit firstfile.${O}, but there's no documentation in there +# anyways. +$(SRC)/buildobj.h: make-buildobj-$(SHELLTYPE) +make-buildobj-CMD: Makefile + echo #define BUILDOBJ ^"\ > $(SRC)/buildobj.h + echo $(OBJ0) \ >> $(SRC)/buildobj.h + echo $(OBJ1) \ >> $(SRC)/buildobj.h + echo $(WIN32OBJ) \ >> $(SRC)/buildobj.h + echo $(FONTOBJ) \ >> $(SRC)/buildobj.h + echo ^" >> $(SRC)/buildobj.h +make-buildobj-SH: Makefile + echo '#define BUILDOBJ $(DQUOTE)\\' > $(SRC)/buildobj.h + echo $(OBJ0) '\\' >> $(SRC)/buildobj.h + echo $(OBJ1) '\\' >> $(SRC)/buildobj.h + echo $(WIN32OBJ) '\\' >> $(SRC)/buildobj.h + echo $(FONTOBJ) '\\' >> $(SRC)/buildobj.h + echo '$(DQUOTE)' >> $(SRC)/buildobj.h bootstrap: bootstrap-emacs @@ -580,6 +594,7 @@ $(BLD)/dispnew.$(O) : \ $(BLD)/doc.$(O) : \ $(SRC)/doc.c \ $(CONFIG_H) \ + $(SRC)/buildobj.h \ $(EMACS_ROOT)/nt/inc/unistd.h \ $(EMACS_ROOT)/nt/inc/sys/file.h \ $(EMACS_ROOT)/nt/inc/sys/time.h \