Mercurial > emacs
comparison src/Makefile.in @ 108798:dedcf813aa69
Do not preprocess src/Makefile.in.
* configure.in: Do not preprocess src/Makefile.in.
(cpp_undefs, CPP_NEED_TRADITIONAL): Remove.
(AC_EGREP_CPP): Test no longer needed.
* configure: Regenerate.
* config.bat: Do not preprocess src/Makefile.in.
* make-dist: No more Makefile.c files.
* INSTALL, src/README: Makefiles are not preprocessed.
* src/Makefile.in, src/autodeps.mk, src/deps.mk, src/ns.mk:
Convert comments to Makefile format.
* lib-src/Makefile.in (distclean): No more Makefile.c.
* src/Makefile.in (bootstrap-clean): No more Makefile.c.
* admin/notes/cpp: Remove file.
* admin/quick-install-emacs (AVOID): No more Makefile.c files.
* etc/PROBLEMS, etc/MACHINES: Remove details of cpp problems which can
no longer occur.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Wed, 26 May 2010 22:43:27 -0700 |
parents | 939ecb6ccd4d |
children | ff6d69344057 |
comparison
equal
deleted
inserted
replaced
108797:d674108e8753 | 108798:dedcf813aa69 |
---|---|
20 | 20 |
21 | 21 |
22 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That | 22 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That |
23 # script may need modifying in sync with changes made here. Try to | 23 # script may need modifying in sync with changes made here. Try to |
24 # avoid shell-ism because the DOS build has to use the DOS shell. | 24 # avoid shell-ism because the DOS build has to use the DOS shell. |
25 | |
26 # Don't try to replace the cpp processing using autoconf facilities, | |
27 # says rms. | |
28 # Replacing a particular part of the conditionals to work via autoconf | |
29 # is OK. | |
30 # Some of the conditionals might be dead now. Finding them and | |
31 # deleting them would be fine. | |
32 | 25 |
33 SHELL = /bin/sh | 26 SHELL = /bin/sh |
34 | 27 |
35 # Here are the things that we expect ../configure to edit. | 28 # Here are the things that we expect ../configure to edit. |
36 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. | 29 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. |
45 version = @version@ | 38 version = @version@ |
46 # Substitute an assignment for the MAKE variable, because | 39 # Substitute an assignment for the MAKE variable, because |
47 # BSD doesn't have it as a default. | 40 # BSD doesn't have it as a default. |
48 @SET_MAKE@ | 41 @SET_MAKE@ |
49 # Don't use LIBS. configure puts stuff in it that either shouldn't be | 42 # Don't use LIBS. configure puts stuff in it that either shouldn't be |
50 # linked with Emacs or is duplicated by the cpp stuff below. | 43 # linked with Emacs or is duplicated by the other stuff below. |
51 # LIBS = @LIBS@ | 44 # LIBS = @LIBS@ |
52 LIBOBJS = @LIBOBJS@ | 45 LIBOBJS = @LIBOBJS@ |
53 | 46 |
54 lispsource = ${srcdir}/../lisp/ | 47 lispsource = ${srcdir}/../lisp/ |
55 libsrc = ../lib-src/ | 48 libsrc = ../lib-src/ |
296 ## -MMD -MF ${DEPDIR}/$*.d if AUTO_DEPEND; else empty. | 289 ## -MMD -MF ${DEPDIR}/$*.d if AUTO_DEPEND; else empty. |
297 DEPFLAGS=@DEPFLAGS@ | 290 DEPFLAGS=@DEPFLAGS@ |
298 ## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'. | 291 ## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'. |
299 MKDEPDIR=@MKDEPDIR@ | 292 MKDEPDIR=@MKDEPDIR@ |
300 | 293 |
301 # ========================== start of cpp stuff ======================= | 294 ## DO NOT use -R. There is a special hack described in lastfile.c |
302 /* From here on, comments must be done in C syntax. */ | 295 ## which is used instead. Some initialized data areas are modified |
303 | 296 ## at initial startup, then labeled as part of the text area when |
304 /* DO NOT use -R. There is a special hack described in lastfile.c | 297 ## Emacs is dumped for the first time, and never changed again. |
305 which is used instead. Some initialized data areas are modified | 298 ## |
306 at initial startup, then labeled as part of the text area when | 299 ## -Demacs is needed to make some files produce the correct version |
307 Emacs is dumped for the first time, and never changed again. */ | 300 ## for use in Emacs. |
308 | 301 ## |
309 /* -Demacs is needed to make some files produce the correct version | 302 ## -DHAVE_CONFIG_H is needed for some other files to take advantage of |
310 for use in Emacs. | 303 ## the information in `config.h'. |
311 | 304 ## |
312 -DHAVE_CONFIG_H is needed for some other files to take advantage of | 305 ## C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM |
313 the information in ``config.h''. */ | 306 ## since it may have -I options that should override those. |
314 | 307 ## |
315 /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM | 308 ## FIXME? MYCPPFLAGS only referenced in etc/DEBUG. |
316 since it may have -I options that should override those. */ | 309 ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} \ |
317 /* MYCPPFLAGS only referenced in etc/DEBUG. */ | 310 ${C_SWITCH_MACHINE} ${C_SWITCH_SYSTEM} ${C_SWITCH_X_SITE} \ |
318 ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} ${C_SWITCH_MACHINE} ${C_SWITCH_SYSTEM} ${C_SWITCH_X_SITE} ${C_SWITCH_X_SYSTEM} ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} ${FREETYPE_CFLAGS} ${FONTCONFIG_CFLAGS} ${LIBOTF_CFLAGS} ${M17N_FLT_CFLAGS} ${DEPFLAGS} | 311 ${C_SWITCH_X_SYSTEM} ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} \ |
312 ${GCONF_CFLAGS} ${CFLAGS} ${FREETYPE_CFLAGS} ${FONTCONFIG_CFLAGS} \ | |
313 ${LIBOTF_CFLAGS} ${M17N_FLT_CFLAGS} ${DEPFLAGS} | |
319 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) | 314 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) |
320 | 315 |
321 .SUFFIXES: .m | 316 .SUFFIXES: .m |
322 .c.o: | 317 .c.o: |
323 @$(MKDEPDIR) | 318 @$(MKDEPDIR) |
325 .m.o: | 320 .m.o: |
326 @$(MKDEPDIR) | 321 @$(MKDEPDIR) |
327 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< | 322 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< |
328 | 323 |
329 | 324 |
330 /* lastfile must follow all files whose initialized data areas should | 325 ## lastfile must follow all files whose initialized data areas should |
331 be dumped as pure by dump-emacs. */ | 326 ## be dumped as pure by dump-emacs. |
332 obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ | 327 obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ |
333 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \ | 328 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \ |
334 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \ | 329 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \ |
335 emacs.o keyboard.o macros.o keymap.o sysdep.o \ | 330 emacs.o keyboard.o macros.o keymap.o sysdep.o \ |
336 buffer.o filelock.o insdel.o marker.o \ | 331 buffer.o filelock.o insdel.o marker.o \ |
342 process.o callproc.o \ | 337 process.o callproc.o \ |
343 region-cache.o sound.o atimer.o \ | 338 region-cache.o sound.o atimer.o \ |
344 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \ | 339 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \ |
345 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) | 340 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) |
346 | 341 |
347 /* Object files used on some machine or other. | 342 ## Object files used on some machine or other. |
348 These go in the DOC file on all machines in case they are needed. */ | 343 ## These go in the DOC file on all machines in case they are needed. |
349 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ | 344 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ |
350 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ | 345 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ |
351 fontset.o dbusbind.o \ | 346 fontset.o dbusbind.o \ |
352 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \ | 347 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \ |
353 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ | 348 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ |
354 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ) | 349 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ) |
355 | 350 |
356 /* gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. */ | 351 ## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. |
357 GMALLOC_OBJ=@GMALLOC_OBJ@ | 352 GMALLOC_OBJ=@GMALLOC_OBJ@ |
358 | 353 |
359 /* vm-limit.o if !SYSTEM_MALLOC, else empty. */ | 354 ## vm-limit.o if !SYSTEM_MALLOC, else empty. |
360 VMLIMIT_OBJ=@VMLIMIT_OBJ@ | 355 VMLIMIT_OBJ=@VMLIMIT_OBJ@ |
361 | 356 |
362 /* ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. */ | 357 ## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. |
363 RALLOC_OBJ=@RALLOC_OBJ@ | 358 RALLOC_OBJ=@RALLOC_OBJ@ |
364 | 359 |
365 /* Empty on Cygwin, lastfile.o elsewhere. */ | 360 ## Empty on Cygwin, lastfile.o elsewhere. |
366 PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ | 361 PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ |
367 /* lastfile.o on Cygwin, empty elsewhere. */ | 362 ## lastfile.o on Cygwin, empty elsewhere. |
368 POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ | 363 POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ |
369 | 364 |
370 /* List of object files that make-docfile should not be told about. */ | 365 ## List of object files that make-docfile should not be told about. |
371 otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ | 366 otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ |
372 $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS) | 367 $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS) |
373 | 368 |
374 /* This is the platform-specific list of Lisp files loaded into the | 369 ## This is the platform-specific list of Lisp files loaded into the |
375 dumped Emacs. It is arranged like this because it is easier to generate | 370 ## dumped Emacs. It is arranged like this because it is easier to generate |
376 it semi-mechanically from loadup.el this way. | 371 ## it semi-mechanically from loadup.el this way. |
377 | 372 ## |
378 Note that this list should not include lisp files which might not | 373 ## Note that this list should not include lisp files which might not |
379 be present, like site-load.el and site-init.el; this makefile | 374 ## be present, like site-load.el and site-init.el; this makefile |
380 expects them all to be either present or buildable. | 375 ## expects them all to be either present or buildable. |
381 | 376 ## |
382 Files which are loaded unconditionally (i.e., on all platforms) should | 377 ## Files which are loaded unconditionally (i.e., on all platforms) should |
383 also be in shortlisp. Files which are loaded conditionally (i.e., only | 378 ## also be in shortlisp. Files which are loaded conditionally (i.e., only |
384 on some platforms) should instead be in SOME_MACHINE_LISP. */ | 379 ## on some platforms) should instead be in SOME_MACHINE_LISP. |
385 | 380 ## |
386 /* Place loaddefs.el first, so it gets generated first, since it is on | 381 ## Place loaddefs.el first, so it gets generated first, since it is on |
387 the critical path (relevant in parallel compilations). */ | 382 ## the critical path (relevant in parallel compilations). |
388 | |
389 lisp= \ | 383 lisp= \ |
390 ${lispsource}loaddefs.el \ | 384 ${lispsource}loaddefs.el \ |
391 ${lispsource}abbrev.elc \ | 385 ${lispsource}abbrev.elc \ |
392 ${lispsource}buff-menu.elc \ | 386 ${lispsource}buff-menu.elc \ |
393 ${lispsource}button.elc \ | 387 ${lispsource}button.elc \ |
473 ${NS_SUPPORT} \ | 467 ${NS_SUPPORT} \ |
474 ${lispsource}widget.elc \ | 468 ${lispsource}widget.elc \ |
475 ${lispsource}window.elc \ | 469 ${lispsource}window.elc \ |
476 ${lispsource}version.el | 470 ${lispsource}version.el |
477 | 471 |
478 /* List of relative names for those files from $lisp that are loaded | 472 ## List of relative names for those files from $lisp that are loaded |
479 unconditionally (i.e. on all platforms). Files from $lisp that | 473 ## unconditionally (i.e. on all platforms). Files from $lisp that |
480 are only loaded on some platforms should instead be placed in | 474 ## are only loaded on some platforms should instead be placed in |
481 SOME_MACHINE_LISP. The only reason this variable exists is to prevent | 475 ## SOME_MACHINE_LISP. The only reason this variable exists is to prevent |
482 the make-docfile command-line getting too long for some systems. */ | 476 ## the make-docfile command-line getting too long for some systems. |
483 shortlisp= \ | 477 shortlisp= \ |
484 ../lisp/loaddefs.el \ | 478 ../lisp/loaddefs.el \ |
485 ../lisp/abbrev.elc \ | 479 ../lisp/abbrev.elc \ |
486 ../lisp/buff-menu.elc \ | 480 ../lisp/buff-menu.elc \ |
487 ../lisp/button.elc \ | 481 ../lisp/button.elc \ |
561 ../lisp/epa-hook.elc \ | 555 ../lisp/epa-hook.elc \ |
562 ../lisp/widget.elc \ | 556 ../lisp/widget.elc \ |
563 ../lisp/window.elc \ | 557 ../lisp/window.elc \ |
564 ../lisp/version.el | 558 ../lisp/version.el |
565 | 559 |
566 /* Like $shortlisp, but includes only those files from $lisp that are loaded | 560 ## Like $shortlisp, but includes only those files from $lisp that are loaded |
567 conditionally (i.e., only on some platforms). */ | 561 ## conditionally (i.e., only on some platforms). |
568 SOME_MACHINE_LISP = ../lisp/mouse.elc \ | 562 SOME_MACHINE_LISP = ../lisp/mouse.elc \ |
569 ../lisp/select.elc ../lisp/scroll-bar.elc \ | 563 ../lisp/select.elc ../lisp/scroll-bar.elc \ |
570 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ | 564 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ |
571 ../lisp/w32-fns.elc ../lisp/dos-w32.elc \ | 565 ../lisp/w32-fns.elc ../lisp/dos-w32.elc \ |
572 ../lisp/disp-table.elc ../lisp/dos-vars.elc \ | 566 ../lisp/disp-table.elc ../lisp/dos-vars.elc \ |
581 ../lisp/term/x-win.elc \ | 575 ../lisp/term/x-win.elc \ |
582 ../lisp/term/pc-win.elc ../lisp/term/internal.elc \ | 576 ../lisp/term/pc-win.elc ../lisp/term/internal.elc \ |
583 ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \ | 577 ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \ |
584 ../lisp/emacs-lisp/easymenu.elc | 578 ../lisp/emacs-lisp/easymenu.elc |
585 | 579 |
586 /* Construct full set of libraries to be linked. | 580 ## Construct full set of libraries to be linked. |
587 Note that SunOS needs -lm to come before -lc; otherwise, you get | 581 ## Note that SunOS needs -lm to come before -lc; otherwise, you get |
588 duplicated symbols. If the standard libraries were compiled | 582 ## duplicated symbols. If the standard libraries were compiled |
589 with GCC, we might need LIB_GCC again after them. */ | 583 ## with GCC, we might need LIB_GCC again after them. |
590 | |
591 LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ | 584 LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ |
592 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ | 585 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ |
593 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ | 586 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ |
594 $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ | 587 $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ |
595 $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC) | 588 $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC) |
596 | 589 |
597 all: emacs${EXEEXT} $(OTHER_FILES) | 590 all: emacs${EXEEXT} $(OTHER_FILES) |
598 | 591 |
599 /* Does anyone ever pay attention to the load-path-shadows output here? */ | 592 ## Does anyone ever pay attention to the load-path-shadows output here? |
600 /* The dumped Emacs is as functional and more efficient than | 593 ## The dumped Emacs is as functional and more efficient than |
601 bootstrap-emacs, so we replace the latter with the former. */ | 594 ## bootstrap-emacs, so we replace the latter with the former. |
602 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} | 595 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} |
603 if test "${CANNOT_DUMP}" = "yes"; then \ | 596 if test "${CANNOT_DUMP}" = "yes"; then \ |
604 ln -f temacs${EXEEXT} emacs${EXEEXT}; \ | 597 ln -f temacs${EXEEXT} emacs${EXEEXT}; \ |
605 EMACSLOADPATH=${lispsource} ./emacs -q -batch \ | 598 EMACSLOADPATH=${lispsource} ./emacs -q -batch \ |
606 -f list-load-path-shadows || true; \ | 599 -f list-load-path-shadows || true; \ |
608 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \ | 601 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \ |
609 ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ | 602 ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ |
610 ./emacs -q -batch -f list-load-path-shadows || true; \ | 603 ./emacs -q -batch -f list-load-path-shadows || true; \ |
611 fi | 604 fi |
612 | 605 |
613 /* We run make-docfile twice because the command line may get too long | 606 ## We run make-docfile twice because the command line may get too long |
614 on some systems. */ | 607 ## on some systems. |
615 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may | 608 ## ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may |
616 or may not be included in ${obj}, but they are always included in | 609 ## or may not be included in ${obj}, but they are always included in |
617 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned | 610 ## ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned |
618 for the first time, this prevents any variation between configurations | 611 ## for the first time, this prevents any variation between configurations |
619 in the contents of the DOC file. | 612 ## in the contents of the DOC file. |
620 Likewise for ${SOME_MACHINE_LISP}. */ | 613 ## Likewise for ${SOME_MACHINE_LISP}. |
621 /* Most of this Makefile refers to Lisp files via ${lispsource}, so | 614 ## Most of this Makefile refers to Lisp files via ${lispsource}, so |
622 we also use ${lisp} rather than ${shortlisp} for the dependency since | 615 ## we also use ${lisp} rather than ${shortlisp} for the dependency since |
623 the Makefile uses string equality to decide when we talk about identical | 616 ## the Makefile uses string equality to decide when we talk about identical |
624 files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile | 617 ## files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile |
625 only in order to reduce the command line length. --Stef */ | 618 ## only in order to reduce the command line length. --Stef |
626 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} | 619 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} |
627 -rm -f ${etc}DOC | 620 -rm -f ${etc}DOC |
628 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC | 621 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC |
629 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} | 622 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} |
630 | 623 |
633 | 626 |
634 buildobj.h: Makefile | 627 buildobj.h: Makefile |
635 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h | 628 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h |
636 | 629 |
637 | 630 |
638 /* We cannot define variables for PRE_EDIT and POST_EDIT. | 631 ## We cannot define variables for PRE_EDIT and POST_EDIT. |
639 If !ORDINARY_LINK && !LINKER && GCC, they add a | 632 ## If !ORDINARY_LINK && !LINKER && GCC, they add a |
640 \`./prefix-args -Xlinker ... \` wrapper, otherwise they are empty. | 633 ## `./prefix-args -Xlinker ... ` wrapper, otherwise they are empty. |
641 One alternative to this approach would be to always call prefix-args, | 634 ## One alternative to this approach would be to always call prefix-args, |
642 and have it DTRT in all cases, by testing the above defines. */ | 635 ## and have it DTRT in all cases, by testing the above defines. |
643 temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} | 636 temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} |
644 $(LD) @PRE_EDIT_LDFLAGS@ ${TEMACS_LDFLAGS} @POST_EDIT_LDFLAGS@ \ | 637 $(LD) @PRE_EDIT_LDFLAGS@ ${TEMACS_LDFLAGS} @POST_EDIT_LDFLAGS@ \ |
645 ${TEMACS_LDFLAGS2} \ | 638 ${TEMACS_LDFLAGS2} \ |
646 -o temacs ${START_FILES} ${obj} ${otherobj} ${LIBES} | 639 -o temacs ${START_FILES} ${obj} ${otherobj} ${LIBES} |
647 | 640 |
648 prefix-args${EXEEXT}: prefix-args.o $(config_h) | 641 prefix-args${EXEEXT}: prefix-args.o $(config_h) |
649 $(CC) $(LDFLAGS) prefix-args.o -o prefix-args | 642 $(CC) $(LDFLAGS) prefix-args.o -o prefix-args |
650 | 643 |
651 | 644 |
652 /* The following oldxmenu-related rules are only (possibly) used if | 645 ## The following oldxmenu-related rules are only (possibly) used if |
653 HAVE_X11 && !USE_GTK, but there is no harm in always defining them | 646 ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them |
654 (provided we take a little care that OLDXMENU is never empty). */ | 647 ## (provided we take a little care that OLDXMENU is never empty). |
655 really-lwlib: | 648 really-lwlib: |
656 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \ | 649 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \ |
657 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' | 650 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' |
658 @true /* make -t should not create really-lwlib. */ | 651 @true # make -t should not create really-lwlib. |
659 .PHONY: really-lwlib | 652 .PHONY: really-lwlib |
660 | 653 |
661 really-oldXMenu: | 654 really-oldXMenu: |
662 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \ | 655 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \ |
663 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' | 656 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' |
664 @true /* make -t should not create really-oldXMenu. */ | 657 @true # make -t should not create really-oldXMenu. |
665 .PHONY: really-oldXMenu | 658 .PHONY: really-oldXMenu |
666 | 659 |
667 /* We don''t really need this when OLDXMENU_DEPS is empty, but as | 660 ## We do not really need this when OLDXMENU_DEPS is empty, but as |
668 things stand we need something to satisfy the temacs dependency. */ | 661 ## things stand we need something to satisfy the temacs dependency. |
669 stamp-oldxmenu: ${OLDXMENU_DEPS} | 662 stamp-oldxmenu: ${OLDXMENU_DEPS} |
670 touch stamp-oldxmenu | 663 touch stamp-oldxmenu |
671 | 664 |
672 /* Supply an ordering for parallel make. */ | 665 ## Supply an ordering for parallel make. |
673 ../src/$(OLDXMENU): ${OLDXMENU} | 666 ../src/$(OLDXMENU): ${OLDXMENU} |
674 | 667 |
675 $(OLDXMENU): $(OLDXMENU_TARGET) | 668 $(OLDXMENU): $(OLDXMENU_TARGET) |
676 | 669 |
677 ../config.status:: epaths.in | 670 ../config.status:: epaths.in |
688 @$(MKDEPDIR) | 681 @$(MKDEPDIR) |
689 $(CC) -c $(ALL_CFLAGS) ${srcdir}/ecrt0.c | 682 $(CC) -c $(ALL_CFLAGS) ${srcdir}/ecrt0.c |
690 doc.o: buildobj.h | 683 doc.o: buildobj.h |
691 | 684 |
692 | 685 |
693 /* If HAVE_NS, some ns-specific rules (for OTHER_FILES) are inserted here. */ | 686 ## If HAVE_NS, some ns-specific rules (for OTHER_FILES) are inserted here. |
694 @ns_frag@ | 687 @ns_frag@ |
695 | 688 |
696 | 689 |
697 mostlyclean: | 690 mostlyclean: |
698 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a | 691 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a |
702 clean: mostlyclean | 695 clean: mostlyclean |
703 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT} | 696 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT} |
704 -rm -rf ${DEPDIR} | 697 -rm -rf ${DEPDIR} |
705 test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir} | 698 test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir} |
706 | 699 |
707 /* bootstrap-clean is used to clean up just before a bootstrap. | 700 ## bootstrap-clean is used to clean up just before a bootstrap. |
708 It should remove all files generated during a compilation/bootstrap, | 701 ## It should remove all files generated during a compilation/bootstrap, |
709 but not things like config.status or TAGS. */ | 702 ## but not things like config.status or TAGS. |
710 bootstrap-clean: clean | 703 bootstrap-clean: clean |
711 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-* | 704 rm -f epaths.h config.h config.stamp stamp-oldxmenu ../etc/DOC-* |
712 if test -f ./.gdbinit; then \ | 705 if test -f ./.gdbinit; then \ |
713 mv ./.gdbinit ./.gdbinit.save; \ | 706 mv ./.gdbinit ./.gdbinit.save; \ |
714 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ | 707 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ |
715 else mv ./.gdbinit.save ./.gdbinit; fi; \ | 708 else mv ./.gdbinit.save ./.gdbinit; fi; \ |
716 fi | 709 fi |
717 /**/# This is used in making a distribution. | 710 ## This is used in making a distribution. |
718 /**/# Do not use it on development directories! | 711 ## Do not use it on development directories! |
719 distclean: bootstrap-clean | 712 distclean: bootstrap-clean |
720 rm -f Makefile | 713 rm -f Makefile |
721 maintainer-clean: distclean | 714 maintainer-clean: distclean |
722 @echo "This command is intended for maintainers to use;" | 715 @echo "This command is intended for maintainers to use;" |
723 @echo "it deletes files that may require special tools to rebuild." | 716 @echo "it deletes files that may require special tools to rebuild." |
725 versionclean: | 718 versionclean: |
726 -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC* | 719 -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC* |
727 extraclean: distclean | 720 extraclean: distclean |
728 -rm -f *~ \#* m/?*~ s/?*~ | 721 -rm -f *~ \#* m/?*~ s/?*~ |
729 | 722 |
730 /* Arrange to make a tags table TAGS-LISP for ../lisp, | 723 ## Arrange to make a tags table TAGS-LISP for ../lisp, |
731 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */ | 724 ## plus TAGS for the C files, which includes ../lisp/TAGS by reference. |
732 | 725 |
733 ctagsfiles1 = [xyzXYZ]*.[hcm] | 726 ctagsfiles1 = [xyzXYZ]*.[hcm] |
734 ctagsfiles2 = [a-wA-W]*.[hcm] | 727 ctagsfiles2 = [a-wA-W]*.[hcm] |
735 | 728 |
736 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) | 729 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) |
746 | 739 |
747 tags: TAGS TAGS-LISP $(lwlibdir)TAGS | 740 tags: TAGS TAGS-LISP $(lwlibdir)TAGS |
748 .PHONY: tags | 741 .PHONY: tags |
749 | 742 |
750 | 743 |
751 /* Bootstrapping. */ | 744 ### Bootstrapping. |
752 /* Bootstrapping right is difficult because of the circular dependencies. | 745 |
753 Furthermore, we have to deal with the fact that many compilation targets | 746 ## Bootstrapping right is difficult because of the circular dependencies. |
754 such as loaddefs.el or *.elc can typically be produced by any old | 747 ## Furthermore, we have to deal with the fact that many compilation targets |
755 Emacs executable, so we would like to avoid rebuilding them whenever | 748 ## such as loaddefs.el or *.elc can typically be produced by any old |
756 we build a new Emacs executable. | 749 ## Emacs executable, so we would like to avoid rebuilding them whenever |
757 To solve the circularity, we use 2 different Emacs executables, | 750 ## we build a new Emacs executable. |
758 "emacs" is the main target and "bootstrap-emacs" is the one used | 751 ## To solve the circularity, we use 2 different Emacs executables, |
759 to build the *.elc and loaddefs.el files. | 752 ## "emacs" is the main target and "bootstrap-emacs" is the one used |
760 To solve the freshness issue, we used to use a third file "witness-emacs" | 753 ## to build the *.elc and loaddefs.el files. |
761 which was used to witness the fact that there is a bootstrap-emacs | 754 ## To solve the freshness issue, we used to use a third file "witness-emacs" |
762 executable, and then have dependencies on witness-emacs rather than | 755 ## which was used to witness the fact that there is a bootstrap-emacs |
763 bootstrap-emacs, but that lead to problems in parallel builds (because | 756 ## executable, and then have dependencies on witness-emacs rather than |
764 witness-emacs needed to be free from dependencies (to avoid rebuilding | 757 ## bootstrap-emacs, but that lead to problems in parallel builds (because |
765 it), so it was compiled in parallel, leading typically to having 2 | 758 ## witness-emacs needed to be free from dependencies (to avoid rebuilding |
766 processes dumping bootstrap-emacs at the same time). | 759 ## it), so it was compiled in parallel, leading typically to having 2 |
767 So instead, we replace the witness-emacs dependencies by conditional | 760 ## processes dumping bootstrap-emacs at the same time). |
768 bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do | 761 ## So instead, we replace the witness-emacs dependencies by conditional |
769 not want to rely on GNU Make features, we have to rely on an external | 762 ## bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do |
770 script to do the conditional part of the dependency | 763 ## not want to rely on GNU Make features, we have to rely on an external |
771 (i.e. see the ${SUBDIR} rule ../Makefile.in). */ | 764 ## script to do the conditional part of the dependency |
765 ## (i.e. see the ${SUBDIR} rule ../Makefile.in). | |
772 | 766 |
773 .SUFFIXES: .elc .el | 767 .SUFFIXES: .elc .el |
774 | 768 |
775 /* These suffix rules do not allow additional dependencies, sadly, so | 769 ## These suffix rules do not allow additional dependencies, sadly, so |
776 instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it | 770 ## instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it |
777 separately below. | 771 ## separately below. |
778 With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */ | 772 ## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" |
779 .el.elc: | 773 .el.elc: |
780 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ | 774 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ |
781 THEFILE=$< EMACS=${bootstrap_exe} | 775 THEFILE=$< EMACS=${bootstrap_exe} |
782 | 776 |
783 /* Since the .el.elc rule cannot specify an extra dependency, we do it here. */ | 777 ## Since the .el.elc rule cannot specify an extra dependency, we do it here. |
784 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS) | 778 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS) |
785 | 779 |
786 /* VCSWITNESS points to the file that holds info about the current checkout. | 780 ## VCSWITNESS points to the file that holds info about the current checkout. |
787 We use it as a heuristic to decide when to rebuild loaddefs.el. */ | 781 ## We use it as a heuristic to decide when to rebuild loaddefs.el. |
788 ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) | 782 ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) |
789 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe} | 783 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe} |
790 | 784 |
791 /* Dump an Emacs executable named bootstrap-emacs containing the | 785 ## Dump an Emacs executable named bootstrap-emacs containing the |
792 files from loadup.el in source form. */ | 786 ## files from loadup.el in source form. |
793 | |
794 bootstrap-emacs${EXEEXT}: temacs${EXEEXT} | 787 bootstrap-emacs${EXEEXT}: temacs${EXEEXT} |
795 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs | 788 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs |
796 if test "${CANNOT_DUMP}" = "yes"; then \ | 789 if test "${CANNOT_DUMP}" = "yes"; then \ |
797 ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ | 790 ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ |
798 else \ | 791 else \ |
800 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ | 793 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ |
801 fi | 794 fi |
802 @: Compile some files earlier to speed up further compilation. | 795 @: Compile some files earlier to speed up further compilation. |
803 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe} | 796 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe} |
804 | 797 |
805 /* Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. */ | 798 ## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. |
806 @deps_frag@ | 799 @deps_frag@ |
800 | |
801 | |
802 ### Makefile.in ends here |