home *** CD-ROM | disk | FTP | other *** search
- #
- # Makefile for Amiga MG 2x, using Lattice small model.
- #
- # This Makefile uses the PD Make to be found on fish disk #69, expecting to
- # run lc and blink from Lattice version 4. The directory that holds this
- # makefile and the system-independent files should be named "mg", unless
- # TOP is changed to match.
- #
- # This Makefile should be executed in the main Emacs directory.
- #
- # System-dependent conditional compilation possibilities:
- #
- # V11 -- must be defined for the editor to either run on
- # or compile on a version 1.1 AmigaDOS system.
- # It mainly wards against bugs in the 1.1 ROM
- # Kernel.
- #
- # NO_STARTUP -- if defined, code for using a startup file
- # is not included.
- #
- # MENU -- if defined, Intuition menu selection is
- # enabled. If you #define this, the XOBJ macro
- # must contain $(MENUOBJ).
- #
- # BROWSER -- BROWSER uses the Amiga menu to present a MENU of
- # files. Selecting a directory entry (ends with a /)
- # makes the contents if that directory the next menu
- # (deleting any menus that used to follow it);
- # selecting a plain file does a "find-file" on that
- # file name. Really has to be seen to be understood.
- # XOBJ must contain $(MENUOBJ) for this to link.
- #
- # MOUSE -- if defined, the Amiga mouse is active.
- # If you #define this, XOBJ must contain $(MOUSEOBJ)
- #
- # FKEYS -- if defined, the editor understands the Amiga
- # function keys.
- #
- # NO_BACKUP -- Disable the creation of backup files. If this
- # option is defined, the function make-backup-files
- # sets a flag that causes save-buffers (C-x C-s)
- # to rename the original file to file~ before
- # writing the file. Nice if the space is available.
- # By default, backup files are not made. Calling
- # make-backup-files with no argument enables this
- # feature; calling it with an argument disables it.
- #
- # DO_METAKEY -- if defined, characters with high bit set (i.e.
- # most ALT-ed characters in the usa0 keymap)
- # are translated into internal META keys
- #
- # DO_ICONIFY -- if defined, provide a function to iconify the Emacs
- # window into a gadget that can be double-clicked to
- # return to the normal display.
- #
- # CHANGE_COLOR -- if defined, adds commands to manipulate
- # the rendition of the mode line and the
- # foreground and background color of the
- # text window and mode line. The names match
- # the regular expression
- # set-{text,mode}-{foreground,background}
- # CHANGE_FONT -- if defined, adds "set-font", which prompts
- # for a font name and size, then tries to reopen
- # the Emacs window using the new font.
- # USE_ARP -- Use the ARP (AmigaDOS Replacement Library) for
- # some functions. This makes the executable
- # slightly smaller, but gives no new functionality
- # in the current version. It will probably be
- # required for some future version.
- # USE_ARP has not be tested with the LATTICE version
- #
- #
- # MODE_RENDITION -- the these values indicate the way to render
- # TEXT_RENDITION characters in the text area and mode line.
- # TEXT_RENDITION is mainly there for completeness.
- # Possible values are:
- # 0 -- plain text
- # 1 -- boldface
- # 3 -- italic
- # 4 -- underscore
- # 7 -- reverse-video (default if not defined)
- #
- # TEXT_FG -- specifies which system color (0-7) to use
- # TEXT_BG when drawing the text and mode line. If they
- # MODE_FG aren't between 0 and 7, or if a combination
- # MODE_BG comes out badly, it's *YOUR* fault. If
- # CHANGE_COLOR is defined, you get to change these
- # values on the fly. Naturally, making both
- # FG and BG the same results in an unusable display...
- #
- ############################################################################
- S = sys/amiga
- TOP = mg
- LIBS = lib:lc.lib lib:amiga.lib
-
- #
- # PREFS contains the defines used to select compile-time options.
- # XOBJ is used to denote any extra object files needed for these
- # options. MENUOBJ and MOUSEOBJ denote the extra object files
- # needed for the menu, mouse and Browser. ARPOBJ is the extra
- # object file needed to use arp.library. REGEX is the binaries for the regular
- # expression code (requires -dREGEX). REGEX has not been tested under
- # Lattice 4.0
-
- MOUSEOBJ = ttymouse.o
- MENUOBJ = ttymenu.o menustack.o
- ICONIFYOBJ = iconify.o ttyicon.o
-
- #
- # the following turn into files with no source in them if you compile with
- # the appropriate option turned off. Lattice incorrectly flags this as an error
- # instead of a warning. To get around this, you have to add the appropriate
- # #?OBJ macro to the XOBJ line for your configuration if you want it.
- # Ugly, but it works. There are probably other such things that I've missed.
- # The fix is to add a name here, put that on your xobj line, and delete it from
- # whichever of OBJ OOBJ or IND that the #?.o files lives in now.
- #
-
- MACROOBJ = macro.o
- REGEXOBJ = regex.o re_search.o
- DIREDOBJ = dired.o
-
- # The big burrito, with the Browser *and* the editing MENU. Tough
- # on space, but boy is it neat...
- #PREFS = -dSTARTUP -dDO_METAKEY -dDO_ICONIFY -dCHANGE_FONT -dBACKUP -dFKEYS \
- # -dMOUSE -dMENU -dBROWSER -dCHANGE_COLOR -dBINDKEY -dBSMAP=0
- #XOBJ = $(MOUSEOBJ) $(MENUOBJ) $(ICONIFYOBJ) $(MACROOBJ) $(DIREDOBJ)
-
- # Burrito style, with just the Browser...
- #PREFS = -dSTARTUP -dBROWSER -dMOUSE -dCHANGE_COLOR -dFKEYS -dDO_ICONIFY \
- # -dDO_METAKEY -dBACKUP
- #XOBJ = $(MOUSEOBJ) $(MENUOBJ) $(ICONIFYOBJ) $(MACROOBJ) $(DIREDOBJ)
-
- # Burrito style, with just the menu... # untested for mg2
- #PREFS = -dSTARTUP -dMENU -dMOUSE -dCHANGE_COLOR -dFKEYS -dDO_ICONIFY \
- # -dDO_METAKEY -dBACKUP -dBSMAP=0
- #XOBJ = $(MOUSEOBJ) $(MENUOBJ) $(ICONIFYOBJ) $(MACROOBJ) $(DIREDOBJ)
-
-
- # Mike's favorite version
- PREFS = -dMOUSE -dBROWSER -dMODE_RENDITION=0 -dMODE_FG=2 -dDO_METAKEY \
- -dGOSREC -dGOSMACS -dDO_ICONIFY -dNO_STARTUP -dNO_DIRED -dBSMAP=1
- XOBJ = $(MOUSEOBJ) $(MENUOBJ) $(ICONIFYOBJ) $(MACROOBJ)
-
- # Mic's favorite version # untested for mg2
- #PREFS = -dSTARTUP -dBROWSER -dMENU -dMOUSE -dCHANGE_FONT -dFKEYS
- # -dDO_METAKEY -dDO_ICONIFY -dBACKUP -dPREFIXREGION
- #XOBJ = $(MOUSEOBJ) $(MENUOBJ) $(ICONIFYOBJ) $(MACROOBJ) $(DIREDOBJ)
-
- # Steve's favorite version # untested for mg2
- #PREFS = -dSTARTUP -dMOUSE -dCHANGE_FONT -dFKEYS -dDO_METAKEY \
- # -dBACKUP -dPREFIXREGION -dUSE_ARP
- #XOBJ = $(MOUSEOBJ) $(MACROOBJ) $(DIREDOBJ)
-
- # Absolutely bare-bones, default editor
- #PREFS = -dDO_METAKEY
- #XOBJ =
-
- CC = lc
- AS = asm
- CFLAGS = -i$(S)/ -isys/default/ $(PREFS) -dAMIGA -dLATTICE -b -qram:
-
- # Objects which only depend on the "standard" includes
- OBJS = basic.o dir.o file.o line.o match.o paragraph.o \
- random.o region.o search.o version.o window.o word.o
-
- # Those with unique requirements
- IND = buffer.o display.o echo.o extend.o help.o kbd.o keymap.o \
- main.o modes.o
-
- # System dependent objects
- OOBJS = cinfo.o spawn.o ttyio.o tty.o ttykbd.o fileio.o sleep.o \
- sysinit.o console.o dirio.o offset.o
-
- OBJ = $(OBJS) $(IND) $(OOBJS) $(XOBJ)
-
- OSRCS = cinfo.c fileio.c spawn.c ttyio.c tty.c ttykbd.c fileio.c sleep.c \
- sysinit.c console.c dirio.c amiga_maps.c offset.c
- SRCS = basic.c dir.c dired.c file.c line.c match.c paragraph.c \
- random.c region.c search.c version.c window.c word.c \
- buffer.c display.c echo.c extend.c help.c kbd.c keymap.c \
- macro.c main.c modes.c regex.c re_search.c
-
- OINCS = $(S)/ttydef.h $(S)/sysdef.h sys/default/chrdef.h
- INCS = def.h
-
-
- #
- # The editor
- # Building in Ram: saves a LOT of time in pass 2 of the linker.
- #
- mg: $(OBJ)
- blink lib:c.o $(OBJ) lib $(LIBS) to mg map nil: \
- SMALLCODE SMALLDATA NODEBUG
-
- # From the Manx version forget it for now.
- #
- # lint:
- # lint +vm -ilint: -e7?? $(CFLAGS) std.lnt mg
- #
-
- $(OBJ): $(INCS) $(OINCS)
-
- dir.o search.o: $(INCS) $(OINCS)
-
- regex.o re_search.o: $(INCS) $(OINCS) regex.h
-
- kbd.o: $(INCS) $(OINCS) macro.h kbd.h key.h
-
- macro.o main.o: $(INCS) $(OINCS) macro.h
-
- buffer.o display.o keymap.o help.o modes.o dired.o fileio.o: \
- $(INCS) $(OINCS) kbd.h
-
- extend.o: $(INCS) $(OINCS) kbd.h macro.h key.h
-
- help.o: $(INCS) $(OINCS) kbd.h key.h macro.h
-
- echo.o: $(INCS) $(OINCS) key.h macro.h
-
- $(OOBJS): $(INCS) $(OINCS)
-
- clean:
- Delete $(OBJ)
-
-
- fileio.o: $(S)/fileio.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/fileio.c
-
- spawn.o: $(S)/spawn.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/spawn.c
-
- sleep.o: $(S)/sleep.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/sleep.c
-
- sysinit.o: $(S)/sysinit.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/sysinit.c
-
- offset.o: $(S)/offset.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/offset.c
-
- iconify.o: $(S)/iconify/iconify.c $(S)/iconify/iconify.h
- $(CC) $(CFLAGS) -o/$(TOP)/ -i$(S)/iconify/ $(S)/iconify/iconify.c
-
- tty.o: $(S)/tty.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/tty.c
-
- ttyicon.o: $(S)/ttyicon.c
- $(CC) $(CFLAGS) -o/$(TOP)/ -i$(S)/iconify/ $(S)/ttyicon.c
-
- ttyio.o: $(S)/ttyio.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/ttyio.c
-
- ttykbd.o: $(S)/ttykbd.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/ttykbd.c
-
- ttymenu.o: $(S)/ttymenu.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/ttymenu.c
-
- ttymouse.o: $(S)/ttymouse.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/ttymouse.c
-
- menustack.o: $(S)/menustack.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/menustack.c
-
- console.o: $(S)/console.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/console.c
-
- dirio.o: $(S)/dirio.c
- $(CC) $(CFLAGS) -o/$(TOP)/ $(S)/dirio.c
-
- arpbind.o: $(S)/arpbind.asm $(S)/arpbase.i
- $(AS) -o arpbind.o -i$(S)/ -isys2:asm/ $(S)/arpbind.asm
-
- alloca.o: $(S)/alloca.asm
- $(AS) -o alloca.o $(S)/alloca.asm
-
- keymap.o: keymap.c $(S)/amiga_maps.c
- $(CC) $(CFLAGS) -o/$(TOP)/ keymap.c
-
- cinfo.o: sys/default/cinfo.c
- $(CC) $(CFLAGS) -o/$(TOP)/ sys/default/cinfo.c
-