1 # Make file for building GNU Emacs on the Macintosh.
2 # Copyright (C) 1999, 2000 Free Software Foundation, Inc.
4 # Author: Andrew Choi <akochoi@users.sourceforge.net>
6 # This file is part of GNU Emacs.
8 # GNU Emacs is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
13 # GNU Emacs is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with GNU Emacs; see the file COPYING. If not, write to
20 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 # Boston, MA 02111-1307, USA. */
23 # Defines the following targets:
24 # Emacs (default) - normal Emacs build.
25 # Clean - remove all object and executable files to prepare for a fresh build.
26 # Doc - generate the "DOC" file in ~emacs/etc/.
27 # Make-DocFile - build the make-docfile tool, utility for generating "DOC".
28 # PrepSource - prepare the source files after unstuffing the distribution.
29 # PrepDist - prepare for distribution: generate diff files; move mac-win.el to {Patches}.
31 Src = ::src: # emacs's src directory
32 Includes = :inc: # mac includes directory (common for MPW and CW)
33 Source = :src: # mac source directory
34 Lib-Src = ::lib-src: # ~emacs/lib-src directory, containing make-docfile.c
35 EmacsTarget = :Emacs MPW # pathname of target executable file
36 DocTarget = ::etc: # where the generated DOC file should be placed
37 Lisp = ::lisp: # emacs's lisp directory
38 Make-DocFileDir = {Lib-Src} # directory containing make-docfile tool
40 Makefile = makefile.MPW # self reference
42 SymOption = # -sym on # remove hash mark before "-sym on" to enable source debugging
43 OptOption = # -opt speed # alternatively set to -opt off or -opt size
45 # The -noMapCR options and the two -d's must not be removed.
47 PPCCOptions = {SymOption} {OptOption} -noMapCR -enum int ¶
48 -typecheck relaxed -w off ¶
49 -includes unix -i {Includes},{Src} ¶
50 -d emacs=1 -d HAVE_CONFIG_H
52 LinkOptions = {SymOption} -d
54 CONFIG_H_GROUP = "{Includes}config.h" "{Includes}s-mac.h" "{Includes}utsname.h" "{Includes}m-mac.h"
55 DISPEXTERN_H_GROUP = "{Src}dispextern.h" "{Includes}macgui.h"
56 INTERVALS_H_GROUP = "{Src}intervals.h" "{Src}dispextern.h" "{Includes}macgui.h"
57 WINDOW_H_GROUP = "{Src}window.h" {DISPEXTERN_H_GROUP}
58 BLOCKINPUT_H_GROUP = "{Src}blockinput.h" "{Src}atimer.h" "{Src}systime.h" ¶
59 "{Includes}sys:time.h" "{Includes}sys:time.h"
61 # The list all object files from the GNU Emacs 21.0 distribution.
72 "{Src}casefiddle.c.x" ¶
80 "{Src}composite.c.x" ¶
95 "{Src}getloadavg.c.x" ¶
98 "{Src}intervals.c.x" ¶
106 "{Src}mocklisp.c.x" ¶
110 "{Src}region-cache.c.x" ¶
113 "{Src}strftime.c.x" ¶
118 "{Src}textprop.c.x" ¶
125 # The list of object files generated from new source files of the Macintosh port.
129 "{Source}macfns.c.x" ¶
130 "{Source}macmenu.c.x" ¶
131 "{Source}macterm.c.x"
133 # The next two are the dependency rules for building Emacs.
135 Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects}
138 {EmacsObjects} {MacObjects} ¶
139 "{SharedLibraries}InterfaceLib" ¶
140 "{SharedLibraries}StdCLib" ¶
141 "{SharedLibraries}MathLib" ¶
142 "{SharedLibraries}AppleScriptLib" ¶
143 "{SharedLibraries}TextEncodingConverter" ¶
144 "{SharedLibraries}AppearanceLib" ¶
145 "{PPCLibraries}StdCRuntime.o" ¶
146 "{PPCLibraries}PPCCRuntime.o" ¶
147 "{PPCLibraries}PPCToolLibs.o" ¶
150 Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
151 Rez -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}"
152 Rez -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}"
153 SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B
155 # Rez cannot handle files with Unix style end lines at all. So generate
156 # them. It does not hurt if Emacs.r and EmacsMPW.r already have Mac end
159 "{Source}"Emacs.maclf.r Ä "{Source}"Emacs.r
160 translate ¶0x0a ¶n < "{Source}"Emacs.r > "{Source}"Emacs.maclf.r
162 "{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r
163 translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r
165 # Here comes a long boring list of rules saying which files depend on which
166 # other ones. I generated them by hand using the "-p" option of the MrC compiler.
167 # Know about MakeMake, but this is probably more accurate.
181 {INTERVALS_H_GROUP} ¶
186 {BLOCKINPUT_H_GROUP} ¶
201 "{Includes}sys:time.h" ¶
202 {BLOCKINPUT_H_GROUP} ¶
204 "{Includes}sys:time.h"
208 "{Includes}sys:types.h" ¶
209 "{Includes}sys:stat.h" ¶
210 "{Includes}sys:param.h" ¶
212 {INTERVALS_H_GROUP} ¶
217 "{Src}region-cache.h" ¶
219 {BLOCKINPUT_H_GROUP} ¶
222 {Src}bytecode.c.x Ä ¶
238 {Src}callproc.c.x Ä ¶
240 "{Includes}sys:types.h" ¶
241 "{Includes}sys:file.h" ¶
242 "{Includes}sys:types.h" ¶
243 "{Includes}sys:stat.h" ¶
251 "{Includes}epaths.h" ¶
272 {Src}category.c.x Ä ¶
288 "{Includes}sys:types.h" ¶
322 {Src}composite.c.x Ä ¶
341 "{Includes}sys:types.h" ¶
342 "{Includes}sys:stat.h" ¶
344 "{Includes}sys:time.h" ¶
345 "{Includes}dirent.h" ¶
360 {DISPEXTERN_H_GROUP} ¶
368 {INTERVALS_H_GROUP} ¶
369 {BLOCKINPUT_H_GROUP} ¶
373 "{Includes}macterm.h" ¶
374 "{Includes}macgui.h" ¶
380 "{Includes}sys:types.h" ¶
381 "{Includes}sys:file.h" ¶
394 "{Includes}sys:types.h" ¶
397 {INTERVALS_H_GROUP} ¶
404 "{Includes}sys:time.h"
408 "{Includes}sys:types.h" ¶
409 "{Includes}sys:file.h" ¶
410 "{Includes}sys:types.h" ¶
411 "{Includes}sys:stat.h" ¶
414 {INTERVALS_H_GROUP} ¶
417 "{Includes}termio.h" ¶
418 {BLOCKINPUT_H_GROUP} ¶
428 {BLOCKINPUT_H_GROUP} ¶
435 "{Includes}sys:types.h" ¶
436 "{Includes}sys:stat.h" ¶
439 {INTERVALS_H_GROUP} ¶
446 "{Includes}sys:time.h" ¶
449 {Src}filemode.c.x Ä ¶
451 "{Includes}sys:types.h" ¶
452 "{Includes}sys:stat.h"
454 {Src}floatfns.c.x Ä ¶
466 {INTERVALS_H_GROUP} ¶
477 {DISPEXTERN_H_GROUP} ¶
486 "{Includes}macterm.h" ¶
487 "{Includes}macgui.h" ¶
492 {DISPEXTERN_H_GROUP} ¶
498 {Src}getloadavg.c.x Ä ¶
500 "{Includes}sys:types.h"
514 {INTERVALS_H_GROUP} ¶
515 "{Src}region-cache.h"
520 {INTERVALS_H_GROUP} ¶
524 {BLOCKINPUT_H_GROUP} ¶
525 "{Src}region-cache.h"
527 {Src}intervals.c.x Ä ¶
530 {INTERVALS_H_GROUP} ¶
535 {Src}keyboard.c.x Ä ¶
547 {DISPEXTERN_H_GROUP} ¶
550 {INTERVALS_H_GROUP} ¶
551 {BLOCKINPUT_H_GROUP} ¶
555 "{Includes}sys:ioctl.h" ¶
558 "{Includes}termio.h" ¶
559 "{Includes}sys:types.h" ¶
560 "{Includes}macterm.h" ¶
561 "{Includes}macgui.h" ¶
573 {BLOCKINPUT_H_GROUP} ¶
579 "{Includes}sys:types.h" ¶
580 "{Includes}sys:stat.h" ¶
581 "{Includes}sys:file.h" ¶
583 {INTERVALS_H_GROUP} ¶
586 "{Includes}epaths.h" ¶
612 {DISPEXTERN_H_GROUP} ¶
620 "{Includes}sys:types.h"
622 {Src}mocklisp.c.x Ä ¶
635 {DISPEXTERN_H_GROUP} ¶
642 "{Includes}sys:types.h" ¶
645 "{Includes}sys:time.h" ¶
654 "{Includes}sys:types.h" ¶
662 {Src}region-cache.c.x Ä ¶
666 "{Src}region-cache.h"
672 {DISPEXTERN_H_GROUP} ¶
683 "{Src}region-cache.h" ¶
685 {BLOCKINPUT_H_GROUP} ¶
686 {INTERVALS_H_GROUP} ¶
687 "{Includes}sys:types.h" ¶
690 {Src}strftime.c.x Ä ¶
692 "{Includes}sys:types.h" ¶
693 "{Includes}sys:time.h"
702 {INTERVALS_H_GROUP} ¶
708 {BLOCKINPUT_H_GROUP} ¶
709 "{Includes}sys:types.h" ¶
710 "{Includes}sys:stat.h" ¶
711 "{Includes}sys:ioctl.h" ¶
713 "{Includes}sys:types.h" ¶
719 {DISPEXTERN_H_GROUP} ¶
723 "{Includes}utime.h" ¶
725 "{Includes}dirent.h" ¶
726 "{Includes}sys:types.h"
740 {DISPEXTERN_H_GROUP} ¶
743 "{Includes}macterm.h" ¶
744 "{Includes}macgui.h" ¶
750 "{Includes}sys:file.h"
752 {Src}textproc.c.x Ä ¶
755 {INTERVALS_H_GROUP} ¶
780 {DISPEXTERN_H_GROUP} ¶
781 {BLOCKINPUT_H_GROUP} ¶
782 {INTERVALS_H_GROUP} ¶
783 "{Includes}macterm.h" ¶
784 "{Includes}macgui.h" ¶
793 {DISPEXTERN_H_GROUP} ¶
801 {INTERVALS_H_GROUP} ¶
806 "{Src}region-cache.h" ¶
808 "{Includes}macterm.h" ¶
809 "{Includes}macgui.h" ¶
814 "{Includes}sys:types.h" ¶
815 "{Includes}sys:stat.h" ¶
820 "{Includes}macterm.h" ¶
821 "{Includes}macgui.h" ¶
824 {DISPEXTERN_H_GROUP} ¶
825 {BLOCKINPUT_H_GROUP} ¶
827 {INTERVALS_H_GROUP} ¶
837 {BLOCKINPUT_H_GROUP} ¶
839 "{Includes}sys:types.h" ¶
844 "{Includes}utime.h" ¶
845 "{Includes}dirent.h" ¶
846 "{Includes}sys:types.h" ¶
847 "{Includes}sys:stat.h" ¶
849 "{Includes}sys:types.h" ¶
850 "{Includes}sys:param.h" ¶
855 "{Includes}sys:time.h" ¶
856 "{Includes}utsname.h"
862 "{Includes}macterm.h" ¶
863 "{Includes}macgui.h" ¶
868 {DISPEXTERN_H_GROUP} ¶
870 {INTERVALS_H_GROUP} ¶
872 {BLOCKINPUT_H_GROUP} ¶
873 "{Includes}epaths.h" ¶
878 "{Src}bitmaps:gray.xbm"
880 {Source}macterm.c Ä ¶
883 {BLOCKINPUT_H_GROUP} ¶
885 "{Includes}macterm.h" ¶
886 "{Includes}macgui.h" ¶
888 "{Includes}alloca.h" ¶
889 "{Includes}sys:types.h" ¶
891 "{Includes}termio.h" ¶
893 "{Includes}sys:stat.h" ¶
897 {DISPEXTERN_H_GROUP} ¶
907 {INTERVALS_H_GROUP} ¶
912 "{Includes}epaths.h" ¶
918 #----------------------------------------#
919 # Variables and rules for target "Clean" #
920 #----------------------------------------#
923 Delete -i {EmacsObjects} {MacObjects}
924 Delete -i "{EmacsTarget}"
925 Delete -i stdout stderr
926 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile
927 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
930 Delete -i "Emacs CW"Å
931 Delete -y "emacs Data"
934 #--------------------------------------#
935 # Variables and rules for target "Doc" #
936 #--------------------------------------#
947 "{Src}casefiddle.c" ¶
970 "{Src}getloadavg.c" ¶
985 "{Src}region-cache.c" ¶
1003 "{Source}macfns.c" ¶
1011 {Lisp}scroll-bar.el ¶
1013 {Lisp}vms-patch.el ¶
1018 {Lisp}disp-table.el ¶
1020 {Lisp}international:ccl.el ¶
1021 {Lisp}international:codepage.el ¶
1023 {Lisp}buff-menu.el ¶
1025 {Lisp}cus-start.el ¶
1027 {Lisp}emacs-lisp:lisp-mode.el ¶
1028 {Lisp}emacs-lisp:lisp.el ¶
1032 {Lisp}float-sup.el ¶
1042 {Lisp}international:mule.el ¶
1043 {Lisp}international:mule-conf.el ¶
1044 {Lisp}international:mule-cmds.el ¶
1045 {Lisp}international:characters.el ¶
1046 {Lisp}case-table.el ¶
1047 {Lisp}language:chinese.el ¶
1048 {Lisp}language:cyrillic.el ¶
1049 {Lisp}language:indian.el ¶
1050 {Lisp}language:devanagari.el ¶
1051 {Lisp}language:english.el ¶
1052 {Lisp}language:ethiopic.el ¶
1053 {Lisp}language:european.el ¶
1054 {Lisp}language:czech.el ¶
1055 {Lisp}language:slovak.el ¶
1056 {Lisp}language:romanian.el ¶
1057 {Lisp}language:greek.el ¶
1058 {Lisp}language:hebrew.el ¶
1059 {Lisp}language:japanese.el ¶
1060 {Lisp}language:korean.el ¶
1061 {Lisp}language:lao.el ¶
1062 {Lisp}language:thai.el ¶
1063 {Lisp}language:tibetan.el ¶
1064 {Lisp}language:vietnamese.el ¶
1065 {Lisp}language:misc-lang.el ¶
1072 {Lisp}term:tty-colors.el ¶
1073 {Lisp}textmodes:fill.el ¶
1074 {Lisp}textmodes:page.el ¶
1075 {Lisp}textmodes:paragraphs.el ¶
1076 {Lisp}textmodes:text-mode.el ¶
1078 {Lisp}ediff-hook.el ¶
1084 Doc Ä {DocTarget}DOC
1086 {DocTarget}DOC Ä {Makefile} {EmacsSource} {MacSource} {LispSource} {Make-DocFileDir}Make-DocFile
1087 {Make-DocFileDir}make-docfile {EmacsSource} > {DocTarget}DOC
1088 {Make-DocFileDir}make-docfile {MacSource} >> {DocTarget}DOC
1089 {Make-DocFileDir}make-docfile {LispSource} >> {DocTarget}DOC
1092 #-----------------------------------------------#
1093 # Variables and rules for target "Make-DocFile" #
1094 #-----------------------------------------------#
1096 Make-DocFile-Includes = -i :inc:
1099 Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶
1100 {Make-DocFile-Includes} {Make-DocFile-Sym}
1102 Make-DocFile-Objects = ¶
1103 "{Lib-Src}make-docfile.c.x" ¶
1106 Make-DocFile Ä {Make-DocFileDir}Make-DocFile
1108 {Make-DocFileDir}Make-DocFile Ä {Makefile} {Make-DocFile-Objects}
1110 -o {Make-DocFileDir}Make-DocFile ¶
1111 {Make-DocFile-Sym} ¶
1112 {Make-DocFile-Objects} ¶
1115 "{SharedLibraries}InterfaceLib" ¶
1116 "{SharedLibraries}StdCLib" ¶
1117 "{SharedLibraries}MathLib" ¶
1118 "{PPCLibraries}StdCRuntime.o" ¶
1119 "{PPCLibraries}PPCCRuntime.o" ¶
1120 "{PPCLibraries}PPCToolLibs.o"
1122 "{Lib-Src}make-docfile.c.x" Ä {Makefile} "{Lib-Src}make-docfile.c"
1123 {PPCC} "{Lib-Src}make-docfile.c" -o "{Lib-Src}make-docfile.c.x" {Make-DocFile-PPCCOptions}
1125 "{Source}chdir.c.x" Ä {Makefile} "{Source}chdir.c"
1126 {PPCC} "{Source}chdir.c" -o "{Source}chdir.c.x" {Make-DocFile-PPCCOptions}