Mercurial > hg > xemacs-beta
comparison nt/xemacs.mak @ 404:2f8bb876ab1d r21-2-32
Import from CVS: tag r21-2-32
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:16:07 +0200 |
parents | 74fd4e045ea6 |
children | b8cc9ab3f761 |
comparison
equal
deleted
inserted
replaced
403:9f011ab08d48 | 404:2f8bb876ab1d |
---|---|
24 # Synched up with: Not in FSF. | 24 # Synched up with: Not in FSF. |
25 # | 25 # |
26 | 26 |
27 XEMACS=.. | 27 XEMACS=.. |
28 LISP=$(XEMACS)\lisp | 28 LISP=$(XEMACS)\lisp |
29 LIB_SRC=$(XEMACS)\lib-src | |
29 MODULES=$(XEMACS)\modules | 30 MODULES=$(XEMACS)\modules |
30 NT=$(XEMACS)\nt | 31 NT=$(XEMACS)\nt |
31 OUTDIR=$(NT)\obj | 32 OUTDIR=$(NT)\obj |
33 SRC=$(XEMACS)\src | |
34 MAKEDIRSTRING=$(MAKEDIR:\=\\) | |
35 XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=) | |
36 | |
32 | 37 |
33 # Define a variable for the 'del' command to use | 38 # Define a variable for the 'del' command to use |
34 DEL=-del | 39 DEL=-del |
35 | 40 |
36 # Program name and version | 41 # Program name and version |
37 | 42 |
38 !include "..\version.sh" | 43 !include "..\version.sh" |
44 | |
45 !include "config.inc" | |
39 | 46 |
40 !if !defined(INFODOCK) | 47 !if !defined(INFODOCK) |
41 INFODOCK=0 | 48 INFODOCK=0 |
42 !endif | 49 !endif |
43 | 50 |
313 MSW_DEFINES=-DHAVE_MS_WINDOWS -DHAVE_SCROLLBARS -DHAVE_MENUBARS | 320 MSW_DEFINES=-DHAVE_MS_WINDOWS -DHAVE_SCROLLBARS -DHAVE_MENUBARS |
314 MSW_INCLUDES= | 321 MSW_INCLUDES= |
315 MSW_LIBS= | 322 MSW_LIBS= |
316 !if $(HAVE_MSW_C_DIRED) | 323 !if $(HAVE_MSW_C_DIRED) |
317 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MSW_C_DIRED | 324 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MSW_C_DIRED |
318 MSW_C_DIRED_SRC=$(XEMACS)\src\dired-msw.c | 325 MSW_C_DIRED_SRC=$(SRC)\dired-msw.c |
319 MSW_C_DIRED_OBJ=$(OUTDIR)\dired-msw.obj | 326 MSW_C_DIRED_OBJ=$(OUTDIR)\dired-msw.obj |
320 !endif | 327 !endif |
321 !if $(HAVE_XPM) | 328 !if $(HAVE_XPM) |
322 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW | 329 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW |
323 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib" | 330 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib" |
324 MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib" | 331 MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib" |
325 !endif | 332 !endif |
326 !if $(HAVE_GIF) | 333 !if $(HAVE_GIF) |
327 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF | 334 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF |
328 MSW_GIF_SRC=$(XEMACS)\src\dgif_lib.c $(XEMACS)\src\gif_io.c | 335 MSW_GIF_SRC=$(SRC)\dgif_lib.c $(SRC)\gif_io.c |
329 MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj | 336 MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj |
330 !endif | 337 !endif |
331 !if $(HAVE_PNG) | 338 !if $(HAVE_PNG) |
332 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG | 339 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG |
333 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)" | 340 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)" |
348 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(COMPFACE_DIR)" | 355 MSW_INCLUDES=$(MSW_INCLUDES) -I"$(COMPFACE_DIR)" |
349 MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib" | 356 MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib" |
350 !endif | 357 !endif |
351 !if $(HAVE_TOOLBARS) | 358 !if $(HAVE_TOOLBARS) |
352 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS | 359 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS |
353 MSW_TOOLBAR_SRC=$(XEMACS)\src\toolbar.c $(XEMACS)\src\toolbar-msw.c | 360 MSW_TOOLBAR_SRC=$(SRC)\toolbar.c $(SRC)\toolbar-msw.c |
354 MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj | 361 MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj |
355 MSW_LIBS=$(MSW_LIBS) comctl32.lib | 362 MSW_LIBS=$(MSW_LIBS) comctl32.lib |
356 !endif | 363 !endif |
357 !if $(HAVE_DIALOGS) | 364 !if $(HAVE_DIALOGS) |
358 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS | 365 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS |
359 MSW_DIALOG_SRC=$(XEMACS)\src\dialog.c $(XEMACS)\src\dialog-msw.c | 366 MSW_DIALOG_SRC=$(SRC)\dialog.c $(SRC)\dialog-msw.c |
360 MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj | 367 MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj |
361 !endif | 368 !endif |
362 !if $(HAVE_WIDGETS) | 369 !if $(HAVE_WIDGETS) |
363 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS | 370 MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS |
364 !endif | 371 !endif |
406 | 413 |
407 PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" | 414 PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" |
408 | 415 |
409 # Generic variables | 416 # Generic variables |
410 | 417 |
411 INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(XEMACS)\nt\inc -I$(XEMACS)\src -I$(XEMACS)\lwlib | 418 INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(XEMACS)\lwlib |
412 | 419 |
413 DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \ | 420 DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \ |
414 $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ | 421 $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ |
415 $(DUMPER_DEFINES) $(MALLOC_DEFINES) \ | 422 $(DUMPER_DEFINES) $(MALLOC_DEFINES) \ |
416 -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN -DWINDOWSNT -Demacs \ | 423 -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN -DWINDOWSNT -Demacs \ |
422 | 429 |
423 $(OUTDIR)\nul: | 430 $(OUTDIR)\nul: |
424 -@mkdir $(OUTDIR) | 431 -@mkdir $(OUTDIR) |
425 | 432 |
426 XEMACS_INCLUDES=\ | 433 XEMACS_INCLUDES=\ |
427 $(XEMACS)\src\config.h \ | 434 $(SRC)\config.h \ |
428 $(XEMACS)\src\Emacs.ad.h \ | 435 $(SRC)\Emacs.ad.h \ |
429 $(XEMACS)\src\paths.h | 436 $(SRC)\paths.h |
430 | 437 |
431 $(XEMACS)\src\config.h: config.h | 438 $(SRC)\config.h: config.h |
432 copy config.h $(XEMACS)\src | 439 copy config.h $(SRC) |
433 | 440 |
434 $(XEMACS)\src\Emacs.ad.h: Emacs.ad.h | 441 $(SRC)\Emacs.ad.h: Emacs.ad.h |
435 copy Emacs.ad.h $(XEMACS)\src | 442 copy Emacs.ad.h $(SRC) |
436 | 443 |
437 $(XEMACS)\src\paths.h: paths.h | 444 $(SRC)\paths.h: paths.h |
438 copy paths.h $(XEMACS)\src | 445 copy paths.h $(SRC) |
439 | 446 |
440 #------------------------------------------------------------------------------ | 447 #------------------------------------------------------------------------------ |
441 | 448 |
442 # lib-src programs | 449 # lib-src programs |
443 | 450 |
444 LIB_SRC = $(XEMACS)\lib-src | |
445 LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32 -DWINDOWSNT | 451 LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32 -DWINDOWSNT |
446 | 452 |
447 # | 453 # |
448 # Creating config.values to be used by config.el | 454 # Creating config.values to be used by config.el |
449 # | 455 # |
469 !endif | 475 !endif |
470 | 476 |
471 # Inferred rule | 477 # Inferred rule |
472 {$(LIB_SRC)}.c{$(LIB_SRC)}.exe : | 478 {$(LIB_SRC)}.c{$(LIB_SRC)}.exe : |
473 cd $(LIB_SRC) | 479 cd $(LIB_SRC) |
474 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** -link -incremental:no | 480 $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** -link -incremental:no setargv.obj |
475 cd $(NT) | 481 cd $(NT) |
476 | 482 |
477 # Individual dependencies | 483 # Individual dependencies |
478 ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c | 484 ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c |
479 $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) | 485 $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) |
495 !if $(USE_MINITAR) | 501 !if $(USE_MINITAR) |
496 LIB_SRC_TOOLS = \ | 502 LIB_SRC_TOOLS = \ |
497 $(LIB_SRC_TOOLS) \ | 503 $(LIB_SRC_TOOLS) \ |
498 $(LIB_SRC)/minitar.exe | 504 $(LIB_SRC)/minitar.exe |
499 !endif | 505 !endif |
506 !if $(USE_PORTABLE_DUMPER) | |
507 LIB_SRC_TOOLS = \ | |
508 $(XEMACS_INCLUDES) \ | |
509 $(LIB_SRC_TOOLS) | |
510 !endif | |
500 | 511 |
501 # Shorthand target | 512 # Shorthand target |
502 minitar: $(LIB_SRC)/minitar.exe | 513 minitar: $(LIB_SRC)/minitar.exe |
503 | 514 |
504 #------------------------------------------------------------------------------ | 515 #------------------------------------------------------------------------------ |
505 | 516 |
506 # runxemacs proglet | 517 # runxemacs proglet |
507 | 518 |
508 RUNEMACS = $(XEMACS)\src\runxemacs.exe | 519 RUNEMACS = $(SRC)\runxemacs.exe |
509 | 520 |
510 $(RUNEMACS): $(LIB_SRC)\run.c $(LIB_SRC)\run.res | 521 $(RUNEMACS): $(LIB_SRC)\run.c $(LIB_SRC)\run.res |
511 $(CCV) -I$(LIB_SRC) $(CFLAGS) -Fe$@ -Fo$(LIB_SRC) -Fd$(LIB_SRC)\ $** kernel32.lib user32.lib -link -incremental:no | 522 $(CCV) -I$(LIB_SRC) $(CFLAGS) -Fe$@ -Fo$(LIB_SRC) -Fd$(LIB_SRC)\ $** kernel32.lib user32.lib -link -incremental:no |
512 | 523 |
513 $(LIB_SRC)\run.res: $(LIB_SRC)\run.rc | 524 $(LIB_SRC)\run.res: $(LIB_SRC)\run.rc |
518 # LASTFILE Library | 529 # LASTFILE Library |
519 | 530 |
520 !if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) | 531 !if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) |
521 | 532 |
522 LASTFILE=$(OUTDIR)\lastfile.lib | 533 LASTFILE=$(OUTDIR)\lastfile.lib |
523 LASTFILE_SRC=$(XEMACS)\src | 534 LASTFILE_SRC=$(SRC) |
524 LASTFILE_FLAGS=$(CFLAGS) $(INCLUDES) -Fo$@ -Fd$* -c | 535 LASTFILE_FLAGS=$(CFLAGS) $(INCLUDES) -Fo$@ -Fd$* -c |
525 LASTFILE_OBJS= \ | 536 LASTFILE_OBJS= \ |
526 $(OUTDIR)\lastfile.obj | 537 $(OUTDIR)\lastfile.obj |
527 | 538 |
528 $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS) | 539 $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS) |
581 !endif | 592 !endif |
582 #------------------------------------------------------------------------------ | 593 #------------------------------------------------------------------------------ |
583 | 594 |
584 DOC=$(LIB_SRC)\DOC | 595 DOC=$(LIB_SRC)\DOC |
585 DOC_SRC1=\ | 596 DOC_SRC1=\ |
586 $(XEMACS)\src\abbrev.c \ | 597 $(SRC)\abbrev.c \ |
587 $(XEMACS)\src\alloc.c \ | 598 $(SRC)\alloc.c \ |
588 $(XEMACS)\src\alloca.c \ | 599 $(SRC)\alloca.c \ |
589 $(XEMACS)\src\blocktype.c \ | 600 $(SRC)\blocktype.c \ |
590 $(XEMACS)\src\buffer.c \ | 601 $(SRC)\buffer.c \ |
591 $(XEMACS)\src\bytecode.c \ | 602 $(SRC)\bytecode.c \ |
592 $(XEMACS)\src\callint.c \ | 603 $(SRC)\callint.c \ |
593 $(XEMACS)\src\callproc.c \ | 604 $(SRC)\callproc.c \ |
594 $(XEMACS)\src\casefiddle.c \ | 605 $(SRC)\casefiddle.c \ |
595 $(XEMACS)\src\casetab.c \ | 606 $(SRC)\casetab.c \ |
596 $(XEMACS)\src\chartab.c \ | 607 $(SRC)\chartab.c \ |
597 $(XEMACS)\src\cmdloop.c \ | 608 $(SRC)\cmdloop.c \ |
598 $(XEMACS)\src\cmds.c \ | 609 $(SRC)\cmds.c \ |
599 $(XEMACS)\src\console-stream.c \ | 610 $(SRC)\console-stream.c \ |
600 $(XEMACS)\src\console.c \ | 611 $(SRC)\console.c \ |
601 $(XEMACS)\src\data.c \ | 612 $(SRC)\data.c \ |
602 $(XEMACS)\src\device.c | 613 $(SRC)\device.c |
603 DOC_SRC2=\ | 614 DOC_SRC2=\ |
604 $(XEMACS)\src\dired.c \ | 615 $(SRC)\dired.c \ |
605 $(XEMACS)\src\doc.c \ | 616 $(SRC)\doc.c \ |
606 $(XEMACS)\src\doprnt.c \ | 617 $(SRC)\doprnt.c \ |
607 $(XEMACS)\src\dragdrop.c \ | 618 $(SRC)\dragdrop.c \ |
608 $(XEMACS)\src\dynarr.c \ | 619 $(SRC)\dynarr.c \ |
609 $(XEMACS)\src\editfns.c \ | 620 $(SRC)\editfns.c \ |
610 $(XEMACS)\src\elhash.c \ | 621 $(SRC)\elhash.c \ |
611 $(XEMACS)\src\emacs.c \ | 622 $(SRC)\emacs.c \ |
612 $(XEMACS)\src\eval.c \ | 623 $(SRC)\eval.c \ |
613 $(XEMACS)\src\event-stream.c \ | 624 $(SRC)\event-stream.c \ |
614 $(XEMACS)\src\events.c \ | 625 $(SRC)\events.c \ |
615 $(XEMACS)\src\extents.c \ | 626 $(SRC)\extents.c \ |
616 $(XEMACS)\src\faces.c \ | 627 $(SRC)\faces.c \ |
617 $(XEMACS)\src\file-coding.c \ | 628 $(SRC)\file-coding.c \ |
618 $(XEMACS)\src\fileio.c \ | 629 $(SRC)\fileio.c \ |
619 $(XEMACS)\src\filemode.c \ | 630 $(SRC)\filemode.c \ |
620 $(XEMACS)\src\floatfns.c \ | 631 $(SRC)\floatfns.c \ |
621 $(XEMACS)\src\fns.c | 632 $(SRC)\fns.c |
622 DOC_SRC3=\ | 633 DOC_SRC3=\ |
623 $(XEMACS)\src\font-lock.c \ | 634 $(SRC)\font-lock.c \ |
624 $(XEMACS)\src\frame.c \ | 635 $(SRC)\frame.c \ |
625 $(XEMACS)\src\general.c \ | 636 $(SRC)\general.c \ |
626 $(XEMACS)\src\glyphs.c \ | 637 $(SRC)\glyphs.c \ |
627 $(XEMACS)\src\glyphs-eimage.c \ | 638 $(SRC)\glyphs-eimage.c \ |
628 $(XEMACS)\src\glyphs-widget.c \ | 639 $(SRC)\glyphs-widget.c \ |
629 $(XEMACS)\src\gui.c \ | 640 $(SRC)\gui.c \ |
630 $(XEMACS)\src\gutter.c \ | 641 $(SRC)\gutter.c \ |
631 $(XEMACS)\src\hash.c \ | 642 $(SRC)\hash.c \ |
632 $(XEMACS)\src\imgproc.c \ | 643 $(SRC)\imgproc.c \ |
633 $(XEMACS)\src\indent.c \ | 644 $(SRC)\indent.c \ |
634 $(XEMACS)\src\insdel.c \ | 645 $(SRC)\insdel.c \ |
635 $(XEMACS)\src\intl.c \ | 646 $(SRC)\intl.c \ |
636 $(XEMACS)\src\keymap.c \ | 647 $(SRC)\keymap.c \ |
637 $(XEMACS)\src\line-number.c \ | 648 $(SRC)\line-number.c \ |
638 $(XEMACS)\src\lread.c \ | 649 $(SRC)\lread.c \ |
639 $(XEMACS)\src\lstream.c \ | 650 $(SRC)\lstream.c \ |
640 $(XEMACS)\src\macros.c \ | 651 $(SRC)\macros.c \ |
641 $(XEMACS)\src\marker.c | 652 $(SRC)\marker.c |
642 DOC_SRC4=\ | 653 DOC_SRC4=\ |
643 $(XEMACS)\src\md5.c \ | 654 $(SRC)\md5.c \ |
644 $(XEMACS)\src\menubar.c \ | 655 $(SRC)\menubar.c \ |
645 $(XEMACS)\src\minibuf.c \ | 656 $(SRC)\minibuf.c \ |
646 $(XEMACS)\src\nt.c \ | 657 $(SRC)\nt.c \ |
647 $(XEMACS)\src\ntplay.c \ | 658 $(SRC)\ntplay.c \ |
648 $(XEMACS)\src\ntproc.c \ | 659 $(SRC)\ntproc.c \ |
649 $(XEMACS)\src\objects.c \ | 660 $(SRC)\objects.c \ |
650 $(XEMACS)\src\opaque.c \ | 661 $(SRC)\opaque.c \ |
651 $(XEMACS)\src\print.c \ | 662 $(SRC)\print.c \ |
652 $(XEMACS)\src\process.c \ | 663 $(SRC)\process.c \ |
653 $(XEMACS)\src\process-nt.c \ | 664 $(SRC)\process-nt.c \ |
654 $(XEMACS)\src\profile.c \ | 665 $(SRC)\profile.c \ |
655 $(XEMACS)\src\rangetab.c \ | 666 $(SRC)\rangetab.c \ |
656 $(XEMACS)\src\realpath.c \ | 667 $(SRC)\realpath.c \ |
657 $(XEMACS)\src\redisplay-output.c \ | 668 $(SRC)\redisplay-output.c \ |
658 $(XEMACS)\src\redisplay.c \ | 669 $(SRC)\redisplay.c \ |
659 $(XEMACS)\src\regex.c \ | 670 $(SRC)\regex.c \ |
660 $(XEMACS)\src\scrollbar.c \ | 671 $(SRC)\scrollbar.c \ |
661 $(XEMACS)\src\search.c \ | 672 $(SRC)\search.c \ |
662 $(XEMACS)\src\select.c \ | 673 $(SRC)\select.c \ |
663 $(XEMACS)\src\signal.c \ | 674 $(SRC)\signal.c \ |
664 $(XEMACS)\src\sound.c | 675 $(SRC)\sound.c |
665 DOC_SRC5=\ | 676 DOC_SRC5=\ |
666 $(XEMACS)\src\specifier.c \ | 677 $(SRC)\specifier.c \ |
667 $(XEMACS)\src\strftime.c \ | 678 $(SRC)\strftime.c \ |
668 $(XEMACS)\src\symbols.c \ | 679 $(SRC)\symbols.c \ |
669 $(XEMACS)\src\syntax.c \ | 680 $(SRC)\syntax.c \ |
670 $(XEMACS)\src\sysdep.c \ | 681 $(SRC)\sysdep.c \ |
671 $(XEMACS)\src\termcap.c \ | 682 $(SRC)\termcap.c \ |
672 $(XEMACS)\src\tparam.c \ | 683 $(SRC)\tparam.c \ |
673 $(XEMACS)\src\undo.c \ | 684 $(SRC)\undo.c \ |
674 $(XEMACS)\src\window.c \ | 685 $(SRC)\window.c \ |
675 $(XEMACS)\src\widget.c | 686 $(SRC)\widget.c |
676 | 687 |
677 !if $(HAVE_X) | 688 !if $(HAVE_X) |
678 DOC_SRC6=\ | 689 DOC_SRC6=\ |
679 $(XEMACS)\src\balloon_help.c \ | 690 $(SRC)\balloon_help.c \ |
680 $(XEMACS)\src\console-x.c \ | 691 $(SRC)\console-x.c \ |
681 $(XEMACS)\src\device-x.c \ | 692 $(SRC)\device-x.c \ |
682 $(XEMACS)\src\dialog-x.c \ | 693 $(SRC)\dialog-x.c \ |
683 $(XEMACS)\src\EmacsFrame.c \ | 694 $(SRC)\EmacsFrame.c \ |
684 $(XEMACS)\src\EmacsManager.c \ | 695 $(SRC)\EmacsManager.c \ |
685 $(XEMACS)\src\EmacsShell-sub.c\ | 696 $(SRC)\EmacsShell-sub.c\ |
686 $(XEMACS)\src\EmacsShell.c \ | 697 $(SRC)\EmacsShell.c \ |
687 $(XEMACS)\src\event-Xt.c \ | 698 $(SRC)\event-Xt.c \ |
688 $(XEMACS)\src\frame-x.c \ | 699 $(SRC)\frame-x.c \ |
689 $(XEMACS)\src\glyphs-x.c \ | 700 $(SRC)\glyphs-x.c \ |
690 $(XEMACS)\src\gui-x.c \ | 701 $(SRC)\gui-x.c \ |
691 $(XEMACS)\src\menubar.c \ | 702 $(SRC)\menubar.c \ |
692 $(XEMACS)\src\menubar-x.c \ | 703 $(SRC)\menubar-x.c \ |
693 $(XEMACS)\src\objects-x.c \ | 704 $(SRC)\objects-x.c \ |
694 $(XEMACS)\src\redisplay-x.c \ | 705 $(SRC)\redisplay-x.c \ |
695 $(XEMACS)\src\scrollbar-x.c \ | 706 $(SRC)\scrollbar-x.c \ |
696 $(XEMACS)\src\balloon-x.c \ | 707 $(SRC)\balloon-x.c \ |
697 $(XEMACS)\src\xgccache.c \ | 708 $(SRC)\xgccache.c \ |
698 $(XEMACS)\src\xmu.c \ | 709 $(SRC)\xmu.c \ |
699 $(XEMACS)\src\select-x.c | 710 $(SRC)\select-x.c |
700 !endif | 711 !endif |
701 | 712 |
702 !if $(HAVE_MSW) | 713 !if $(HAVE_MSW) |
703 DOC_SRC7=\ | 714 DOC_SRC7=\ |
704 $(XEMACS)\src\console-msw.c \ | 715 $(SRC)\console-msw.c \ |
705 $(XEMACS)\src\device-msw.c \ | 716 $(SRC)\device-msw.c \ |
706 $(XEMACS)\src\event-msw.c \ | 717 $(SRC)\event-msw.c \ |
707 $(XEMACS)\src\frame-msw.c \ | 718 $(SRC)\frame-msw.c \ |
708 $(XEMACS)\src\glyphs-msw.c \ | 719 $(SRC)\glyphs-msw.c \ |
709 $(XEMACS)\src\gui-msw.c \ | 720 $(SRC)\gui-msw.c \ |
710 $(XEMACS)\src\menubar-msw.c \ | 721 $(SRC)\menubar-msw.c \ |
711 $(XEMACS)\src\objects-msw.c \ | 722 $(SRC)\objects-msw.c \ |
712 $(XEMACS)\src\redisplay-msw.c \ | 723 $(SRC)\redisplay-msw.c \ |
713 $(XEMACS)\src\scrollbar-msw.c \ | 724 $(SRC)\scrollbar-msw.c \ |
714 $(XEMACS)\src\select-msw.c \ | 725 $(SRC)\select-msw.c \ |
715 $(MSW_C_DIRED_SRC) \ | 726 $(MSW_C_DIRED_SRC) \ |
716 $(MSW_TOOLBAR_SRC) \ | 727 $(MSW_TOOLBAR_SRC) \ |
717 $(MSW_DIALOG_SRC) \ | 728 $(MSW_DIALOG_SRC) \ |
718 $(MSW_GIF_SRC) | 729 $(MSW_GIF_SRC) |
719 !endif | 730 !endif |
720 | 731 |
721 !if $(HAVE_MULE) | 732 !if $(HAVE_MULE) |
722 DOC_SRC8=\ | 733 DOC_SRC8=\ |
723 $(XEMACS)\src\mule.c \ | 734 $(SRC)\mule.c \ |
724 $(XEMACS)\src\mule-charset.c \ | 735 $(SRC)\mule-charset.c \ |
725 $(XEMACS)\src\mule-ccl.c | 736 $(SRC)\mule-ccl.c |
726 ! if $(HAVE_X) | 737 ! if $(HAVE_X) |
727 DOC_SRC8=$(DOC_SRC8) $(XEMACS)\src\input-method-xlib.c | 738 DOC_SRC8=$(DOC_SRC8) $(SRC)\input-method-xlib.c |
728 ! endif | 739 ! endif |
729 !endif | 740 !endif |
730 | 741 |
731 !if $(DEBUG_XEMACS) | 742 !if $(DEBUG_XEMACS) |
732 DOC_SRC9=\ | 743 DOC_SRC9=\ |
733 $(XEMACS)\src\debug.c \ | 744 $(SRC)\debug.c \ |
734 $(XEMACS)\src\tests.c | 745 $(SRC)\tests.c |
735 !endif | 746 !endif |
736 | 747 |
737 !if !$(USE_SYSTEM_MALLOC) | 748 !if !$(USE_SYSTEM_MALLOC) |
738 DOC_SRC10=\ | 749 DOC_SRC10=\ |
739 $(XEMACS)\src\free-hook.c \ | 750 $(SRC)\free-hook.c \ |
740 $(XEMACS)\src\gmalloc.c \ | 751 $(SRC)\gmalloc.c \ |
741 $(XEMACS)\src\ntheap.c \ | 752 $(SRC)\ntheap.c \ |
742 $(XEMACS)\src\vm-limit.c | 753 $(SRC)\vm-limit.c |
743 !endif | 754 !endif |
744 | 755 |
745 !if !$(USE_PORTABLE_DUMPER) | 756 !if !$(USE_PORTABLE_DUMPER) |
746 DOC_SRC11=\ | 757 DOC_SRC11=\ |
747 $(XEMACS)\src\unexnt.c | 758 $(SRC)\unexnt.c |
748 !endif | 759 !endif |
749 | 760 |
750 #------------------------------------------------------------------------------ | 761 #------------------------------------------------------------------------------ |
751 | 762 |
752 # TEMACS Executable | 763 # TEMACS Executable |
755 !if "$(emacs_beta_version)" != "" | 766 !if "$(emacs_beta_version)" != "" |
756 EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version) | 767 EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version) |
757 !ENDIF | 768 !ENDIF |
758 | 769 |
759 !if !$(USE_PORTABLE_DUMPER) | 770 !if !$(USE_PORTABLE_DUMPER) |
760 TEMACS_ENTRYPOINT=-entry:_start | 771 TEMACS_ENTRYPOINT=-entry:_start |
761 !endif | 772 !else |
762 | 773 TEMACS_ENTRYPOINT=-entry:mainCRTStartup |
763 TEMACS_DIR=$(XEMACS)\src | 774 !endif |
775 | |
776 TEMACS_DIR=$(SRC) | |
764 TEMACS=$(TEMACS_DIR)\temacs.exe | 777 TEMACS=$(TEMACS_DIR)\temacs.exe |
765 TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc | 778 TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc |
766 TEMACS_SRC=$(XEMACS)\src | 779 TEMACS_SRC=$(SRC) |
767 TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ | 780 TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ |
768 oldnames.lib kernel32.lib user32.lib gdi32.lib advapi32.lib \ | 781 oldnames.lib kernel32.lib user32.lib gdi32.lib advapi32.lib \ |
769 shell32.lib wsock32.lib winmm.lib winspool.lib $(LIBC_LIB) | 782 shell32.lib wsock32.lib winmm.lib winspool.lib ole32.lib uuid.lib $(LIBC_LIB) |
770 TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\ | 783 TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\ |
771 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:console\ | 784 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows\ |
772 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ | 785 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ |
773 -heap:0x00100000 -out:$@ -nodefaultlib | 786 -heap:0x00100000 -nodefaultlib -incremental:no |
774 TEMACS_CPP_FLAGS=-c \ | 787 TEMACS_CPP_FLAGS=-c \ |
775 $(CFLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ | 788 $(CFLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ |
776 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ | 789 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ |
777 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ | 790 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ |
778 $(EMACS_BETA_VERSION) \ | 791 $(EMACS_BETA_VERSION) \ |
944 $(OUTDIR)\syntax.obj \ | 957 $(OUTDIR)\syntax.obj \ |
945 $(OUTDIR)\sysdep.obj \ | 958 $(OUTDIR)\sysdep.obj \ |
946 $(OUTDIR)\tparam.obj \ | 959 $(OUTDIR)\tparam.obj \ |
947 $(OUTDIR)\undo.obj \ | 960 $(OUTDIR)\undo.obj \ |
948 $(OUTDIR)\widget.obj \ | 961 $(OUTDIR)\widget.obj \ |
949 $(OUTDIR)\window.obj \ | 962 $(OUTDIR)\window.obj |
950 $(OUTDIR)\xemacs.res | |
951 | 963 |
952 # Rules | 964 # Rules |
953 | 965 |
954 .SUFFIXES: | 966 .SUFFIXES: |
955 .SUFFIXES: .c .obj .texi .info | 967 .SUFFIXES: .c .obj .texi .info |
975 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h" | 987 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h" |
976 | 988 |
977 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in | 989 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in |
978 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h" | 990 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h" |
979 | 991 |
980 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) | 992 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) $(OUTDIR)\xemacs.res |
981 !if $(DEBUG_XEMACS) | 993 !if $(DEBUG_XEMACS) |
982 @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp | 994 @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp |
983 bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp | 995 bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp |
984 @$(DEL) bscmake.tmp | 996 @$(DEL) bscmake.tmp |
985 !endif | 997 !endif |
986 !if $(USE_PORTABLE_DUMPER) | 998 !if $(USE_PORTABLE_DUMPER) |
987 @if exist $(TEMACS_DIR)\xemacs.dmp del $(TEMACS_DIR)\xemacs.dmp | 999 @if exist $(TEMACS_DIR)\xemacs.dmp del $(TEMACS_DIR)\xemacs.dmp |
988 !endif | |
989 link.exe @<< | 1000 link.exe @<< |
990 $(TEMACS_LFLAGS) $(TEMACS_OBJS) $(TEMACS_LIBS) | 1001 $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_LIBS) |
991 << | 1002 << |
1003 !else | |
1004 link.exe @<< | |
1005 $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) | |
1006 << | |
1007 !endif | |
992 | 1008 |
993 $(OUTDIR)\xemacs.res: xemacs.rc | 1009 $(OUTDIR)\xemacs.res: xemacs.rc |
994 rc -Fo$@ xemacs.rc | 1010 rc -Fo$@ xemacs.rc |
995 | 1011 |
996 # Section handling automated tests starts here | 1012 # Section handling automated tests starts here |
997 | 1013 |
998 SRCDIR=$(MAKEDIR)\..\src | 1014 PROGNAME=$(SRC)\xemacs.exe |
999 PROGNAME=$(SRCDIR)\xemacs.exe | |
1000 blddir=$(MAKEDIR:\=\\)\\.. | 1015 blddir=$(MAKEDIR:\=\\)\\.. |
1001 temacs_loadup=$(TEMACS) -batch -l $(SRCDIR)/../lisp/loadup.el | 1016 temacs_loadup=$(TEMACS) -batch -l $(LISP)/loadup.el |
1002 dump_temacs = $(temacs_loadup) dump | 1017 dump_temacs = $(temacs_loadup) dump |
1003 run_temacs = $(temacs_loadup) run-temacs | 1018 run_temacs = $(temacs_loadup) run-temacs |
1004 ## We have automated tests!! | 1019 ## We have automated tests!! |
1005 testdir=../tests/automated | 1020 testdir=../tests/automated |
1006 batch_test_emacs=-batch -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir) | 1021 batch_test_emacs=-batch -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir) |
1007 | 1022 |
1008 # .PHONY: check check-temacs | 1023 # .PHONY: check check-temacs |
1009 | 1024 |
1010 check: | 1025 check: |
1011 cd $(SRCDIR) | 1026 cd $(SRC) |
1012 $(PROGNAME) $(batch_test_emacs) | 1027 $(PROGNAME) $(batch_test_emacs) |
1013 | 1028 |
1014 check-temacs: | 1029 check-temacs: |
1015 cd $(SRCDIR) | 1030 cd $(SRC) |
1016 set EMACSBOOTSTRAPLOADPATH=$(LISP) | 1031 set EMACSBOOTSTRAPLOADPATH=$(LISP) |
1017 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) | 1032 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) |
1018 $(run_temacs) $(batch_test_emacs) | 1033 $(run_temacs) $(batch_test_emacs) |
1019 | 1034 |
1020 # Section handling automated tests ends here | 1035 # Section handling automated tests ends here |
1036 | |
1037 # Section handling tags starts here | |
1038 | |
1039 tagslisp=lisp | |
1040 | |
1041 tags: | |
1042 @echo If you don't have a copy of etags around, then do 'make lib-src' first. | |
1043 @echo To make use of the tags file, put the following in your .emacs: | |
1044 @echo (setq tag-table-alist | |
1045 @echo '(("$(XEMACSDIRSTRING)\\" . "$(XEMACSDIRSTRING)\\"))) | |
1046 cd $(XEMACS) | |
1047 $(DEL) TAGS | |
1048 set PATH=lib-src;%PATH% | |
1049 # argh!!! we need two ^^'s to get one ^, but only before a backslash. | |
1050 # i have no idea why. probably some obscure nmake quoting convention. | |
1051 etags -a -r "/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*\"\([^^\"]+\)\"/\2/" src\*.c src\*.h lwlib\*.c lwlib\*.h lib-src\*.c lib-src\*.h | |
1052 etags -a -l none -r "/^(def\(var\|un\|alias\|const\|macro\|subst\|struct\|face\|group\|custom\|ine-\(function\|compiler-macro\|[a-z-]+alias\)\)[ ]+'?\([^ ]+\)/\3/" $(tagslisp)\*.el | |
1053 | |
1054 # Section handling tags ends here | |
1021 | 1055 |
1022 # Section handling info starts here | 1056 # Section handling info starts here |
1023 | 1057 |
1024 !if !defined(MAKEINFO) | 1058 !if !defined(MAKEINFO) |
1025 MAKEINFO=$(PROGNAME) -vanilla -batch -l texinfmt -f batch-texinfo-format | 1059 MAKEINFO=$(PROGNAME) -vanilla -batch -l texinfmt -f batch-texinfo-format |
1256 cd $(TEMACS_DIR) | 1290 cd $(TEMACS_DIR) |
1257 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) | 1291 set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) |
1258 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) | 1292 set EMACSBOOTSTRAPMODULEPATH=$(MODULES) |
1259 -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump | 1293 -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump |
1260 !if $(USE_PORTABLE_DUMPER) | 1294 !if $(USE_PORTABLE_DUMPER) |
1261 copy temacs.exe xemacs.exe | 1295 rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc |
1296 link.exe @<< | |
1297 $(TEMACS_LFLAGS) -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) | |
1298 << | |
1299 # Make the resource section read/write since almost all of it is the dump | |
1300 # data which needs to be writable. This avoids having to copy it. | |
1301 editbin -nologo -section:.rsrc,rw xemacs.exe | |
1302 del $(TEMACS_DIR)\xemacs.dmp | |
1262 !endif | 1303 !endif |
1263 cd $(NT) | 1304 cd $(NT) |
1264 @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ | 1305 @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ |
1265 #------------------------------------------------------------------------------ | 1306 #------------------------------------------------------------------------------ |
1266 | 1307 |
1267 # use this rule to build the complete system | 1308 # use this rule to build the complete system |
1268 all: $(XEMACS)\Installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ | 1309 all: installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ |
1269 $(LIB_SRC_TOOLS) $(RUNEMACS) $(TEMACS) update-elc $(DOC) dump-xemacs \ | 1310 $(LIB_SRC_TOOLS) $(RUNEMACS) $(TEMACS) update-elc $(DOC) dump-xemacs \ |
1270 $(LISP)/auto-autoloads.el $(LISP)/custom-load.el info | 1311 $(LISP)/auto-autoloads.el $(LISP)/custom-load.el info |
1271 | 1312 |
1272 temacs: $(LASTFILE) $(TEMACS) | 1313 temacs: $(LASTFILE) $(TEMACS) |
1273 | 1314 |
1280 @xcopy /q PlaceHolder "$(INSTALL_DIR)\lock\" | 1321 @xcopy /q PlaceHolder "$(INSTALL_DIR)\lock\" |
1281 @$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" | 1322 @$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" |
1282 @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\" | 1323 @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\" |
1283 @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" | 1324 @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" |
1284 @copy $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" | 1325 @copy $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" |
1285 @copy $(XEMACS)\src\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" | 1326 @copy $(SRC)\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" |
1286 !if $(USE_PORTABLE_DUMPER) | |
1287 @copy $(XEMACS)\src\xemacs.dmp "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" | |
1288 !endif | |
1289 @copy $(RUNEMACS) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" | 1327 @copy $(RUNEMACS) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" |
1290 @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\" | 1328 @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\" |
1291 @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\" | 1329 @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\" |
1292 @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" | 1330 @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" |
1293 @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... | 1331 @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... |
1340 depend: | 1378 depend: |
1341 cd $(SRCDIR) | 1379 cd $(SRCDIR) |
1342 perl ./make-src-depend > depend.tmp | 1380 perl ./make-src-depend > depend.tmp |
1343 perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" | 1381 perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" |
1344 | 1382 |
1383 $(XEMACS)\Installation:: installation | |
1384 | |
1345 installation:: | 1385 installation:: |
1346 @if exist $(XEMACS)\Installation del $(XEMACS)\Installation | |
1347 | |
1348 installation:: $(XEMACS)\Installation | |
1349 | |
1350 $(XEMACS)\Installation: | |
1351 @type > $(XEMACS)\Installation << | 1386 @type > $(XEMACS)\Installation << |
1352 !if defined(OS) | 1387 !if defined(OS) |
1353 OS: $(OS) | 1388 OS: $(OS) |
1354 !endif | 1389 !endif |
1355 | 1390 |