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 -alloca ¶
48 -typecheck relaxed -w off ¶
49 -includes unix -i {Includes},{Src} ¶
50 -d emacs=1 -d HAVE_CONFIG_H -d MAC_OS -d MAC_OS8
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" "{Src}macgui.h"
56 INTERVALS_H_GROUP = "{Src}intervals.h" "{Src}dispextern.h" "{Src}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.
71 "{Src}casefiddle.c.x" ¶
79 "{Src}composite.c.x" ¶
95 "{Src}getloadavg.c.x" ¶
99 "{Src}intervals.c.x" ¶
100 "{Src}keyboard.c.x" ¶
111 "{Src}region-cache.c.x" ¶
114 "{Src}strftime.c.x" ¶
119 "{Src}textprop.c.x" ¶
127 # The list of object files generated from new source files of the Macintosh port.
135 # The next two are the dependency rules for building Emacs.
137 Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects}
140 {EmacsObjects} {MacObjects} ¶
141 "{SharedLibraries}InterfaceLib" ¶
142 "{SharedLibraries}StdCLib" ¶
143 "{SharedLibraries}MathLib" ¶
144 "{SharedLibraries}AppleScriptLib" ¶
145 "{SharedLibraries}TextEncodingConverter" ¶
146 "{SharedLibraries}AppearanceLib" ¶
147 "{SharedLibraries}QuickTimeLib" ¶
148 "{PPCLibraries}StdCRuntime.o" ¶
149 "{PPCLibraries}PPCCRuntime.o" ¶
150 "{PPCLibraries}PPCToolLibs.o" ¶
153 Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
154 Rez -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}"
155 Rez -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}"
156 SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B
158 # Rez cannot handle files with Unix style end lines at all. So generate
159 # them. It does not hurt if Emacs.r and EmacsMPW.r already have Mac end
162 "{Source}"Emacs.maclf.r Ä "{Source}"Emacs.r
163 translate ¶0x0a ¶n < "{Source}"Emacs.r > "{Source}"Emacs.maclf.r
165 "{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r
166 translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r
168 # Here comes a long boring list of rules saying which files depend on which
169 # other ones. I generated them by hand using the "-p" option of the MrC compiler.
170 # Know about MakeMake, but this is probably more accurate.
184 {INTERVALS_H_GROUP} ¶
189 {BLOCKINPUT_H_GROUP} ¶
204 "{Includes}sys:time.h" ¶
205 {BLOCKINPUT_H_GROUP} ¶
207 "{Includes}sys:time.h"
211 "{Includes}sys:types.h" ¶
212 "{Includes}sys:stat.h" ¶
213 "{Includes}sys:param.h" ¶
215 {INTERVALS_H_GROUP} ¶
220 "{Src}region-cache.h" ¶
222 {BLOCKINPUT_H_GROUP} ¶
225 {Src}bytecode.c.x Ä ¶
240 {Src}callproc.c.x Ä ¶
242 "{Includes}sys:types.h" ¶
243 "{Includes}sys:file.h" ¶
244 "{Includes}sys:types.h" ¶
245 "{Includes}sys:stat.h" ¶
253 "{Includes}epaths.h" ¶
274 {Src}category.c.x Ä ¶
290 "{Includes}sys:types.h" ¶
324 {Src}composite.c.x Ä ¶
343 "{Includes}sys:types.h" ¶
344 "{Includes}sys:stat.h" ¶
346 "{Includes}sys:time.h" ¶
347 "{Includes}dirent.h" ¶
362 {DISPEXTERN_H_GROUP} ¶
370 {INTERVALS_H_GROUP} ¶
371 {BLOCKINPUT_H_GROUP} ¶
382 "{Includes}sys:types.h" ¶
383 "{Includes}sys:file.h" ¶
396 "{Includes}sys:types.h" ¶
399 {INTERVALS_H_GROUP} ¶
406 "{Includes}sys:time.h"
410 "{Includes}sys:types.h" ¶
411 "{Includes}sys:file.h" ¶
412 "{Includes}sys:types.h" ¶
413 "{Includes}sys:stat.h" ¶
416 {INTERVALS_H_GROUP} ¶
419 "{Includes}termio.h" ¶
420 {BLOCKINPUT_H_GROUP} ¶
430 {BLOCKINPUT_H_GROUP} ¶
437 "{Includes}sys:types.h" ¶
438 "{Includes}sys:stat.h" ¶
441 {INTERVALS_H_GROUP} ¶
448 "{Includes}sys:time.h" ¶
451 {Src}filemode.c.x Ä ¶
453 "{Includes}sys:types.h" ¶
454 "{Includes}sys:stat.h"
456 {Src}floatfns.c.x Ä ¶
468 {INTERVALS_H_GROUP} ¶
479 {DISPEXTERN_H_GROUP} ¶
494 {BLOCKINPUT_H_GROUP} ¶
495 {DISPEXTERN_H_GROUP} ¶
509 {Src}getloadavg.c.x Ä ¶
511 "{Includes}sys:types.h"
518 {DISPEXTERN_H_GROUP} ¶
519 {BLOCKINPUT_H_GROUP} ¶
520 "{Includes}epaths.h" ¶
524 "{Includes}sys:stat.h" ¶
525 "{Includes}alloca.h" ¶
526 "{Includes}sys:param.h"
540 {INTERVALS_H_GROUP} ¶
541 "{Src}region-cache.h"
546 {INTERVALS_H_GROUP} ¶
550 {BLOCKINPUT_H_GROUP} ¶
551 "{Src}region-cache.h"
553 {Src}intervals.c.x Ä ¶
556 {INTERVALS_H_GROUP} ¶
561 {Src}keyboard.c.x Ä ¶
573 {DISPEXTERN_H_GROUP} ¶
576 {INTERVALS_H_GROUP} ¶
577 {BLOCKINPUT_H_GROUP} ¶
581 "{Includes}sys:ioctl.h" ¶
584 "{Includes}termio.h" ¶
585 "{Includes}sys:types.h" ¶
599 {BLOCKINPUT_H_GROUP} ¶
603 {Src}lastfile.c.x Ä ¶
608 "{Includes}sys:types.h" ¶
609 "{Includes}sys:stat.h" ¶
610 "{Includes}sys:file.h" ¶
612 {INTERVALS_H_GROUP} ¶
615 "{Includes}epaths.h" ¶
641 {DISPEXTERN_H_GROUP} ¶
649 "{Includes}sys:types.h"
659 {DISPEXTERN_H_GROUP} ¶
666 "{Includes}sys:types.h" ¶
669 "{Includes}sys:time.h" ¶
678 "{Includes}sys:types.h" ¶
686 {Src}region-cache.c.x Ä ¶
690 "{Src}region-cache.h"
696 {DISPEXTERN_H_GROUP} ¶
707 "{Src}region-cache.h" ¶
709 {BLOCKINPUT_H_GROUP} ¶
710 {INTERVALS_H_GROUP} ¶
711 "{Includes}sys:types.h" ¶
714 {Src}strftime.c.x Ä ¶
716 "{Includes}sys:types.h" ¶
717 "{Includes}sys:time.h"
726 {INTERVALS_H_GROUP} ¶
732 {BLOCKINPUT_H_GROUP} ¶
733 "{Includes}sys:types.h" ¶
734 "{Includes}sys:stat.h" ¶
735 "{Includes}sys:ioctl.h" ¶
737 "{Includes}sys:types.h" ¶
743 {DISPEXTERN_H_GROUP} ¶
747 "{Includes}utime.h" ¶
749 "{Includes}dirent.h" ¶
750 "{Includes}sys:types.h"
764 {DISPEXTERN_H_GROUP} ¶
774 "{Includes}sys:file.h"
776 {Src}textproc.c.x Ä ¶
779 {INTERVALS_H_GROUP} ¶
804 {DISPEXTERN_H_GROUP} ¶
805 {BLOCKINPUT_H_GROUP} ¶
806 {INTERVALS_H_GROUP} ¶
817 {DISPEXTERN_H_GROUP} ¶
823 {BLOCKINPUT_H_GROUP} ¶
826 {INTERVALS_H_GROUP} ¶
832 "{Src}region-cache.h" ¶
840 "{Includes}sys:types.h" ¶
841 "{Includes}sys:stat.h" ¶
850 {DISPEXTERN_H_GROUP} ¶
851 {BLOCKINPUT_H_GROUP} ¶
853 {INTERVALS_H_GROUP} ¶
863 {BLOCKINPUT_H_GROUP} ¶
865 "{Includes}sys:types.h" ¶
870 "{Includes}utime.h" ¶
871 "{Includes}dirent.h" ¶
872 "{Includes}sys:types.h" ¶
873 "{Includes}sys:stat.h" ¶
875 "{Includes}sys:types.h" ¶
876 "{Includes}sys:param.h" ¶
881 "{Includes}sys:time.h" ¶
882 "{Includes}utsname.h"
894 {DISPEXTERN_H_GROUP} ¶
896 {INTERVALS_H_GROUP} ¶
898 {BLOCKINPUT_H_GROUP} ¶
899 "{Includes}epaths.h" ¶
904 "{Src}bitmaps:gray.xbm"
909 {BLOCKINPUT_H_GROUP} ¶
914 "{Includes}alloca.h" ¶
915 "{Includes}sys:types.h" ¶
917 "{Includes}termio.h" ¶
919 "{Includes}sys:stat.h" ¶
923 {DISPEXTERN_H_GROUP} ¶
933 {INTERVALS_H_GROUP} ¶
938 "{Includes}epaths.h" ¶
944 #----------------------------------------#
945 # Variables and rules for target "Clean" #
946 #----------------------------------------#
949 Delete -i {EmacsObjects} {MacObjects}
950 Delete -i "{EmacsTarget}"
951 Delete -i stdout stderr
952 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile
953 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
956 Delete -i "Emacs CW"Å
957 Delete -y "emacs Data"
960 #--------------------------------------#
961 # Variables and rules for target "Doc" #
962 #--------------------------------------#
972 "{Src}casefiddle.c" ¶
996 "{Src}getloadavg.c" ¶
1000 "{Src}intervals.c" ¶
1012 "{Src}region-cache.c" ¶
1035 {Lisp}menu-bar.elc ¶
1038 {Lisp}scroll-bar.elc ¶
1040 {Lisp}vms-patch.elc ¶
1045 {Lisp}disp-table.elc ¶
1046 {Lisp}dos-vars.elc ¶
1047 {Lisp}international:ccl.elc ¶
1048 {Lisp}international:codepage.elc ¶
1050 {Lisp}buff-menu.elc ¶
1051 {Lisp}emacs-lisp:byte-run.elc ¶
1052 {Lisp}cus-start.el ¶
1054 {Lisp}emacs-lisp:lisp-mode.elc ¶
1055 {Lisp}emacs-lisp:lisp.elc ¶
1056 {Lisp}facemenu.elc ¶
1059 {Lisp}emacs-lisp:float-sup.elc ¶
1067 {Lisp}bindings.elc ¶
1068 {Lisp}emacs-lisp:map-ynp.elc ¶
1069 {Lisp}international:mule.elc ¶
1070 {Lisp}international:mule-conf.el ¶
1071 {Lisp}international:mule-cmds.elc ¶
1072 {Lisp}international:characters.elc ¶
1073 {Lisp}case-table.elc ¶
1074 {Lisp}language:chinese.elc ¶
1075 {Lisp}language:cyrillic.elc ¶
1076 {Lisp}language:indian.elc ¶
1077 {Lisp}language:ethiopic.elc ¶
1078 {Lisp}language:european.elc ¶
1079 {Lisp}language:tibetan.elc ¶
1080 {Lisp}language:vietnamese.elc ¶
1082 {Lisp}register.elc ¶
1087 {Lisp}term:tty-colors.elc ¶
1088 {Lisp}textmodes:fill.elc ¶
1089 {Lisp}textmodes:page.elc ¶
1090 {Lisp}textmodes:paragraphs.elc ¶
1091 {Lisp}textmodes:text-mode.elc ¶
1092 {Lisp}vc-hooks.elc ¶
1093 {Lisp}ediff-hook.elc ¶
1098 LispSourceDontCompile = ¶
1099 {Lisp}language:devanagari.el ¶
1100 {Lisp}language:english.el ¶
1101 {Lisp}language:czech.el ¶
1102 {Lisp}language:slovak.el ¶
1103 {Lisp}language:romanian.el ¶
1104 {Lisp}language:greek.el ¶
1105 {Lisp}language:hebrew.el ¶
1106 {Lisp}language:japanese.el ¶
1107 {Lisp}language:korean.el ¶
1108 {Lisp}language:lao.el ¶
1109 {Lisp}language:thai.el ¶
1110 {Lisp}language:misc-lang.el
1112 Doc Ä {DocTarget}DOC
1114 {DocTarget}DOC Ä {Makefile} {EmacsSource} {MacSource} {LispSource} {LispSourceDontCompile} {Make-DocFileDir}Make-DocFile
1115 {Make-DocFileDir}make-docfile {EmacsSource} > {DocTarget}DOC
1116 {Make-DocFileDir}make-docfile {MacSource} >> {DocTarget}DOC
1117 {Make-DocFileDir}make-docfile {LispSource} >> {DocTarget}DOC
1118 {Make-DocFileDir}make-docfile {LispSourceDontCompile} >> {DocTarget}DOC
1121 #-----------------------------------------------#
1122 # Variables and rules for target "Make-DocFile" #
1123 #-----------------------------------------------#
1125 Make-DocFile-Includes = -i :inc:
1128 Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶
1129 {Make-DocFile-Includes} {Make-DocFile-Sym}
1131 Make-DocFile-Objects = ¶
1132 "{Lib-Src}make-docfile.c.x" ¶
1135 Make-DocFile Ä {Make-DocFileDir}Make-DocFile
1137 {Make-DocFileDir}Make-DocFile Ä {Makefile} {Make-DocFile-Objects}
1139 -o {Make-DocFileDir}Make-DocFile ¶
1140 {Make-DocFile-Sym} ¶
1141 {Make-DocFile-Objects} ¶
1144 "{SharedLibraries}InterfaceLib" ¶
1145 "{SharedLibraries}StdCLib" ¶
1146 "{SharedLibraries}MathLib" ¶
1147 "{PPCLibraries}StdCRuntime.o" ¶
1148 "{PPCLibraries}PPCCRuntime.o" ¶
1149 "{PPCLibraries}PPCToolLibs.o"
1151 "{Lib-Src}make-docfile.c.x" Ä {Makefile} "{Lib-Src}make-docfile.c"
1152 {PPCC} "{Lib-Src}make-docfile.c" -o "{Lib-Src}make-docfile.c.x" {Make-DocFile-PPCCOptions}
1154 "{Source}chdir.c.x" Ä {Makefile} "{Source}chdir.c"
1155 {PPCC} "{Source}chdir.c" -o "{Source}chdir.c.x" {Make-DocFile-PPCCOptions}
1157 # arch-tag: c9d9bc1a-142f-41da-b75e-79e0c44ffbb4