comparison src/Makefile.in.in @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents 5a2589c672dc
children b8cc9ab3f761
comparison
equal deleted inserted replaced
403:9f011ab08d48 404:2f8bb876ab1d
23 23
24 ## Synched up with: Not synched with FSF. 24 ## Synched up with: Not synched with FSF.
25 25
26 PROGNAME=@PROGNAME@ 26 PROGNAME=@PROGNAME@
27 27
28 all: ${PROGNAME} 28 #define NOT_C_CODE
29 #include "config.h"
30
31 #ifdef PDUMP
32 DUMP_TARGET = ${PROGNAME}.dmp
33 EXE_TARGET = ${PROGNAME}
34 ID_FILE = dump-id.c
35 #else
36 DUMP_TARGET = ${PROGNAME}
37 EXE_TARGET = temacs
38 ID_FILE =
39 #endif
40
41 all: ${DUMP_TARGET}
29 .PHONY : all release dump-elc dump-elcs all-elc all-elcs lint 42 .PHONY : all release dump-elc dump-elcs all-elc all-elcs lint
30 43
31 ## For performance and consistency, no built-in rules. 44 ## For performance and consistency, no built-in rules.
32 .SUFFIXES: 45 .SUFFIXES:
33 .SUFFIXES: .c .h .o .i .s .dep 46 .SUFFIXES: .c .h .o .i .s .dep
71 start_flags=@start_flags@ 84 start_flags=@start_flags@
72 LD=@ld@ 85 LD=@ld@
73 lib_gcc=@lib_gcc@ 86 lib_gcc=@lib_gcc@
74 ##libmcheck=@libmcheck@ 87 ##libmcheck=@libmcheck@
75 88
76 #define NOT_C_CODE
77 #include "config.h"
78 89
79 ## With the traditional VPATH setting, it is not possible to 90 ## With the traditional VPATH setting, it is not possible to
80 ## simultaneously compile in-place and in another directory. The 91 ## simultaneously compile in-place and in another directory. The
81 ## mistaken definition is that *all* dependencies are searched for in 92 ## mistaken definition is that *all* dependencies are searched for in
82 ## the VPATH directory, rather than just the dependencies that are not 93 ## the VPATH directory, rather than just the dependencies that are not
96 ## (e.g. a .in file). 107 ## (e.g. a .in file).
97 vpath config.h 108 vpath config.h
98 vpath paths.h 109 vpath paths.h
99 vpath Emacs.ad.h 110 vpath Emacs.ad.h
100 vpath sheap-adjust.h 111 vpath sheap-adjust.h
112 vpath dump-id.c
101 #else 113 #else
102 VPATH=@srcdir@ 114 VPATH=@srcdir@
103 #endif 115 #endif
104 116
105 RM = rm -f 117 RM = rm -f
124 #endif /* AIX4 */ 136 #endif /* AIX4 */
125 137
126 X11_libs = $(LIBI18N) 138 X11_libs = $(LIBI18N)
127 #endif /* HAVE_X_WINDOWS */ 139 #endif /* HAVE_X_WINDOWS */
128 140
129 #ifdef HEAP_IN_DATA 141 #if defined (HEAP_IN_DATA) && !defined(PDUMP)
130 sheap_obj=sheap.o 142 sheap_obj=sheap.o
131 #endif 143 #endif
132 144
133 ## -Demacs is needed to make some files produce the correct version 145 ## -Demacs is needed to make some files produce the correct version
134 ## for use in Emacs. 146 ## for use in Emacs.
307 #ifdef I18N3 319 #ifdef I18N3
308 mo_dir = ${etcdir} 320 mo_dir = ${etcdir}
309 mo_file = ${mo_dir}emacs.mo 321 mo_file = ${mo_dir}emacs.mo
310 #endif 322 #endif
311 323
312 temacs_loadup = ./temacs -batch -l ${srcdir}/../lisp/loadup.el 324 temacs_loadup = ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/loadup.el
313 dump_temacs = ${temacs_loadup} dump 325 dump_temacs = ${temacs_loadup} dump
314 run_temacs = ${temacs_loadup} run-temacs 326 run_temacs = ${temacs_loadup} run-temacs
315 debug_temacs = gdb temacs 327 debug_temacs = gdb ${EXE_TARGET}
316 328
317 release: temacs ${libsrc}DOC $(mo_file) ${other_files} 329 release: ${EXE_TARGET} ${libsrc}DOC $(mo_file) ${other_files}
318 #ifdef CANNOT_DUMP 330 #ifdef CANNOT_DUMP
319 ln temacs ${PROGNAME} 331 ln ${EXE_TARGET} ${PROGNAME}
320 #else 332 #else
321 -if [ -w ${srcdir}/../lisp ]; then \ 333 -if [ -w ${srcdir}/../lisp ]; then \
322 w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l ${srcdir}/../lisp/inc-vers; \ 334 w=`pwd`; cd ${srcdir} && $${w}/${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/inc-vers; \
323 else true; fi 335 else true; fi
324 -./temacs -batch -l ${srcdir}/../lisp/loadup.el dump 336 -./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/loadup.el dump
325 touch release 337 touch release
326 #endif /* ! defined (CANNOT_DUMP) */ 338 #endif /* ! defined (CANNOT_DUMP) */
327 339
328 ${PROGNAME}: temacs ${libsrc}DOC $(mo_file) ${other_files} update-elc.stamp 340 ${DUMP_TARGET}: ${EXE_TARGET} ${libsrc}DOC $(mo_file) ${other_files} update-elc.stamp
329 #ifdef HEAP_IN_DATA 341 #ifdef HEAP_IN_DATA
330 @$(RM) $@ $@.exe && touch SATISFIED 342 @$(RM) $@ && touch SATISFIED
331 -${dump_temacs} 343 -${dump_temacs}
332 @if test -f $@; then if test -f SATISFIED; then \ 344 @if test -f $@; then if test -f SATISFIED; then \
333 echo "Testing for Lisp shadows ..."; \ 345 echo "Testing for Lisp shadows ..."; \
334 ./${PROGNAME} -batch -vanilla -f list-load-path-shadows; fi; \ 346 ./${PROGNAME} -batch -vanilla -f list-load-path-shadows; fi; \
335 $(RM) SATISFIED; exit 0; fi; \ 347 $(RM) SATISFIED; exit 0; fi; \
336 if test -f SATISFIED; then $(RM) SATISFIED; exit 1; fi; \ 348 if test -f SATISFIED; then $(RM) SATISFIED; exit 1; fi; \
337 $(RECURSIVE_MAKE) $@; 349 $(RECURSIVE_MAKE) $@;
338 #else 350 #else
339 @$(RM) $@ xemacs.dmp 351 @$(RM) $@
340 ${dump_temacs} 352 ${dump_temacs}
341 #ifdef PDUMP
342 @mv temacs $@
343 #endif
344 @echo "Testing for Lisp shadows ..." 353 @echo "Testing for Lisp shadows ..."
345 @./${PROGNAME} -batch -vanilla -f list-load-path-shadows 354 @./${PROGNAME} -batch -vanilla -f list-load-path-shadows
346 #endif 355 #endif
347 356
348 fastdump: temacs 357 fastdump: ${EXE_TARGET}
349 @$(RM) ${PROGNAME} && touch SATISFIED 358 @$(RM) ${DUMP_TARGET} && touch SATISFIED
350 -${dump_temacs} 359 -${dump_temacs}
351 @./${PROGNAME} -batch -vanilla -f list-load-path-shadows 360 @./${PROGNAME} -batch -vanilla -f list-load-path-shadows
352 361
353 FRC.update-elc.stamp : 362 FRC.update-elc.stamp :
354 363
355 update-elc.stamp : temacs FRC.update-elc.stamp 364 update-elc.stamp : ${EXE_TARGET} FRC.update-elc.stamp
356 @touch NOBYTECOMPILE 365 @touch NOBYTECOMPILE
357 ./temacs -batch -l ${srcdir}/../lisp/update-elc.el 366 ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/update-elc.el
358 @if test ! -f $@ -o -f NOBYTECOMPILE; then touch $@; fi; \ 367 @if test ! -f $@ -o -f NOBYTECOMPILE; then touch $@; fi; \
359 $(RM) NOBYTECOMPILE 368 $(RM) NOBYTECOMPILE
360 369
361 obj_src = $(objs:.o=.c) 370 obj_src = $(objs:.o=.c)
362 371
371 dynodump_deps = ../dynodump/dynodump.so 380 dynodump_deps = ../dynodump/dynodump.so
372 ../dynodump/dynodump.so: 381 ../dynodump/dynodump.so:
373 cd ../dynodump && $(RECURSIVE_MAKE) 382 cd ../dynodump && $(RECURSIVE_MAKE)
374 #endif /* DYNODUMP */ 383 #endif /* DYNODUMP */
375 384
376 ${libsrc}DOC: temacs update-elc.stamp 385 ${libsrc}DOC: ${EXE_TARGET} update-elc.stamp
377 $(RM) ${libsrc}DOC; \ 386 $(RM) ${libsrc}DOC; \
378 ${DUMPENV} ./temacs -batch -l ${srcdir}/../lisp/make-docfile.el -- \ 387 ${DUMPENV} ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/make-docfile.el -- \
379 -o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \ 388 -o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \
380 ${obj_src} ${mallocdocsrc} ${rallocdocsrc} 389 ${obj_src} ${mallocdocsrc} ${rallocdocsrc}
381 390
382 dump_elcs: dump-elcs 391 dump_elcs: dump-elcs
383 392
384 dump-elcs: temacs 393 dump-elcs: ${EXE_TARGET}
385 -${DUMPENV} ./temacs -batch -l ${srcdir}/../lisp/update-elc.el 394 -${DUMPENV} ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/update-elc.el
386 395
387 all-elc all-elcs: 396 all-elc all-elcs:
388 cd .. && $(RECURSIVE_MAKE) all-elc 397 cd .. && $(RECURSIVE_MAKE) all-elc
389 398
390 #ifdef I18N3 399 #ifdef I18N3
413 422
414 ${libsrc}make-po: 423 ${libsrc}make-po:
415 cd ${libsrc} && $(RECURSIVE_MAKE) make-po 424 cd ${libsrc} && $(RECURSIVE_MAKE) make-po
416 425
417 #endif /* I18N3 */ 426 #endif /* I18N3 */
427
428 ${libsrc}make-dump-id:
429 cd ${libsrc} && $(RECURSIVE_MAKE) make-dump-id
418 430
419 ${libsrc}make-docfile: 431 ${libsrc}make-docfile:
420 cd ${libsrc} && $(RECURSIVE_MAKE) make-docfile 432 cd ${libsrc} && $(RECURSIVE_MAKE) make-docfile
421 433
422 ## Lint Section 434 ## Lint Section
427 LINTFLAGS= -fd -m -s -u -v -x 439 LINTFLAGS= -fd -m -s -u -v -x
428 lint: $(LINTFILES) 440 lint: $(LINTFILES)
429 $(LINT.c) $(LINTFILES) 441 $(LINT.c) $(LINTFILES)
430 ## end of Lint Section 442 ## end of Lint Section
431 443
432 temacs_deps=\ 444 link_deps=\
433 $(start_files) ${objs} ${otherobjs}\ 445 $(start_files) ${objs} ${otherobjs}\
434 $(lwlib_deps) $(dynodump_deps) 446 $(lwlib_deps) $(dynodump_deps)
435 447
448 temacs_deps=\
449 $(link_deps) $(ID_FILE)
450
436 temacs_link_args=\ 451 temacs_link_args=\
437 ${start_flags} ${ldflags}\ 452 ${start_flags} ${ldflags} -I${srcdir} \
438 -o $@ ${start_files} ${objs} ${otherobjs} ${LIBES} 453 -o $@ ${start_files} ${objs} ${otherobjs} ${ID_FILE} ${LIBES}
439 454
440 temacs: $(temacs_deps) 455 ${EXE_TARGET}: $(temacs_deps)
441 $(LD) $(temacs_link_args) 456 $(LD) $(temacs_link_args)
442 #ifdef PDUMP 457
443 @$(RM) xemacs.dmp 458 dump-id.c: ${libsrc}make-dump-id ${link_deps}
444 #endif 459 ${libsrc}make-dump-id
445 460
446 .PHONY : run-temacs 461 .PHONY : run-temacs
447 462
448 run-temacs: temacs 463 run-temacs: ${EXE_TARGET}
449 -${run_temacs} 464 -${run_temacs}
450 465
451 ## We have automated tests!! 466 ## We have automated tests!!
452 testdir = ${srcdir}/../tests/automated 467 testdir = ${srcdir}/../tests/automated
453 batch_test_emacs = -batch -l ${testdir}/test-harness.el -f batch-test-emacs ${testdir} 468 batch_test_emacs = -batch -l ${testdir}/test-harness.el -f batch-test-emacs ${testdir}
468 ## RTC is Sun WorkShop's Run Time Checking, integrated with dbx 483 ## RTC is Sun WorkShop's Run Time Checking, integrated with dbx
469 rtc_patch.o: 484 rtc_patch.o:
470 rtc_patch_area -o $@ 485 rtc_patch_area -o $@
471 486
472 rtcmacs: $(temacs_deps) rtc_patch.o 487 rtcmacs: $(temacs_deps) rtc_patch.o
473 $(RM) temacs; $(RECURSIVE_MAKE) temacs RTC_patch_objs=rtc_patch.o 488 $(RM) ${EXE_TARGET}; $(RECURSIVE_MAKE) ${EXE_TARGET} RTC_patch_objs=rtc_patch.o
474 mv temacs rtcmacs 489 mv ${EXE_TARGET} rtcmacs
475 490
476 .PHONY: run-rtcmacs 491 .PHONY: run-rtcmacs
477 run-rtcmacs: rtcmacs 492 run-rtcmacs: rtcmacs
478 dbx -q -C -c \ 493 dbx -q -C -c \
479 'dbxenv rtc_error_log_file_name /dev/fd/1; \ 494 'dbxenv rtc_error_log_file_name /dev/fd/1; \
482 check -access; \ 497 check -access; \
483 suppress rui; \ 498 suppress rui; \
484 runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \ 499 runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \
485 run' rtcmacs 500 run' rtcmacs
486 501
487 debug-temacs: temacs 502 debug-temacs: ${EXE_TARGET}
488 -${debug_temacs} 503 -${debug_temacs}
489 504
490 ## Purify, Quantify, PureCoverage are software quality products from 505 ## Purify, Quantify, PureCoverage are software quality products from
491 ## Rational, formerly Pure Atria, formerly Pure Software. 506 ## Rational, formerly Pure Atria, formerly Pure Software.
492 ## 507 ##
500 -cache-dir=./purecache -always-use-cache-dir=yes 515 -cache-dir=./purecache -always-use-cache-dir=yes
501 516
502 PURIFY_LIBS = -lpthread 517 PURIFY_LIBS = -lpthread
503 puremacs: $(temacs_deps) 518 puremacs: $(temacs_deps)
504 $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS) 519 $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS)
505 cp $@ temacs 520 cp $@ ${EXE_TARGET}
506 521
507 ## Quantify 522 ## Quantify
508 #ifdef QUANTIFY 523 #ifdef QUANTIFY
509 QUANTIFY_PROG = quantify 524 QUANTIFY_PROG = quantify
510 QUANTIFY_HOME = `$(QUANTIFY_PROG) -print-home-dir` 525 QUANTIFY_HOME = `$(QUANTIFY_PROG) -print-home-dir`
512 cppflags += -I$(QUANTIFY_HOME) 527 cppflags += -I$(QUANTIFY_HOME)
513 temacs_link_args += $(QUANTIFY_HOME)/quantify_stubs.a 528 temacs_link_args += $(QUANTIFY_HOME)/quantify_stubs.a
514 529
515 quantmacs: $(temacs_deps) 530 quantmacs: $(temacs_deps)
516 $(QUANTIFY_PROG) $(QUANTIFY_FLAGS) $(LD) $(temacs_link_args) 531 $(QUANTIFY_PROG) $(QUANTIFY_FLAGS) $(LD) $(temacs_link_args)
517 cp $@ temacs 532 cp $@ ${EXE_TARGET}
518 #endif /* QUANTIFY */ 533 #endif /* QUANTIFY */
519 534
520 535
521 PURECOV_PROG=purecov 536 PURECOV_PROG=purecov
522 covmacs: $(temacs_deps) 537 covmacs: $(temacs_deps)