home *** CD-ROM | disk | FTP | other *** search
- #
- # lmkfile for mg3 and beyond, for use with Lattice v5.02 and beyond.
- #
- .SILENT
-
- # Names of the directories where we find sources
- MG = /mg
- AMIGA = /amiga
-
- #
- # set things up so we get .o files built correctly
- #
- INCS = -i$(AMIGA) -i/h
- LCFLAGS = -caufs -d0 -ma -qram: -rr -O $(INCS)
-
- .c.o:
- lc $(LCFLAGS) -o$@ $*
-
- # list of amiga-specific source files
- AMIGASRC1 = /amiga/ttymouse.c /amiga/ttymenu.c /amiga/menustack.c \
- /amiga/iconify.c /amiga/ttyicon.c /amiga/spawn.c /amiga/offset.c
-
-
- AMIGASRC2 =/amiga/ttyio.c /amiga/tty.c /amiga/ttykbd.c /amiga/fileio.c \
- /amiga/console.c /amiga/dirio.c /amiga/rexx.c
-
- # list of mg system-independent source files
- MGSRC1 = /mg/macro.c /mg/regex.c /mg/re_search.c /mg/dired.c /mg/basic.c \
- /mg/dir.c /mg/file.c /mg/line.c /mg/match.c /mg/paragraph.c \
- /mg/random.c /mg/region.c /mg/search.c /mg/version.c /mg/window.c
-
- MGSRC2 = /mg/word.c /mg/buffer.c /mg/display.c /mg/echo.c /mg/extend.c \
- /mg/help.c /mg/kbd.c /mg/keymap.c /mg/main.c /mg/modes.c /mg/cinfo.c \
- /mg/bind.c /mg/alloca.c
-
- # list of amiga-specific object files
- AMIGAOBJ = ttymouse.o ttymenu.o menustack.o iconify.o ttyicon.o spawn.o \
- ttyio.o tty.o ttykbd.o fileio.o console.o dirio.o offset.o rexx.o
-
- # list of mg objects
- MGOBJ1 = macro.o regex.o re_search.o dired.o basic.o dir.o file.o line.o \
- match.o paragraph.o random.o region.o search.o version.o window.o
- MGOBJ2 = word.o buffer.o display.o echo.o extend.o help.o kbd.o keymap.o \
- main.o modes.o bind.o cinfo.o alloca.o
-
- OBJ = $(MGOBJ1) $(MGOBJ2) $(AMIGAOBJ)
-
- #
- # The editor
- #
- xmg: $(OBJ) tmp.lnk
- blink with tmp.lnk
-
- tmp.lnk:
- echo "From lib:cres.o $(AMIGAOBJ) " noline > tmp.lnk1
- echo "$(MGOBJ1) " noline > tmp.lnk2
- echo "$(MGOBJ2) $(REXXOBJ) " noline > tmp.lnk3
- echo "to xmg lib lib:lcr.lib lib:amiga.lib map nil:" > tmp.lnk4
- echo "SMALLCODE SMALLDATA NODEBUG" > tmp.lnk5
- echo "DEFINE @_main=@_tinymain" > tmp.lnk6
- join tmp.lnk1 tmp.lnk2 tmp.lnk3 tmp.lnk4 tmp.lnk5 tmp.lnk6 as tmp.lnk
- rm tmp.lnk?
-
- clean:
- -rm $(AMIGAOBJ)
- -rm $(MGOBJ1)
- -rm $(MGOBJ2)
- -rm xmg tmp.lnk rexxobj.make
-
- #
- # build the dependency list for the .h files used by all sources. We do
- # this in multiple passes so to avoid problems with the long command line
- # generate when you slap all the sources together.
- # Note that there are faster, but more environment-dependent, ways to do
- # turn the output of the makemake's into an lmkfile. We avoid those
- # on purpose.
- #
- depend: rexxobj.make
- @echo "Making dependencies. The following include files will be missing:"
- @echo "config.h lisp.h syntax.h"
- @makemake >ram:mg-amg1 $(INCS) $(AMIGASRC1)
- -@grep "Couldn't open" ram:mg-amg1
- @makemake >ram:mg-amg2 $(INCS) $(AMIGASRC2)
- -@grep "Couldn't open" ram:mg-amg2
- @makemake >ram:mg-mg1 $(INCS) $(MGSRC1)
- -@grep "Couldn't open" ram:mg-mg1
- @makemake >ram:mg-mg2 $(INCS) $(MGSRC2)
- -@grep "Couldn't open" ram:mg-mg2
- -@grep >ram:mgx-amg1 -v "Couldn't open" ram:mg-amg1
- -@grep >ram:mgx-amg2 -v "Couldn't open" ram:mg-amg2
- -@grep >ram:mgx-mg1 -v "Couldn't open" ram:mg-mg1
- -@grep >ram:mgx-mg2 -v "Couldn't open" ram:mg-mg2
- @delete ram:mg-mg1 ram:mg-mg2 ram:mg-amg1 ram:mg-amg2
- @join rexxobj.make /amiga/lmkfile \
- ram:mgx-mg1 ram:mgx-mg2 ram:mgx-amg1 ram:mgx-amg2 \
- as lmkfile
- @delete ram:mgx-mg1 ram:mgx-mg2 ram:mgx-amg1 ram:mgx-amg2
-
- # This turns the otherwise unused rexxobj.h into a define as to where the
- # rexx object files live.
- rexxobj.make: rexx.h
- @echo "Creating rexxobj.make"
- @echo >ram:editcoms "M1;E/\#define REXX/REXXOBJ =/; Q"
- -@edit from rexx.h to rexxobj.make with ram:editcoms
- @delete ram:editcoms
-
- # file dependencies will be appended after this line by "make depend"
-