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 Carbon Emacs build.
25 # NonCarbon - non-Carbon Emacs build.
26 # Clean - remove all object and executable files to prepare for a fresh build.
27 # Doc - generate the "DOC" file in ~emacs/etc/.
28 # Make-DocFile - build the make-docfile tool, utility for generating "DOC".
29 # PrepSource - prepare the source files after unstuffing the distribution.
30 # PrepDist - prepare for distribution: generate diff files; move mac-win.el to {Patches}.
32 Src = ::src: # emacs's src directory
33 Includes = :inc: # mac includes directory (common for MPW and CW)
34 Source = :src: # mac source directory
35 Lib-Src = ::lib-src: # ~emacs/lib-src directory, containing make-docfile.c
36 EmacsTarget = :Emacs MPW # pathname of target executable file
37 DocTarget = ::etc: # where the generated DOC file should be placed
38 Lisp = ::lisp: # emacs's lisp directory
39 Make-DocFileDir = {Lib-Src} # directory containing make-docfile tool
41 Makefile = makefile.MPW # self reference
42 NonCarbonMakeOut = NonCarbon.MakeOut # temporary file for non-Carbon build script
44 CarbonOption = -d HAVE_CARBON
45 SymOption = # -sym on # remove hash mark before "-sym on" to enable source debugging
46 OptOption = # -opt speed # alternatively set to -opt off or -opt size
48 # The -noMapCR options and the two -d's must not be removed.
50 PPCCOptions = {SymOption} {OptOption} -noMapCR -enum int -alloca ¶
51 -typecheck relaxed -w off ¶
52 -includes unix -i {Includes},{Src} ¶
53 -d emacs=1 -d HAVE_CONFIG_H -d MAC_OS -d MAC_OS8 {CarbonOption}
55 LinkOptions = {SymOption} -d
57 CONFIG_H_GROUP = "{Includes}config.h" "{Includes}s-mac.h" "{Includes}utsname.h" "{Includes}m-mac.h"
58 DISPEXTERN_H_GROUP = "{Src}dispextern.h" "{Src}macgui.h"
59 INTERVALS_H_GROUP = "{Src}intervals.h" "{Src}dispextern.h" "{Src}macgui.h"
60 WINDOW_H_GROUP = "{Src}window.h" {DISPEXTERN_H_GROUP}
61 BLOCKINPUT_H_GROUP = "{Src}blockinput.h" "{Src}atimer.h" "{Src}systime.h" ¶
62 "{Includes}sys:time.h" "{Includes}sys:time.h"
64 # The list all object files from the GNU Emacs 21.0 distribution.
74 "{Src}casefiddle.c.x" ¶
82 "{Src}composite.c.x" ¶
98 "{Src}getloadavg.c.x" ¶
102 "{Src}intervals.c.x" ¶
103 "{Src}keyboard.c.x" ¶
114 "{Src}region-cache.c.x" ¶
117 "{Src}strftime.c.x" ¶
122 "{Src}textprop.c.x" ¶
130 # The list of object files generated from new source files of the Macintosh port.
139 "{SharedLibraries}CarbonLib" ¶
140 "{SharedLibraries}StdCLib" ¶
141 "{PPCLibraries}StdCRuntime.o" ¶
142 "{PPCLibraries}PPCCRuntime.o"
145 "{SharedLibraries}InterfaceLib" ¶
146 "{SharedLibraries}StdCLib" ¶
147 "{SharedLibraries}MathLib" ¶
148 "{SharedLibraries}AppleScriptLib" ¶
149 "{SharedLibraries}LocalesLib" ¶
150 "{SharedLibraries}AppearanceLib" ¶
151 "{SharedLibraries}QuickTimeLib" ¶
152 "{PPCLibraries}StdCRuntime.o" ¶
153 "{PPCLibraries}PPCCRuntime.o" ¶
154 "{PPCLibraries}PPCToolLibs.o"
156 # The next two are the dependency rules for building Emacs.
158 Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects}
161 {EmacsObjects} {MacObjects} ¶
165 Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
166 Rez {CarbonOption} -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}"
167 Rez {CarbonOption} -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}"
168 SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B
171 Make -f "{Makefile}" -d CarbonOption="" -d StdLibraries='{NonCarbonLibs}' > "{NonCarbonMakeOut}"
174 # Rez cannot handle files with Unix style end lines at all. So generate
175 # them. It does not hurt if Emacs.r and EmacsMPW.r already have Mac end
178 "{Source}"Emacs.maclf.r Ä "{Source}"Emacs.r
179 translate ¶0x0a ¶n < "{Source}"Emacs.r > "{Source}"Emacs.maclf.r
181 "{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r
182 translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r
184 # Here comes a long boring list of rules saying which files depend on which
185 # other ones. I generated them by hand using the "-p" option of the MrC compiler.
186 # Know about MakeMake, but this is probably more accurate.
200 {INTERVALS_H_GROUP} ¶
205 {BLOCKINPUT_H_GROUP} ¶
220 "{Includes}sys:time.h" ¶
221 {BLOCKINPUT_H_GROUP} ¶
223 "{Includes}sys:time.h"
227 "{Includes}sys:types.h" ¶
228 "{Includes}sys:stat.h" ¶
229 "{Includes}sys:param.h" ¶
231 {INTERVALS_H_GROUP} ¶
236 "{Src}region-cache.h" ¶
238 {BLOCKINPUT_H_GROUP} ¶
241 {Src}bytecode.c.x Ä ¶
256 {Src}callproc.c.x Ä ¶
258 "{Includes}sys:types.h" ¶
259 "{Includes}sys:file.h" ¶
260 "{Includes}sys:types.h" ¶
261 "{Includes}sys:stat.h" ¶
269 "{Includes}epaths.h" ¶
290 {Src}category.c.x Ä ¶
306 "{Includes}sys:types.h" ¶
340 {Src}composite.c.x Ä ¶
359 "{Includes}sys:types.h" ¶
360 "{Includes}sys:stat.h" ¶
362 "{Includes}sys:time.h" ¶
363 "{Includes}dirent.h" ¶
378 {DISPEXTERN_H_GROUP} ¶
386 {INTERVALS_H_GROUP} ¶
387 {BLOCKINPUT_H_GROUP} ¶
398 "{Includes}sys:types.h" ¶
399 "{Includes}sys:file.h" ¶
412 "{Includes}sys:types.h" ¶
415 {INTERVALS_H_GROUP} ¶
422 "{Includes}sys:time.h"
426 "{Includes}sys:types.h" ¶
427 "{Includes}sys:file.h" ¶
428 "{Includes}sys:types.h" ¶
429 "{Includes}sys:stat.h" ¶
432 {INTERVALS_H_GROUP} ¶
435 "{Includes}termio.h" ¶
436 {BLOCKINPUT_H_GROUP} ¶
446 {BLOCKINPUT_H_GROUP} ¶
453 "{Includes}sys:types.h" ¶
454 "{Includes}sys:stat.h" ¶
457 {INTERVALS_H_GROUP} ¶
464 "{Includes}sys:time.h" ¶
467 {Src}filemode.c.x Ä ¶
469 "{Includes}sys:types.h" ¶
470 "{Includes}sys:stat.h"
472 {Src}floatfns.c.x Ä ¶
484 {INTERVALS_H_GROUP} ¶
495 {DISPEXTERN_H_GROUP} ¶
510 {BLOCKINPUT_H_GROUP} ¶
511 {DISPEXTERN_H_GROUP} ¶
525 {Src}getloadavg.c.x Ä ¶
527 "{Includes}sys:types.h"
534 {DISPEXTERN_H_GROUP} ¶
535 {BLOCKINPUT_H_GROUP} ¶
536 "{Includes}epaths.h" ¶
540 "{Includes}sys:stat.h" ¶
541 "{Includes}alloca.h" ¶
542 "{Includes}sys:param.h"
556 {INTERVALS_H_GROUP} ¶
557 "{Src}region-cache.h"
562 {INTERVALS_H_GROUP} ¶
566 {BLOCKINPUT_H_GROUP} ¶
567 "{Src}region-cache.h"
569 {Src}intervals.c.x Ä ¶
572 {INTERVALS_H_GROUP} ¶
577 {Src}keyboard.c.x Ä ¶
589 {DISPEXTERN_H_GROUP} ¶
592 {INTERVALS_H_GROUP} ¶
593 {BLOCKINPUT_H_GROUP} ¶
597 "{Includes}sys:ioctl.h" ¶
600 "{Includes}termio.h" ¶
601 "{Includes}sys:types.h" ¶
615 {BLOCKINPUT_H_GROUP} ¶
619 {Src}lastfile.c.x Ä ¶
624 "{Includes}sys:types.h" ¶
625 "{Includes}sys:stat.h" ¶
626 "{Includes}sys:file.h" ¶
628 {INTERVALS_H_GROUP} ¶
631 "{Includes}epaths.h" ¶
657 {DISPEXTERN_H_GROUP} ¶
665 "{Includes}sys:types.h"
675 {DISPEXTERN_H_GROUP} ¶
682 "{Includes}sys:types.h" ¶
685 "{Includes}sys:time.h" ¶
694 "{Includes}sys:types.h" ¶
702 {Src}region-cache.c.x Ä ¶
706 "{Src}region-cache.h"
712 {DISPEXTERN_H_GROUP} ¶
723 "{Src}region-cache.h" ¶
725 {BLOCKINPUT_H_GROUP} ¶
726 {INTERVALS_H_GROUP} ¶
727 "{Includes}sys:types.h" ¶
730 {Src}strftime.c.x Ä ¶
732 "{Includes}sys:types.h" ¶
733 "{Includes}sys:time.h"
742 {INTERVALS_H_GROUP} ¶
748 {BLOCKINPUT_H_GROUP} ¶
749 "{Includes}sys:types.h" ¶
750 "{Includes}sys:stat.h" ¶
751 "{Includes}sys:ioctl.h" ¶
753 "{Includes}sys:types.h" ¶
759 {DISPEXTERN_H_GROUP} ¶
763 "{Includes}utime.h" ¶
765 "{Includes}dirent.h" ¶
766 "{Includes}sys:types.h"
780 {DISPEXTERN_H_GROUP} ¶
790 "{Includes}sys:file.h"
792 {Src}textproc.c.x Ä ¶
795 {INTERVALS_H_GROUP} ¶
820 {DISPEXTERN_H_GROUP} ¶
821 {BLOCKINPUT_H_GROUP} ¶
822 {INTERVALS_H_GROUP} ¶
833 {DISPEXTERN_H_GROUP} ¶
839 {BLOCKINPUT_H_GROUP} ¶
842 {INTERVALS_H_GROUP} ¶
848 "{Src}region-cache.h" ¶
856 "{Includes}sys:types.h" ¶
857 "{Includes}sys:stat.h" ¶
866 {DISPEXTERN_H_GROUP} ¶
867 {BLOCKINPUT_H_GROUP} ¶
869 {INTERVALS_H_GROUP} ¶
879 {BLOCKINPUT_H_GROUP} ¶
881 "{Includes}sys:types.h" ¶
886 "{Includes}utime.h" ¶
887 "{Includes}dirent.h" ¶
888 "{Includes}sys:types.h" ¶
889 "{Includes}sys:stat.h" ¶
891 "{Includes}sys:types.h" ¶
892 "{Includes}sys:param.h" ¶
897 "{Includes}sys:time.h" ¶
898 "{Includes}utsname.h"
910 {DISPEXTERN_H_GROUP} ¶
912 {INTERVALS_H_GROUP} ¶
914 {BLOCKINPUT_H_GROUP} ¶
915 "{Includes}epaths.h" ¶
920 "{Src}bitmaps:gray.xbm"
925 {BLOCKINPUT_H_GROUP} ¶
930 "{Includes}alloca.h" ¶
931 "{Includes}sys:types.h" ¶
933 "{Includes}termio.h" ¶
935 "{Includes}sys:stat.h" ¶
939 {DISPEXTERN_H_GROUP} ¶
949 {INTERVALS_H_GROUP} ¶
954 "{Includes}epaths.h" ¶
960 #----------------------------------------#
961 # Variables and rules for target "Clean" #
962 #----------------------------------------#
965 Delete -i {EmacsObjects} {MacObjects}
966 Delete -i "{EmacsTarget}"
967 Delete -i stdout stderr
968 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile
969 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
970 Delete -i "{NonCarbonMakeOut}"
973 Delete -i "Emacs CW"Å
974 Delete -y "emacs Data"
977 #--------------------------------------#
978 # Variables and rules for target "Doc" #
979 #--------------------------------------#
989 "{Src}casefiddle.c" ¶
1013 "{Src}getloadavg.c" ¶
1017 "{Src}intervals.c" ¶
1029 "{Src}region-cache.c" ¶
1052 {Lisp}menu-bar.elc ¶
1055 {Lisp}scroll-bar.elc ¶
1057 {Lisp}vms-patch.elc ¶
1062 {Lisp}disp-table.elc ¶
1063 {Lisp}dos-vars.elc ¶
1064 {Lisp}international:ccl.elc ¶
1065 {Lisp}international:codepage.elc ¶
1067 {Lisp}buff-menu.elc ¶
1068 {Lisp}emacs-lisp:byte-run.elc ¶
1069 {Lisp}cus-start.el ¶
1071 {Lisp}emacs-lisp:lisp-mode.elc ¶
1072 {Lisp}emacs-lisp:lisp.elc ¶
1073 {Lisp}facemenu.elc ¶
1076 {Lisp}emacs-lisp:float-sup.elc ¶
1084 {Lisp}bindings.elc ¶
1085 {Lisp}emacs-lisp:map-ynp.elc ¶
1086 {Lisp}international:mule.elc ¶
1087 {Lisp}international:mule-conf.el ¶
1088 {Lisp}international:mule-cmds.elc ¶
1089 {Lisp}international:characters.elc ¶
1090 {Lisp}case-table.elc ¶
1091 {Lisp}language:chinese.elc ¶
1092 {Lisp}language:cyrillic.elc ¶
1093 {Lisp}language:indian.elc ¶
1094 {Lisp}language:ethiopic.elc ¶
1095 {Lisp}language:european.elc ¶
1096 {Lisp}language:tibetan.elc ¶
1097 {Lisp}language:vietnamese.elc ¶
1099 {Lisp}register.elc ¶
1104 {Lisp}term:tty-colors.elc ¶
1105 {Lisp}textmodes:fill.elc ¶
1106 {Lisp}textmodes:page.elc ¶
1107 {Lisp}textmodes:paragraphs.elc ¶
1108 {Lisp}textmodes:text-mode.elc ¶
1109 {Lisp}vc-hooks.elc ¶
1110 {Lisp}ediff-hook.elc ¶
1115 LispSourceDontCompile = ¶
1116 {Lisp}language:devanagari.el ¶
1117 {Lisp}language:english.el ¶
1118 {Lisp}language:czech.el ¶
1119 {Lisp}language:slovak.el ¶
1120 {Lisp}language:romanian.el ¶
1121 {Lisp}language:greek.el ¶
1122 {Lisp}language:hebrew.el ¶
1123 {Lisp}language:japanese.el ¶
1124 {Lisp}language:korean.el ¶
1125 {Lisp}language:lao.el ¶
1126 {Lisp}language:thai.el ¶
1127 {Lisp}language:misc-lang.el
1129 Doc Ä {DocTarget}DOC
1131 {DocTarget}DOC Ä {Makefile} {EmacsSource} {MacSource} {LispSource} {LispSourceDontCompile} {Make-DocFileDir}Make-DocFile
1132 {Make-DocFileDir}make-docfile {EmacsSource} > {DocTarget}DOC
1133 {Make-DocFileDir}make-docfile {MacSource} >> {DocTarget}DOC
1134 {Make-DocFileDir}make-docfile {LispSource} >> {DocTarget}DOC
1135 {Make-DocFileDir}make-docfile {LispSourceDontCompile} >> {DocTarget}DOC
1138 #-----------------------------------------------#
1139 # Variables and rules for target "Make-DocFile" #
1140 #-----------------------------------------------#
1142 Make-DocFile-Includes = -i :inc:
1145 Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶
1146 {Make-DocFile-Includes} {Make-DocFile-Sym}
1148 Make-DocFile-Objects = ¶
1149 "{Lib-Src}make-docfile.c.x" ¶
1152 Make-DocFile Ä {Make-DocFileDir}Make-DocFile
1154 {Make-DocFileDir}Make-DocFile Ä {Makefile} {Make-DocFile-Objects}
1156 -o {Make-DocFileDir}Make-DocFile ¶
1157 {Make-DocFile-Sym} ¶
1158 {Make-DocFile-Objects} ¶
1161 "{SharedLibraries}InterfaceLib" ¶
1162 "{SharedLibraries}StdCLib" ¶
1163 "{SharedLibraries}MathLib" ¶
1164 "{PPCLibraries}StdCRuntime.o" ¶
1165 "{PPCLibraries}PPCCRuntime.o" ¶
1166 "{PPCLibraries}PPCToolLibs.o"
1168 "{Lib-Src}make-docfile.c.x" Ä {Makefile} "{Lib-Src}make-docfile.c"
1169 {PPCC} "{Lib-Src}make-docfile.c" -o "{Lib-Src}make-docfile.c.x" {Make-DocFile-PPCCOptions}
1171 "{Source}chdir.c.x" Ä {Makefile} "{Source}chdir.c"
1172 {PPCC} "{Source}chdir.c" -o "{Source}chdir.c.x" {Make-DocFile-PPCCOptions}
1174 # arch-tag: c9d9bc1a-142f-41da-b75e-79e0c44ffbb4