# INSTALLATION DIRECTORIES:

include ../config
PROGRAM = bed

OBJ =  rbtree.o memory.o editor.o   getfile.o glob.o expandfilename.o readcolors.o  getfree.o getlabel.o debug.o 
SRC = editor.cpp  expandfilename.c  marks.cpp memory.cpp   rbtree.cpp  getfile.cpp glob.c editlimits.cpp readcolors.cpp  getfree.cpp version.cpp getlabel.cpp debug.cpp
HEADERS =  keyinput.h memory.h rbtree.h screen.h system.h  getfile.h glob.h readcolors.h  builtinkeys.h help.h copy.h getlabel.h  keylist.h debug.h
OTHERFILES= trace.cpp preprocedures head.h copy 
NOTHOLD=  machine machine.c md5file sourcenumber date.c mkversion

LIBS=  -lncurses   -lm -ldl -lc
LIBPATH=-L. 
GCC=gcc
CP=cp -f -b
BIN2BYTE= ../utils/bin2byte
MV=mv
#BUGFLAGS=-DENDOFLINEBUG -DPROCLOCKSBUG # ncurses1.9.9e
#BUGFLAGS=   -DTRACEON  -DPROCLOCKSBUG -DDEBUGON
#BUGFLAGS=   -DTRACEON  -DPROCLOCKSBUG 
BUGFLAGS=    -DPROCLOCKSBUG 
CFLAGS= -O6 -rdynamic $(BUGFLAGS) -DVERSION=\"$(VERSION)\" -DCURSES  -DPROGRAM=\"$(PROGRAM)\" -DCONFDIR=\"$(CONFDIR)\" -DBINDIR=\"$(BINDIR)\" -DCONFFILE=\"$(CONFFILE)\"
#CFLAGS= -g -rdynamic $(BUGFLAGS) -DVERSION=\"$(VERSION)\" -DCURSES  -DPROGRAM=\"$(PROGRAM)\" -DCONFDIR=\"$(CONFDIR)\" -DBINDIR=\"$(BINDIR)\" -DCONFFILE=\"$(CONFFILE)\"
CPPFLAGS=$(CFLAGS)

ALLEXCEPTVERSION=$(SRC) $(HEADERS) $(OTHERFILES)
ALLSOURCES=$(ALLEXCEPTVERSION) $(NOTHOLD)
ALLES= $(ALLSOURCES) Makefile  $(CONFFILE)


DFILES=$(SRC:%.cpp=%.d)
DEPEND=$(DFILES:%.c=%.d)


all:   $(PROGRAM)
test:
%.d: %.cpp
	$(SHELL) -ec 'GEGS=`gcc -MM -MG $(CPPFLAGS)  $<`; echo "$$GEGS"|sed  '\''s/^\(.*\)\.o[ :]/$@: Makefile /g'\''    > $@ ; echo "$$GEGS" >>$@'
	  echo 	'	$(GCC) $(CFLAGS) -c $<' >> $@
%.d: %.c
	$(SHELL) -ec 'GEGS=`gcc -MM -MG $(CPPFLAGS)  $<`; echo "$$GEGS"|sed  '\''s/^\(.*\)\.o[ :]/$@: Makefile /g'\''    > $@ ; echo "$$GEGS" >>$@'
	  echo 	'	$(GCC) $(CFLAGS) -c $<' >> $@

include $(DEPEND)

.PHONY: back
back: bak $(ALLES)
	cp $(ALLES) bak
bak:
	mkdir bak

.PHONY: src

src:
	@echo $(ALLES)
dep:
	echo $(DEPEND)


$(PROGRAM):  $(OBJ)  version.o
	gcc $(CFLAGS) -o $(PROGRAM)  version.o $(OBJ)  $(LIBPATH) $(LIBS)

sourcenumber: $(SRC) mkversion Makefile $(BIN2BYTE)
	mkversion $(ALLEXCEPTVERSION)


$(BIN2BYTE):
	$(MAKE) -C ../utils bin2byte
procedures.h: preprocedures
	cp head.h  $@
	sort $< >> $@
help.h:help $(BIN2BYTE)
	$(BIN2BYTE) help help help.h
copy.h:copy $(BIN2BYTE)
	$(BIN2BYTE) copy copy copy.h
md5sums.cpp:  sourcenumber md5file $(BIN2BYTE)
	pgps -a -t -o md5file.pgp md5file
	 $(BIN2BYTE) md5file.pgp md5sums md5sums.cpp
#	 $(BIN2BYTE) md5file md5sums md5sums.cpp

#version.o:  version.cpp sourcenumber md5sums.cpp help.h copy.h
#	gcc $(CFLAGS) -c version.cpp

clean: 
	-rm $(OBJ) $(PROGRAM) version.o
	
realclean: clean
	-rm $(DEPEND) md5sums.cpp

dist: $(PROGRAM).src.$(VERSION).tgz 

$(PROGRAM).src.$(VERSION).tgz : $(ALLES) 
	tar -z -cf $(PROGRAM).$(VERSION).src.tar.gz $(ALLES)
