CC = lcc.exe
LD = lcclnk.exe

CFLAGS = -I. -Id:\lcc\include -Dlcc -DWINDOWS  -O
LFLAGS = tcconio.lib wsock32.lib winspool.lib

LIBPATH = ../../../lib
BINPATH = ../../../bin
YABPATH = $(wildcard ../../../../yabasic-*)

YABSRC = graphic.c symbol.c function.c io.c flex.c bison.c jabmain.c yabasic.h config.h
JAPISRC = japiconst.def japilib.c fileselect.c imageio.c japi4bas.c japi.h japi_p.h japiserver.h

ALL : lib bin $(JAPISRC) $(YABSRC) yabasic.exe examples

lib :
	make -C $(LIBPATH)
bin :
	make -C $(BINPATH)
	
# Flex und Bison
jab.flex: $(BINPATH)/patchjabflex $(YABPATH)/yabasic.flex
	cp $(YABPATH)/yabasic.flex . ;\
	$(BINPATH)/patchjabflex > jab.flex
jab.bison: $(BINPATH)/patchjabbison $(YABPATH)/yabasic.bison
	cp $(YABPATH)/yabasic.bison .;\
	$(BINPATH)/patchjabbison > jab.bison
	 


# Sources
japiconst.def: $(LIBPATH)/japiconst.def
	cp $(LIBPATH)/japiconst.def . 
japilib.c: $(LIBPATH)/japilib.c 
	cp $(LIBPATH)/japilib.c . 
fileselect.c: $(LIBPATH)/fileselect.c 
	cp $(LIBPATH)/fileselect.c . 
imageio.c: $(LIBPATH)/imageio.c 
	cp $(LIBPATH)/imageio.c . 
japi4bas.c: $(BINPATH)/makejapi4bas japilib.c japiconst.def
	$(BINPATH)/makejapi4bas > japi4bas.c
japi.h: $(LIBPATH)/japi.h 
	cp $(LIBPATH)/japi.h . 
japi_p.h: $(LIBPATH)/japi_p.h 
	cp $(LIBPATH)/japi_p.h . 
japiserver.h: $(LIBPATH)/japiserver.h 
	cp $(LIBPATH)/japiserver.h .
graphic.c: $(YABPATH)/graphic.c
	cp $(YABPATH)/graphic.c .	
symbol.c : $(YABPATH)/symbol.c
	cp $(YABPATH)/symbol.c .	
function.c : $(YABPATH)/function.c
	cp $(YABPATH)/function.c .	
io.c: $(YABPATH)/io.c
	cp $(YABPATH)/io.c .	
flex.c: jab.flex 
	flex  -i -I -L -s -t jab.flex > flex.c
bison.c: jab.bison 
	bison -d -l --output-file bison.c jab.bison
jabmain.c:  $(BINPATH)/patchjabmain $(YABPATH)/main.c japilib.c
	cp $(LIBPATH)/japiconst.def . ;\
	cp $(YABPATH)/main.c . ;\
	$(BINPATH)/patchjabmain > jabmain.c
yabasic.h:  $(BINPATH)/patchjabheader $(YABPATH)/yabasic.h japilib.c
	cp $(YABPATH)/yabasic.h .	
	$(BINPATH)/patchjabheader > tmp.h ;\
	mv tmp.h yabasic.h;
config.h: $(YABPATH)/CONFIG.H
	cp $(YABPATH)/CONFIG.H config.h
	

# link together 
yabasic.exe: $(JAPISRC) $(YABSRC)
	make -f Makeyab

examples :
	cp  ../../../basic/* . ;\
	cp -r ../../../../images . ;\
	makeyabexamples

# cleanman
clean :
	rm -rf *.bas *.obj *.c *.h *.def *.bison *.flex yabasic.exe *.jar images
