CC = gcc
CFLAGS = -c -O2 -Wall -DUNIX -Dunix -Dgcc -I/usr/X11R6/include
LFLAGS = -L/usr/X11R6/lib  -lSM -lICE -lm -lncurses  -lX11 
AUTOFLAGS =   -DHAVE_NCURSES_HEADER=1 \
	      -DHAVE_CURSES_HEADER=1 \
	      -DHAVE_GETNSTR=1 \
	      -DHAVE_ALLOCA_H=1

LIBPATH = ../../../lib
BINPATH = ../../../bin
YABPATH = $(wildcard ../../../../yabasic-*)
YABASIC =  $(patsubst ../../../../%, %, $(YABPATH))

JABSRC = flex.c bison.c jabmain.c jab.h
JAPISRC = japiconst.def japilib.c japi4bas.c japi.h japi_p.h japiserver.h

ALL : yab lib bin $(JAPISRC) $(JABSRC) copy yabasic

lib :
	make -C $(LIBPATH)
bin :
	make -C $(BINPATH)
yab :
	cp -r $(YABPATH) .

	
# 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 . 
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 .
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
jab.h:  $(BINPATH)/patchjabheader $(YABPATH)/yabasic.h japilib.c
	cp $(YABPATH)/yabasic.h .	
	$(BINPATH)/patchjabheader > jab.h ;\
	

copy : 
	rm yabasic.h main.c yabasic.flex yabasic.bison;\
	mv jab.flex yabasic.flex ;\
	mv jab.bison yabasic.bison ;\
	mv jabmain.c main.c ;\
	mv jab.h yabasic.h ;\
	mv -f *.flex $(YABASIC) ;\
	mv -f *.bison $(YABASIC) ;\
	mv -f *.c $(YABASIC) ;\
	mv -f *.h $(YABASIC) ;\
	cp -f Makefile.in $(YABASIC)
	
yabasic :
	cd $(YABASIC) && runme && cd .. ;\
	cp $(YABASIC)/yabasic . ;\
	make -C $(YABASIC) clean 
	
	



# cleanman
clean :
	rm -rf yabasic *.c *.h *.def *.bison *.flex $(YABASIC)
