summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@raeburn.org>2009-08-26 08:28:23 +0000
committerKen Raeburn <raeburn@raeburn.org>2009-08-26 08:28:23 +0000
commit878bde492768ea1e0dca48391d1612766f552730 (patch)
treeff185745acb66c13c2d3729c881f775f626aa52c
parentdc81064982de88b01b14fc200067a9f50522934e (diff)
downloademacs-878bde492768ea1e0dca48391d1612766f552730.tar.gz
* 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.
-rw-r--r--src/ChangeLog16
-rw-r--r--src/Makefile.in9
-rw-r--r--src/doc.c31
-rw-r--r--src/makefile.w32-in23
4 files changed, 45 insertions, 34 deletions
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 <raeburn@raeburn.org>
+
+ * 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 <michael.albinus@gmx.de>
* 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 <http://www.gnu.org/licenses/>. */
#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 \