.SUFFIXES: .c.o.s
.c.o:
	$(CC) $(CFLAGS) -c $<

lispdir = ../lisp/
etcdir = ../etc/
shortnamesdir = ../shortnames/
cppdir = ../cpp/
oldXMenudir = ../oldXMenu/
   
WNNLIB =  
WNNINC =  
STARTFILES = crt0.o 
CC=gcc
MYCPPFLAG = -DJ3100 -DPC9801 -DIBMPC
LD=ld
LDFLAGS = -e __start
CFLAGS= -O -Demacs $(MYCPPFLAG)
KANJI_H = kanji.h
NOBJ = kanji.o

obj =	dispnew.o scroll.o xdisp.o window.o term.o cm.o $(XOBJ) \
	emacs.o keyboard.o macros.o keymap.o sysdep.o \
 	buffer.o filelock.o insdel.o marker.o \
	minibuf.o fileio.o dired.o filemode.o \
	cmds.o casefiddle.o indent.o search.o regex.o undo.o \
	alloc.o data.o doc.o editfns.o callint.o \
 	eval.o fns.o print.o lread.o \
 	abbrev.o syntax.o unexec.o  mocklisp.o bytecode.o \
	process.o callproc.o $(environobj) \
	$(NOBJ) doprnt.o 

termcapobj = termcap.o tparam.o
mallocobj = malloc.o
dosobj = pwd.o ndir.o dosfns.o
otherobj= $(termcapobj) lastfile.o $(mallocobj) $(WNNLIB) $(dosobj)

lisp=	$(lispdir)simple.elc \
	$(lispdir)help.elc \
 	$(lispdir)files.elc $(lispdir)window.elc \
	$(lispdir)indent.elc $(lispdir)loaddefs.el $(lispdir)paths.el \
	$(lispdir)startup.elc $(lispdir)lisp.elc \
	$(lispdir)page.elc $(lispdir)register.elc \
	$(lispdir)paragraphs.elc $(lispdir)lisp-mode.elc \
	$(lispdir)text-mode.elc $(lispdir)fill.elc \
	$(lispdir)c-mode.elc $(lispdir)isearch.elc \
	$(lispdir)replace.elc $(lispdir)abbrev.elc \
	$(lispdir)kanji.elc $(lispdir)buff-menu.elc $(lispdir)subr.elc

LIBASSIST = libassist.a
LIBES =     $(LIBASSIST)  $(LIBX) -lc 

all: xemacs  

xemacs: temacs $(lisp)
	go32 temacs -batch -l inc-vers
	go32 temacs -batch -l loadup.el dump

$(etcdir)DOC: $(etcdir)make-docfile $(obj) $(lisp)
	rm -f DOC $(etcdir)DOC
	makedoc.bat

$(etcdir)make-docfile:
	cd $(etcdir); make $(MFLAGS) make-docfile

temacs:   $(LOCALCPP) $(SHORT) $(STARTFILES) $(OLDXMENU) $(obj) $(otherobj) $(LIBASSIST)   
	$(LD) $(STARTFLAGS) $(LDFLAGS) -o temacs $(STARTFILES) @xmake.lnk $(LIBES)

libassist.o: libassist.s
	$(AS) libassist.s -o libassist.o

libassist.a: libassist.o
	$(LD) -r -o libassist.a libassist.o

CPP = $(CC) -E
# paths.h: paths.h-dist
#	@sh -c "if test -r $@; then echo $? is newer than $@; exit 1;	  else exit 0; fi"
#	cp $? $@
#config.h: config.h-dist
#	@sh -c "if test -r $@; then echo $? is newer than $@; exit 1;	  else exit 0; fi"
#	cp $? $@
alloca.o : alloca.c
abbrev.o : abbrev.c buffer.h commands.h config.h 
buffer.o : buffer.c syntax.h buffer.h commands.h window.h config.h $(KANJI_H)
callint.o : callint.c window.h commands.h buffer.h config.h 
callproc.o : callproc.c paths.h buffer.h commands.h config.h $(KANJI_H)
casefiddle.o : casefiddle.c syntax.h commands.h buffer.h config.h 
cm.o : cm.c cm.h termhooks.h config.h
cmds.o : cmds.c syntax.h buffer.h commands.h config.h 
crt0.o : crt0.c config.h
	$(CC) -c $(CFLAGS)   crt0.c
dired.o : dired.c commands.h buffer.h config.h 
dispnew.o : dispnew.c commands.h window.h buffer.h dispextern.h termchar.h termopts.h cm.h config.h $(KANJI_H)
doc.o : doc.c buffer.h config.h paths.h
doprnt.o : doprnt.c
editfns.o : editfns.c window.h buffer.h config.h 
emacs.o : emacs.c commands.h config.h nconfig.h
fileio.o : fileio.c window.h buffer.h config.h $(KANJI_H)
filelock.o : filelock.c buffer.h paths.h config.h
filemode.o : filemode.c 
indent.o : indent.c window.h indent.h buffer.h config.h termchar.h termopts.h $(KANJI_H)
insdel.o : insdel.c window.h buffer.h config.h 
kanji.o : kanji.c config.h nconfig.h $(KANJI_H)
keyboard.o : keyboard.c termchar.h termhooks.h termopts.h buffer.h commands.h window.h macros.h config.h $(KANJI_H)
keymap.o : keymap.c buffer.h commands.h config.h 
lastfile.o : lastfile.c 
macros.o : macros.c window.h buffer.h commands.h macros.h config.h
malloc.o : malloc.c config.h
marker.o : marker.c buffer.h config.h 
minibuf.o : minibuf.c syntax.h window.h buffer.h commands.h config.h 
mocklisp.o : mocklisp.c buffer.h config.h
process.o : process.c process.h buffer.h window.h termhooks.h termopts.h commands.h config.h $(KANJI_H)
regex.o : regex.c syntax.h buffer.h config.h regex.h 
scroll.o : scroll.c termchar.h config.h dispextern.h
search.o : search.c regex.h commands.h buffer.h syntax.h config.h 
syntax.o : syntax.c syntax.h buffer.h commands.h config.h $(KANJI_H)
sysdep.o : sysdep.c config.h dispextern.h termhooks.h termchar.h termopts.h window.h
term.o : term.c termchar.h termhooks.h termopts.h config.h cm.h
termcap.o : termcap.c config.h
terminfo.o : terminfo.c config.h
tparam.o : tparam.c config.h
undo.o : undo.c buffer.h commands.h undo.h config.h 
unexec.o  : config.h
window.o : window.c indent.h commands.h window.h buffer.h config.h termchar.h
xdisp.o : xdisp.c macros.h commands.h indent.h buffer.h dispextern.h termchar.h window.h config.h $(KANJI_H)
alloc.o : alloc.c window.h buffer.h config.h nconfig.h puresize.h
bytecode.o : bytecode.c buffer.h config.h 
data.o : data.c buffer.h config.h nconfig.h puresize.h
eval.o : eval.c commands.h config.h
fns.o : fns.c buffer.h commands.h config.h
print.o : print.c process.h window.h buffer.h config.h 
lread.o : lread.c buffer.h paths.h config.h 
sunfns.o  : sunfns.c buffer.h config.h
$(etcdir)emacstool: $(etcdir)emacstool.c
	cd $(etcdir); make $(MFLAGS) emacstool
