#	LINUX makefile for
#		MicroEMACS 5.03
#		(C)Copyright 1993 by Daniel Lawrence
#		all rights reserved

# modify the following lines with the proper relative directories

#SDIR = src
#ODIR = obj
#HDIR = h
#BDIR = bin
#LDIR = lib
SDIR = .
ODIR = .
HDIR = .
BDIR = .
LDIR = lib

INSD = /usr/lib/microemacs
BIND = /usr/local/bin
MV   = /bin/mv

# options and arguments to the C compiler
CC = gcc

CFLAGS =	-I$(SDIR) -I$(HDIR) 

# list of header files

HFILES = $(HDIR)/estruct.h $(HDIR)/edef.h $(HDIR)/efunc.h $(HDIR)/epath.h $(HDIR)/ebind.h $(HDIR)/eproto.h $(HDIR)/elang.h

#list of object files

F1 = $(ODIR)/basic.o $(ODIR)/bind.o $(ODIR)/buffer.o
F2 = $(ODIR)/char.o $(ODIR)/crypt.o $(ODIR)/display.o $(ODIR)/dolock.o
F3 = $(ODIR)/eval.o $(ODIR)/exec.o $(ODIR)/file.o
F4 = $(ODIR)/fileio.o $(ODIR)/unix.o $(ODIR)/input.o
F5 = $(ODIR)/isearch.o $(ODIR)/line.o $(ODIR)/lock.o
F6 = $(ODIR)/main.o $(ODIR)/mouse.o $(ODIR)/screen.o
F7 = $(ODIR)/random.o $(ODIR)/region.o $(ODIR)/search.o $(ODIR)/replace.o
F8 = $(ODIR)/tags.o $(ODIR)/window.o $(ODIR)/word.o

# product list

exe:	buildemacs

all:	buildemacs install

OFILES =	$(F1) $(F2) $(F3) $(F4) $(F5) $(F6) $(F7) $(F8)

buildemacs:	$(OFILES)
		$(CC) $(CFLAGS) $(OFILES) -lncurses -lc -o $(BDIR)/microemacs
		strip $(BDIR)/microemacs
$(ODIR)/basic.o: $(SDIR)/basic.c $(HFILES)
	$(CC) $(CFLAGS) -c -o basic.o $(SDIR)/basic.c
#	$(MV) basic.o $(ODIR)
$(ODIR)/bind.o: $(SDIR)/bind.c $(HFILES)
	$(CC) $(CFLAGS) -c -o bind.o $(SDIR)/bind.c
#	$(MV) bind.o $(ODIR)
$(ODIR)/buffer.o: $(SDIR)/buffer.c $(HFILES)
	$(CC) $(CFLAGS) -c -o buffer.o $(SDIR)/buffer.c
#	$(MV) buffer.o $(ODIR)
$(ODIR)/char.o: $(SDIR)/char.c $(HFILES)
	$(CC) $(CFLAGS) -c -o char.o $(SDIR)/char.c
#	$(MV) char.o $(ODIR)
$(ODIR)/crypt.o: $(SDIR)/crypt.c $(HFILES)
	$(CC) $(CFLAGS) -c -o crypt.o $(SDIR)/crypt.c
#	$(MV) crypt.o $(ODIR)
$(ODIR)/cmdfix.o: $(SDIR)/cmdfix.c $(HFILES)
	$(CC) $(CFLAGS) -c -o cmdfix.o $(SDIR)/cmdfix.c
#	$(MV) cmdfix.o $(ODIR)
$(ODIR)/dolock.o: $(SDIR)/dolock.c $(HFILES)
	$(CC) $(CFLAGS) -c -o dolock.o $(SDIR)/dolock.c
#	$(MV) dolock.o $(ODIR)
$(ODIR)/eval.o: $(SDIR)/eval.c $(HFILES) $(HDIR)/evar.h
	$(CC) $(CFLAGS) -c -o eval.o $(SDIR)/eval.c
#	$(MV) eval.o $(ODIR)
$(ODIR)/exec.o: $(SDIR)/exec.c $(HFILES)
	$(CC) $(CFLAGS) -c -o exec.o $(SDIR)/exec.c
#	$(MV) exec.o $(ODIR)
$(ODIR)/file.o: $(SDIR)/file.c $(HFILES)
	$(CC) $(CFLAGS) -c -o file.o $(SDIR)/file.c
#	$(MV) file.o $(ODIR)
$(ODIR)/fileio.o: $(SDIR)/fileio.c $(HFILES)
	$(CC) $(CFLAGS) -c -o fileio.o $(SDIR)/fileio.c
#	$(MV) fileio.o $(ODIR)
$(ODIR)/input.o: $(SDIR)/input.c $(HFILES)
	$(CC) $(CFLAGS) -c -o input.o $(SDIR)/input.c
#	$(MV) input.o $(ODIR)
$(ODIR)/isearch.o: $(SDIR)/isearch.c $(HFILES)
	$(CC) $(CFLAGS) -c -o isearch.o $(SDIR)/isearch.c
#	$(MV) isearch.o $(ODIR)
$(ODIR)/line.o: $(SDIR)/line.c $(HFILES)
	$(CC) $(CFLAGS) -c -o line.o $(SDIR)/line.c
#	$(MV) line.o $(ODIR)
$(ODIR)/lock.o: $(SDIR)/lock.c $(HFILES)
	$(CC) $(CFLAGS) -c -o lock.o $(SDIR)/lock.c
#	$(MV) lock.o $(ODIR)
$(ODIR)/main.o: $(SDIR)/main.c $(HFILES)
	$(CC) $(CFLAGS) -c -o main.o $(SDIR)/main.c
#	$(MV) main.o $(ODIR)
$(ODIR)/mouse.o: $(SDIR)/mouse.c $(HFILES)
	$(CC) $(CFLAGS) -c -o mouse.o $(SDIR)/mouse.c
#	$(MV) mouse.o $(ODIR)
$(ODIR)/unix.o: $(SDIR)/unix.c $(HFILES)
	$(CC) $(CFLAGS) -c -o unix.o $(SDIR)/unix.c
#	$(MV) unix.o $(ODIR)
$(ODIR)/random.o: $(SDIR)/random.c $(HFILES)
	$(CC) $(CFLAGS) -c -o random.o $(SDIR)/random.c
#	$(MV) random.o $(ODIR)
$(ODIR)/region.o: $(SDIR)/region.c $(HFILES)
	$(CC) $(CFLAGS) -c -o region.o $(SDIR)/region.c
#	$(MV) region.o $(ODIR)
$(ODIR)/screen.o: $(SDIR)/screen.c $(HFILES)
	$(CC) $(CFLAGS) -c -o screen.o $(SDIR)/screen.c
#	$(MV) screen.o $(ODIR)
$(ODIR)/search.o: $(SDIR)/search.c $(HFILES)
	$(CC) $(CFLAGS) -c -o search.o $(SDIR)/search.c
#	$(MV) search.o $(ODIR)
$(ODIR)/replace.o: $(SDIR)/replace.c $(HFILES)
	$(CC) $(CFLAGS) -c -o replace.o $(SDIR)/replace.c
#	$(MV) replace.o $(ODIR)
$(ODIR)/tags.o: $(SDIR)/tags.c $(HFILES)
	$(CC) $(CFLAGS) -c -o tags.o $(SDIR)/tags.c
#	$(MV) tags.o $(ODIR)
$(ODIR)/window.o: $(SDIR)/window.c $(HFILES)
	$(CC) $(CFLAGS) -c -o window.o $(SDIR)/window.c
#	$(MV) window.o $(ODIR)
$(ODIR)/word.o: $(SDIR)/word.c $(HFILES)
	$(CC) $(CFLAGS) -c -o word.o $(SDIR)/word.c
#	$(MV) word.o $(ODIR)
$(ODIR)/display.o: $(SDIR)/display.c $(HFILES)
	$(CC) $(CFLAGS) -c -o display.o $(SDIR)/display.c
#	$(MV) display.o $(ODIR)

install:
	cp -f microemacs $(BIND)
	mkdir -p $(INSD)
	cp -f $(LDIR)/emacs.rc $(INSD)/emacs.rc
	cp -f $(LDIR)/emacs.hlp $(INSD)/emacs.hlp

clean:	
	rm -f *~ */*~ $(ODIR)/*.o ; rm -f $(BDIR)/microemacs

