ifeq ($(findstring Windows,$(OS)),Windows)
OpSys=Windows
endif
include config 
include prognames.mk
#MAKE=gmake
ifneq ($(CONFIG_PLUGIN),y)
ifneq ($(filter disass.plug,$(LINKIN) $(LINKINDYN)),)
DISASS_USE=y
endif
endif

REGEX_DIR=regex-0.12

ifneq ($(HAS_RE_SEARCH),y)
REGEX=src/regex.o
endif

ifeq ($(CONFIG_PROGMAN),y)
all: $(REGEX) $(CONFFILE) bed.menu
else
all: $(REGEX) $(CONFFILE)
endif

ifeq ($(BIOSDISK),y)
	$(MAKE) -C biosdisk 
endif
	$(MAKE) -C utils
	$(MAKE) -C plugins/examples  inlinklist plughelp
	$(MAKE) -C src bed
ifeq ($(CONFIG_PLUGIN),y)
	$(MAKE) -C plugins/examples  give
else
ifeq ($(DISASS_USE),y)
	$(MAKE) -C plugins/examples  disass-use
endif
endif


ifeq ($(CONFIG_XBED),y)
	$(MAKE) -C x11 $(XPROGRAM)
endif
	$(MAKE) -C doc

BEDBASE=$(PROGRAM)-$(VERSION)
LSMFILE=$(PROGRAM)-$(VERSION).lsm
SPECFILE=$(PROGRAM)-$(VERSION).spec

ifeq ($(CONFIG_XBED),y)
XBEDMAN=$(ROOTDIR)$(MANDIR)/xbed.1 $(ROOTDIR)$(BINDIR)/xbed
endif
ifeq ($(CONFIG_PROGMAN),y)
MENUBED=$(ROOTDIR)$(MENUPATH)/bed
endif
BINDIST=$(ROOTDIR)$(CONFDIR) $(ROOTDIR)$(CONFDIRLINK) $(ROOTDIR)$(BINDIR)/bed $(ROOTDIR)$(MANDIR)/bed.1   $(ROOTDIR)$(MENUBED) $(XBEDMAN)
ifneq ($(HAS_APPLICATIONS),)
BINDIST+=$(ROOTDIR)$(HAS_APPLICATIONS)/bed-binary-editor.desktop 
endif
ifeq ($(SYSTEM),FreeBSD)
BINDIST+=$(ROOTDIR)/usr/local/lib/nss_dns.so.1 
endif

#SORT=LC_ALL=C sort
install: installfiles
ifeq ($(HAS_FILE),y)
	@bash ./addmagic
endif
ifeq ($(CONFIG_PROGMAN),y)
	update-menus
endif

installfiles: $(CONFFILE)  #$(LSMFILE)
ifeq ($(CYGWIN),yes)
	cd "c:\\"
endif
	-$(MKDIR) $(ROOTDIR)$(BINDIR)
	-rm   $(ROOTDIR)$(BINDIR)/$(EXEPROGRAM)
	$(CP) src/$(EXEPROGRAM) $(ROOTDIR)$(BINDIR)
	$(STRIP)  $(ROOTDIR)$(BINDIR)/$(EXEPROGRAM)
	-rm   $(ROOTDIR)$(CONFDIRLINK)
	-mv -f  $(ROOTDIR)$(CONFDIRLINK) $(ROOTDIR)$(CONFDIRLINK).bak
	-$(MKDIR) $(ROOTDIR)$(CONFDIR)
ifneq ($(CYGWIN),yes)
	$(MKDIR) `dirname $(ROOTDIR)$(CONFDIRLINK)`
#	$(SYMLINK) $(ROOTDIR)$(CONFDIR) $(ROOTDIR)$(CONFDIRLINK)
#	$(SYMLINK)  $(CONFLASTDIR) $(ROOTDIR)$(CONFDIRLINK)
	-mv  $(ROOTDIR)$(CONFDIR)/$(CONFFILE) $(ROOTDIR)$(CONFDIR)/~$(CONFFILE)
endif
	$(CP) $(CONFFILE) $(ROOTDIR)$(CONFDIR)
	chmod 0644 	$(ROOTDIR)$(CONFDIR)/$(CONFFILE)
	-$(RM) $(ROOTDIR)$(CONFDIR)/.neededbybed
	$(CP) .neededbybed $(ROOTDIR)$(CONFDIR)
	chmod 0444 	$(ROOTDIR)$(CONFDIR)/.neededbybed
	$(MAKE) -C doc install
	$(MAKE) -C misc install
ifeq ($(CONFIG_XBED),y)
	$(MAKE) -C x11 install
endif
ifeq ($(CONFIG_PLUGIN),y)
	$(MAKE) -C utils install
	$(MAKE) -C plugins install
else
ifeq ($(DISASS_USE),y)
	$(CP) plugins/examples/disass-use*  $(ROOTDIR)$(CONFDIR)
endif
endif
ifneq ($(CYGWIN),yes)
ifeq ($(CONFIG_PLUGIN),y)
	-ln -s $(BINDIR)/$(PROGRAM) $(ROOTDIR)$(CONFDIR)/utils/keyconfig
else
	-ln -s $(BINDIR)/$(PROGRAM) $(ROOTDIR)$(CONFDIR)/keyconfig
endif
else
ifeq ($(BIOSDISK),y)
	$(MAKE) -C biosdisk install
endif
ifeq ($(PDCURSES),)
	echo $(EXEPROGRAM) -k %1 %2 %3 %4 %5 %6 %7 %8 %9 > $(ROOTDIR)$(CONFDIR)/keyconfig.bat
endif
endif
ifeq ($(PDCURSES),)
	$(MKDIR) $(ROOTDIR)$(CONFDIR)/terminfo
	$(MKDIR) $(ROOTDIR)$(CONFDIR)/terminfo/r
	cp   terminfo/r/rxvt* $(ROOTDIR)$(CONFDIR)/terminfo/r
endif
	cp   $(LSMFILE) LICENSE $(ROOTDIR)$(CONFDIR)
ifeq ($(OpSys),Windows)
	u2d     $(ROOTDIR)$(CONFDIR)/LICENSE
endif
	cp doc/datadir.txt $(ROOTDIR)$(CONFDIR)/README
	cp public.pgp $(ROOTDIR)$(CONFDIR)
ifeq ($(SYSTEM),Linux)
	cp bedkeys $(ROOTDIR)$(CONFDIR)
endif
ifeq ($(SYSTEM),FreeBSD)
	cp us.alt.kbd README.FreeBSD $(ROOTDIR)$(CONFDIR)
endif
ifeq ($(SYSTEM),SunOS)
	cp README.OpenSolaris $(ROOTDIR)$(CONFDIR)
endif
ifeq ($(HAS_FILE),y)
	$(CP) testmarks.bedm bedmagic bedmagic.short addmagic $(ROOTDIR)$(CONFDIR)
endif
ifneq ($(HAS_APPLICATIONS),)
	$(MKDIR) $(ROOTDIR)$(HAS_APPLICATIONS)
	cp progman/bed-binary-editor.desktop $(ROOTDIR)$(HAS_APPLICATIONS)/bed-binary-editor.desktop 
endif
ifeq ($(CONFIG_PROGMAN),y)
#	cp bed.xpm $(ROOTDIR)$(ICONPATH)
#	cp bedsmall.xpm $(ROOTDIR)$(ICONPATH)/mini/bed.xpm
	$(MKDIR) $(ROOTDIR)$(MENUPATH)
	cp bed.menu $(ROOTDIR)$(MENUPATH)/$(PROGRAM)
	chmod 0644 $(ROOTDIR)$(MENUPATH)/$(PROGRAM)

#	@rpm -q $(PROGRAM)|| echo Warning!! Desktop entries not created if no package $(PROGRAM) exists
endif
ifneq ($(CYGWIN),yes)

ifeq ($(SYSTEM),FreeBSD)
	$(SYMLINK) -f $(CONFDIR) $(ROOTDIR)$(CONFDIRLINK)
else
	$(SYMLINK) -T -f $(CONFDIR) $(ROOTDIR)$(CONFDIRLINK)
endif
endif
ifneq ($(CYGWIN),yes)
	@cp uninstallhead $(ROOTDIR)$(CONFDIR)/uninstallbed.sh
	@FILES=`for afile in $(BINDIST); do  test -e $$afile -o -L $$afile&&echo $$afile ;done`;if test . != .$(ROOTDIR); then SLASHROOT=`echo $(ROOTDIR)| sed -e 's/\\//\\\\\\//g'`;fi;find  $$FILES ! -type d -print |if test . != .$(ROOTDIR);then sed -e "s/$$SLASHROOT//g";else cat;fi |xargs echo $(REMOVE) ' ' >> $(ROOTDIR)$(CONFDIR)/uninstallbed.sh ;find  $$FILES -type d  -a  -print| if test . != .$(ROOTDIR);then sed -e "s/$$SLASHROOT//g";else cat;fi |$(SORT) -r|xargs echo $(RMDIR) ' ' >> $(ROOTDIR)$(CONFDIR)/uninstallbed.sh
	@echo Uninstall with sh $(ROOTDIR)$(CONFDIR)/uninstallbed.sh
endif
	@echo Binary: '$(ROOTDIR)$(BINDIR)/$(EXEPROGRAM)'
	@echo Support files: $(ROOTDIR)$(CONFDIR)

clean:
	$(MAKE) -C src clean
	$(MAKE) -C utils clean
	$(MAKE) -C plugins clean
	$(MAKE) -C x11 clean
	$(MAKE) -C biosdisk clean
	-$(MAKE) -C doc clean
	-rm  $(REGEX_DIR)/regex.o


realclean: 
	-rm $(CONFFILE)  config.cache config.bak config.log config.status  bedrc buildonce getsize
	 $(MAKE) -C x11 clean
	$(MAKE) -C src realclean
	- $(MAKE) -C doc realclean
	 $(MAKE) -C utils realclean
	 $(MAKE) -C plugins realclean
	 $(MAKE) -C biosdisk realclean
	-rm  $(REGEX_DIR)/regex.o


echo:
	echo $(BINDIST)
.PHONY: %.dist %.bindist %.srcdist %.html
HTMLPATH=../html
DISTPATH=$(HTMLPATH)
TGZSUF=.tgz
SRCBASE=$(PROGRAM)-$(VERSION).src
SRCARGFILE=$(SRCBASE)$(TGZSUF)
SRCLSMFILE=$(SRCBASE).lsm
SRCASCFILE=$(SRCBASE).asc
#s/$(TGZSUF)/$(TGZSUF)/g


SOURCEFILE=$(DISTPATH)/download/$(PROGRAM)-$(VERSION).src$(TGZSUF) 
ifeq ($(CONFIG_STATIC),y)
ELFBASE=$(PROGRAM)-$(VERSION).$(SYSTEM).ELF-static$(ELFSIZE)
else
#ELFBASE=$(PROGRAM)_$(VERSION)-$(SYSTEM)
ELFBASE=$(PROGRAM)-$(VERSION).$(SYSTEM)
endif
ELFARGFILE=$(ELFBASE)$(ELFSIZE)$(TGZSUF) 
ELFLSMFILE=$(ELFBASE).lsm
ELFASCFILE=$(ELFBASE).asc
WIN32ARGFILE=$(PROGRAM)-$(VERSION).win32.zip
WIN95ARGFILE=$(PROGRAM)-$(VERSION).win95.zip
NWIN32ARGFILE=$(PROGRAM)-$(VERSION).win32ncurses.zip


FREEBSDARGFILE=$(PROGRAM)-$(VERSION).FreeBSD64.tbz
#FREEBSDARGFILE=$(PROGRAM)-0.2.22.FreeBSD64$(TGZSUF)
#FREEBSDARGFILE=$(PROGRAM)-0.2.22.FreeBSD64$(TGZSUF)
OPENSOLARISFILE=$(PROGRAM)-$(VERSION).SunOS.tar.gz
STATICARGFILE=$(PROGRAM)-$(VERSION).bin.ELF-static$(TGZSUF)
NONSTATICARGFILE32=$(PROGRAM)-$(VERSION).Linux32$(TGZSUF)
#NONSTATICARGFILE64=$(PROGRAM)-$(VERSION).Linux64$(TGZSUF)
NONSTATICARGFILE64=$(PROGRAM)_$(VERSION)_amd64.deb

#LSMFILE=$(PROGRAM)-$(VERSION).lsm
FULLELFFILE=$(DISTPATH)/download/$(ELFARGFILE)
#PGPSIGNPROG=gpg -s --use-embedded-filename -a -b -u 0x94BA03AE 
#PGPSIGNPROG=gpg2 -s --use-embedded-filename -b -u 0x94BA03AE 

#PGPSIGNPROG=gpg2 -s   -b -u 0x94BA03AE 

# --use-embedded-filename

#  --comment string

#       --no-comments

#--clearsign


#PGPSIGNPROG= pgps -a -b -u 0x94BA03AE 

PGPSIGNPROG=gpg --cert-digest-algo=SHA256 -s -a  -b -u 0x94BA03AE -u 0x65D385A5 

mkuninstall:
	@cp uninstallhead $(CONFDIR)/uninstallbed.sh
	@FILES=`for afile in $(BINDIST); do  test -e $$afile -o -L $$afile&&echo $$afile ;done`; find  $$FILES ! -type d|xargs echo $(REMOVE) ' ' >> $(CONFDIR)/uninstallbed.sh ;find  $$FILES -type d|$(SORT) -r|xargs echo $(RMDIR) ' ' >> $(CONFDIR)/uninstallbed.sh
#	find  $(BINDIST) -type f|xargs 'echo rm -f '
#	find  $(BINDIST) -type d|$(SORT) -r|xargs 'echo rmdir '

%.bindist: $(BINARIES)
	mkdir -p $*/download
	tar -z -cf $*/download/$(ELFARGFILE)   $(BINDIST) 
#	env VERSION=$(VERSION) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) DISTPATH=$*/download sh ./mklsmelf > $*/download/$(ELFLSMFILE)
%.srcdist:
	mkdir -p $*/download
	tar -z -cf  $*/download/$(PROGRAM)-$(VERSION).src$(TGZSUF)  -C ../  $(PROGRAM)-$(VERSION) 
#	env  ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mklsm > $*/download/$(SRCLSMFILE)
%.html: mkbed 
	mkdir -p $*
	$(MAKE) -C doc bed.html
	cp doc/bed.html $*/bed.1.html
	$(MAKE) -C doc menu.html
#	env WIN32ARGFILE=$(WIN32ARGFILE)  OPENSOLARISFILE=$(OPENSOLARISFILE) FREEBSDARGFILE=$(FREEBSDARGFILE) NONSTATICARGFILE32=$(NONSTATICARGFILE32) NONSTATICARGFILE64=$(NONSTATICARGFILE64) STATICARGFILE=$(STATICARGFILE) CONFDIRLINK=$(CONFDIRLINK) LSMFILE=$(LSMFILE) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mkbed > $*/download.html
	env SRCARGFILE=$(SRCARGFILE) WIN32ARGFILE=$(WIN32ARGFILE)  WIN95ARGFILE=$(WIN95ARGFILE)  OPENSOLARISFILE=$(OPENSOLARISFILE) FREEBSDARGFILE=$(FREEBSDARGFILE) NONSTATICARGFILE32=$(NONSTATICARGFILE32) NONSTATICARGFILE64=$(NONSTATICARGFILE64) STATICARGFILE=$(STATICARGFILE) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mkbed | sh dseonlyext.sh >$*/download.html
	sh dseext.sh <$*/download.html > $*/downloaddse.html
#	env  LSMFILE=$(LSMFILE)  ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mktripod.sh > $*/tripodindex.html
	env  LOWVERSION=$(LOWVERSION) LSMFILE=$(LSMFILE)  ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mkoldpage.sh > $*/oldbeds.html
	cp doc/menu.html $*/menu.html

#	env  WIN32ARGFILE=$(WIN32ARGFILE)  OPENSOLARISFILE=$(OPENSOLARISFILE) FREEBSDARGFILE=$(FREEBSDARGFILE) NONSTATICARGFILE32=$(NONSTATICARGFILE32) NONSTATICARGFILE64=$(NONSTATICARGFILE64) STATICARGFILE=$(STATICARGFILE) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mknewlsm > $*/download/$(LSMFILE)
%.dist: %.srcdist %.bindist %.sign
	echo $*




#s/FREEBSDARGFILE/OPENSOLARISFILE/g

%.sign:
	$(PGPSIGNPROG)   --comment $(NONSTATICARGFILE32) $*/download/$(NONSTATICARGFILE32) 
	$(PGPSIGNPROG)   --comment $(NONSTATICARGFILE64) $*/download/$(NONSTATICARGFILE64) 
	$(PGPSIGNPROG)   --comment $(SRCARGFILE) $*/download/$(SRCARGFILE) 
	$(PGPSIGNPROG)   --comment $(WIN32ARGFILE) $*/download/$(WIN32ARGFILE) 
	$(PGPSIGNPROG)   --comment $(NWIN32ARGFILE) $*/download/$(NWIN32ARGFILE) 
	$(PGPSIGNPROG)   --comment $(WIN95ARGFILE) $*/download/$(WIN95ARGFILE) 
	$(PGPSIGNPROG)   --comment $(FREEBSDARGFILE) $*/download/$(FREEBSDARGFILE) 
	$(PGPSIGNPROG)   --comment $(OPENSOLARISFILE) $*/download/$(OPENSOLARISFILE) 
	make $*/download/$(LSMFILE) 

#	$(PGPSIGNPROG)  $*/download/$(STATICARGFILE)
#	env  WIN32ARGFILE=$(WIN32ARGFILE)  OPENSOLARISFILE=$(OPENSOLARISFILE) FREEBSDARGFILE=$(FREEBSDARGFILE) NONSTATICARGFILE32=$(NONSTATICARGFILE32) NONSTATICARGFILE64=$(NONSTATICARGFILE64) STATICARGFILE=$(STATICARGFILE) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=$*/download bash ./mknewlsm > $*/download/$(LSMFILE)

%.lsm: ./settings
	env SRCARGFILE=$(SRCARGFILE) WIN32ARGFILE=$(WIN32ARGFILE)  WIN95ARGFILE=$(WIN95ARGFILE)  OPENSOLARISFILE=$(OPENSOLARISFILE) FREEBSDARGFILE=$(FREEBSDARGFILE) NONSTATICARGFILE32=$(NONSTATICARGFILE32) NONSTATICARGFILE64=$(NONSTATICARGFILE64) STATICARGFILE=$(STATICARGFILE) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=../html/download bash ./mknewlsm > $*.lsm
#	env  WIN32ARGFILE=$(WIN32ARGFILE)  FREEBSDARGFILE=$(FREEBSDARGFILE) NONSTATICARGFILE=$(NONSTATICARGFILE)  STATICARGFILE=$(STATICARGFILE) ELFBASE=$(ELFBASE) SRCBASE=$(SRCBASE) VERSION=$(VERSION) DISTPATH=../html/download bash ./mknewlsm > $(LSMFILE)
	echo $*

.PHONY: lsm

lsm: 	
	-rm $(LSMFILE)
	$(MAKE) $(LSMFILE)
ifeq ($(OpSys),Windows)
	u2d  $(LSMFILE)
endif



BEDTMP=c:/tmp/bed-$(VERSION)

MIXBINDIR=`cygpath -m $(BINDIR)`
winbindist:
	-rm -i ../html/download/bed-$(VERSION).win32.zip
	zip  -z -r ../html/download/bed-$(VERSION).win32.zip bedwin32.txt  "`cygpath -m $(CONFDIR)`" $(MIXBINDIR)/cygwin1.dll $(MIXBINDIR)/$(EXEPROGRAM) '$(ALLUSERSPROFILE)/Menu Start/bed.lnk' 'c:/windows/Start Menu/bed.lnk' < bedwin32.txt
	bash ../html/mkbedpad.sh $(VERSION)
nwinbindist:
	-rm -i bed-$(VERSION).win32.zip 
	zip  -z -r bed-$(VERSION).win32.zip bedwin32.txt $(BINDIR)/cygwin1.dll  $(BINDIR)/$(EXEPROGRAM)  $(BINDIR)/bedn.exe $(CONFDIR) < bedwin32.txt

#	-mkdir $(BEDTMP)
#	cp  $(BINDIR)/$(EXEPROGRAM) $(BEDTMP)
#	cp  $(CONFDIR)/misc/*.bedda $(BEDTMP)
#	cp  $(CONFDIR)/doc/bed* $(BEDTMP)
#	cp  $(CONFDIR)/* $(BEDTMP)
#	cd $(BEDTMP); pkzip  -r bedzip *.*

#	pkzip  -r bedzip $(BINDIR)/$(EXEPROGRAM) $(CONFDIR)
#	find $(CONFDIR) ! -type f -a -printf \%p\  -a


#	tar -cf bedtar $(BINDIR)/$(EXEPROGRAM) $(CONFDIR)
#	gzip  bedtar
#	mv be$(TGZSUF) bed-$(VERSION).win32$(TGZSUF)

#	tar -cf bedtar $(BINDIR)/$(EXEPROGRAM) $(CONFDIR)
#	gzip  bedtar
#	mv be$(TGZSUF) bed-$(VERSION).win32$(TGZSUF)

#	mv bedwin32.zip bed-$(VERSION).win32.zip
#	zip -9 -r bedwin32.zip  $(BINDIR)/$(EXEPROGRAM) $(CONFDIR)
#	mv bedwin32.zip bed-$(VERSION).win32.zip




sign: $(DISTPATH).sign 
dist: $(DISTPATH).dist
srcdist: $(DISTPATH).srcdist
bindist: $(DISTPATH).bindist
html:$(DISTPATH).html
files:
	tar -z -tf $(FULLELFFILE)|sed -e 's/^/\//'> files
spec:  files
	PROGMANEXTRA= MENUPATH=$(MENUPATH) VERSION=$(VERSION) DISTPATH=$(HTMLPATH)/download HAS_APPLICATIONS=$(HAS_APPLICATIONS) bash ./mkspec > $(PROGRAM)-$(VERSION).spec
solspec:  files
	PROGMANEXTRA= MENUPATH=$(MENUPATH) VERSION=$(VERSION) DISTPATH=$(HTMLPATH)/download HAS_APPLICATIONS=$(HAS_APPLICATIONS) bash ./mksolspec > $(PROGRAM)-$(VERSION).spec
.PHONY: control
control:
	ICONPATH=$(ICONPATH) MENUPATH=$(MENUPATH) KDEMENU=$(KDEMENU) GNOMEMENU=$(GNOMEMENU) XBEDMENU=$(XBEDMENU) BEDMENU=$(BEDMENU) VERSION=$(VERSION) DISTPATH=$(HTMLPATH)/download bash debian/control.sh > debian/control
	CONFDIR=$(CONFDIR) ICONPATH=$(ICONPATH) MENUPATH=$(MENUPATH) KDEMENU=$(KDEMENU) GNOMEMENU=$(GNOMEMENU) XBEDMENU=$(XBEDMENU) BEDMENU=$(BEDMENU) VERSION=$(VERSION) DISTPATH=$(HTMLPATH)/download bash debian/postinst.sh > debian/postinst
	CONFDIR=$(CONFDIR) ICONPATH=$(ICONPATH) MENUPATH=$(MENUPATH) KDEMENU=$(KDEMENU) GNOMEMENU=$(GNOMEMENU) XBEDMENU=$(XBEDMENU) BEDMENU=$(BEDMENU) VERSION=$(VERSION) DISTPATH=$(HTMLPATH)/download bash debian/preinst.sh > debian/preinst
	CONFDIR=$(CONFDIR) ICONPATH=$(ICONPATH) MENUPATH=$(MENUPATH) KDEMENU=$(KDEMENU) GNOMEMENU=$(GNOMEMENU) XBEDMENU=$(XBEDMENU) BEDMENU=$(BEDMENU) VERSION=$(VERSION) DISTPATH=$(HTMLPATH)/download bash debian/postrm.sh > debian/postrm
mount:
	-mount /mnt/floppy
flop: mount /mnt/floppy.dist


#RPMROOT=/usr/src/redhat
#RPMROOT=/usr/src/RPM
RPMROOT=~/rpmbuild
#RPM = rpm
RPM = rpmbuild
#RPMFLAGS =  --sign -ba
RPMFLAGS =  -ba

rpm: spec
	$(MKDIR) $(RPMROOT)/SOURCES
	cp $(SOURCEFILE) $(RPMROOT)/SOURCES/$(PROGRAM)-$(VERSION).src$(TGZSUF)
	$(MKDIR) $(RPMROOT)/SPECS
	cp  $(PROGRAM)-$(VERSION).spec $(RPMROOT)/SPECS/$(PROGRAM)-$(VERSION).spec 
	$(RPM) $(RPMFLAGS) $(PROGRAM)-$(VERSION).spec 

PKGROOT=/export/home/jka/packages
#RPM = rpm
PKG = pkgbuild
#RPMFLAGS =  --sign -ba
PKGFLAGS =  -ba
sunos: solspec
	$(MKDIR) $(PKGROOT)/SOURCES
	cp $(SOURCEFILE) $(PKGROOT)/SOURCES/$(PROGRAM)-$(VERSION).src$(TGZSUF)
	$(MKDIR) $(PKGROOT)/SPECS
	cp  $(PROGRAM)-$(VERSION).spec $(PKGROOT)/SPECS/$(PROGRAM)-$(VERSION).spec 
	$(PKG) $(PKGFLAGS) $(PROGRAM)-$(VERSION).spec 

package: Makefile
	$(RPM) --short-circuit $(RPMFLAGS) $(PROGRAM)-$(VERSION).spec 

installrpm:
	$(RPM) --short-circuit  --sign  -bi $(PROGRAM)-$(VERSION).spec 


ifneq ($(CYGWIN),yes)
CONFFILESH=mkbedrc.sh
else
CONFFILESH=mkbedrc95.sh
endif
$(CONFFILE):$(CONFFILESH) plugins/examples/Makefile config
	$(MAKE) -C plugins/examples ingive
	env HAS_X=$(HAS_X) CONFIG_LINKINPLUGINS=$(CONFIG_LINKINPLUGINS) CONFIG_PLUGIN=$(CONFIG_PLUGIN) CONFIG_THREADS=$(CONFIG_THREADS) PDCURSES=$(PDCURSES) CONFDIRLINK=$(CONFDIRLINK) CONFDIR=$(CONFDIR) bash $(CONFFILESH)> $(CONFFILE)
ifeq ($(CYGWIN),yes)
	u2d $(CONFFILE)
endif
#s/\$(CONFFILESH)/mkbedrc.sh/g
unixbedrc:$(CONFFILESH) plugins/examples/Makefile config
	$(MAKE) -C plugins/examples ingive
	env HAS_X=$(HAS_X) CONFIG_LINKINPLUGINS=$(CONFIG_LINKINPLUGINS) CONFIG_PLUGIN=$(CONFIG_PLUGIN) CONFIG_THREADS=$(CONFIG_THREADS) PDCURSES=$(PDCURSES) CONFDIRLINK=$(CONFDIRLINK) CONFDIR=$(CONFDIR) bash mkbedrc.sh> unixbedrc
	u2d unixbedrc

DATE=`date +%M-%H-%d-%m-%Y`

backup: 
	date > ../backup/backupfile.start
	tar -zcf ../backup/$(PROGRAM)-$(VERSION).backup.tgz-$(DATE) -N `cat ../backup/backupfile` `find . ! -name *.o* -a ! -name core -a ! -name *.plug -a ! -type d -a ! -path ./src/$(PROGRAM) -a -printf %p `
	move  ../backup/backupfile.start ../backup/backupfile
fullbackup: 
	date > ../backup/backupfile.start
	tar -zcf ../backup/$(PROGRAM)-$(VERSION).backup.tgz-$(DATE) `find . ! -name *.o* -a ! -name core -a ! -name *.plug -a ! -type d -a ! -path ./src/$(PROGRAM) -a -printf %p `
	move  ../backup/backupfile.start ../backup/backupfile
try:
	 echo $(TESTVAR)

./configure:./configure.in src/defines.h.in
	autoconf


uninstall:
ifeq ($(CONFIG_PROGMAN),y)
	-rm  $(ROOTDIR)$(MENUPATH)/$(PROGRAM)
endif
ifneq ($(HAS_APPLICATIONS),)
	-rm  $(ROOTDIR)$(HAS_APPLICATIONS)/bed-binary-editor.desktop
endif
ifeq ($(CONFIG_XBED),y)
	-rm -i $(BINDIR)/$(XPROGRAM)
endif
	-rm  -i $(CONFDIRLINK)
	-rm -i $(BINDIR)/$(EXEPROGRAM)
	-rm  -i $(MANDIR)/$(PROGRAM).1
	-rm  -i $(MANDIR)/$(XPROGRAM).1
	-rm -fr $(CONFDIR)

bed.menu:mkmenu.sh config
	CONDIRLINK=$(CONFDIRLINK) MENUNAME=$(MENUNAME) XMENUNAME=$(XMENUNAME) BEDMENU=$(BEDMENU) XBEDMENU=$(XBEDMENU) BINDIR=$(BINDIR) PROGRAM=$(PROGRAM)  XPROGRAM=$(XPROGRAM) bash ./mkmenu.sh > bed.menu

cprpm:
	cp /usr/src/redhat/RPMS/i386/bed-$(VERSION)*.rpm ../html/download
	cp /usr/src/redhat/SRPMS/bed-$(VERSION)*src*.rpm ../html/download


CONFDIRLINKER=$(shell echo '$(CONFDIRLINK)'| sed -e 's/\//\\\//g' )
README: .start.txt .common.txt
	cat .start.txt > README
	sed 's/CONFDIRLINK/$(CONFDIRLINKER)/g' < .common.txt >>README
	
pkg/pkg-plist:
	-rm $@
	@FILES=`for afile in $(BINDIST); do  test -e $$afile&&echo $$afile ;done`;PREFIXX=`echo $(prefix)|sed -e 's/\\//\\\\\\//g' `;find  $$FILES ! -type d ! -name *bed.1 -print | sed -e s/$$PREFIXX'\///g'|$(SORT) >> $@  ;find  $$FILES -type d  -a  -print |$(SORT) -r|sed -e s/$$PREFIXX'\//\@dirrm\ /g' >> $@ 
#	echo '@unexec rm %D/share/bed' >> $@
#;echo $(CONFDIRLINK) |sed -e s/$$PREFIXX'\///g'>>$@
#sed -e 's/$$PREFIXX/\@dirrm/g'

dep:
	$(MAKE) -C src mainprocedures.h
	$(MAKE) -C plugins/examples dep
	$(MAKE) -C src dep

undos:
	file `find .	 -type f`|grep CRLF|cut -d : -f 1|xargs d2u

linuxdebug: 
	bash ./configure --prefix=/usr
	mv ./config ./config.bak
	sed -e '{s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=m/g;s/^CONFIG_MMAP=.*/CONFIG_MMAP=y/g;s/^prefix=.*/prefix=\/usr/g;}' < ./config.bak > ./config
	echo '#define DLDEFAULTCOLORS 1' >> src/defines.h
linuxconfig: 
	bash ./configure --prefix=/usr
	mv ./config ./config.bak
	sed -e '{s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=n/g;s/^prefix=.*/prefix=\/usr/g;}' < ./config.bak > ./config
#	sed -e '{s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=n/g;s/^CONFIG_MMAP=.*/CONFIG_MMAP=y/g;s/^prefix=.*/prefix=\/usr/g;}' < ./config.bak > ./config
	echo '#define DLDEFAULTCOLORS 1' >> src/defines.h
#	echo '#define NCURSESLIB libncurses.so.5' >> src/defines.h
staticconfig: 
	bash ./configure
	mv ./config ./config.bak
	sed -e '{s/^CONFIG_STATIC=.*/CONFIG_STATIC=y/g;s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=n/g;s/^CONFIG_MMAP=.*/CONFIG_MMAP=y/g;s/^prefix=.*/prefix=\/usr/g;}' < ./config.bak > ./config

nwinconfig: 
	echo 'CURSESLIB=ncurses' >> settings
	bash ./configure
	mv ./config ./config.bak
	sed -e 's/^CONFIG_DEBUG=.*/CONFIG_DEBUG=n/g' < ./config.bak > ./config
nwindebugconfig: 
	echo 'CURSESLIB=ncurses' >> settings
	bash ./configure
	mv ./config ./config.bak
	sed -e 's/^CONFIG_DEBUG=.*/CONFIG_DEBUG=m/g' < ./config.bak > ./config
nwindebug: realclean nwindebugconfig dep all
	
winconfig: 
	echo 'CURSESLIB=pdcurses' >> settings
	bash ./configure
	mv ./config ./config.bak
	sed -e '{s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=n/g;s/LINKINDYN.*file.plug/#&/g;}' < ./config.bak > ./config
windebugconfig2: 
	echo 'CURSESLIB=pdcurses' >> settings
	bash ./configure
	mv ./config ./config.bak
	sed -e '{s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=m/g;s/LINKINDYN.*file.plug/#&/g;}' < ./config.bak > ./config
windebugconfig: 
	echo 'CURSESLIB=pdcurses' >> settings
	bash ./configure
	mv ./config ./config.bak
	sed -e '{s/^#export BIOSDISK=y/export BIOSDISK=y/g;s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=m/g;s/LINKINDYN.*file.plug/#&/g;}' < ./config.bak > ./config

tryconfig: 
	mv ./config ./config.bak
	sed -e '{s/^#export BIOSDISK=y/export BIOSDISK=y/g;s/^CONFIG_DEBUG=.*/CONFIG_DEBUG=m/g;s/LINKINDYN.*file.plug/#&/g;}' < ./config.bak > ./config

windebug: realclean windebugconfig dep all

winbug:
	make windebug > /tmp/pderror 2>&1 3>&1
src/defines.h.in: configure.in	
	echo '#ifndef DEFINES_H' >src/defines.h.in
	echo '#define DEFINES_H' >>src/defines.h.in
	sed -f mkdefs.sed < configure.in|grep '^#undef'|sort|uniq>> src/defines.h.in
	echo '#endif' >>src/defines.h.in
show:
	echo $(PROGMANEXTRA)


left:
	find . -name *.o* -o -name *.i -o -name *.ii* -o -name *core* -o -name *.exe -o -name *.bak -o -name *~ 
	-ls pkg/work 
	-ls debian/tmp

linuxall: linuxconfig dep all 

DEBPACKAGE=$(DISTPATH)/download/bed_$(VERSION)_i386.deb
DEBPATCH=$(DISTPATH)/download/bed_$(VERSION)_i386.deb.patch

patch: 	$(DEBPACKAGE)
	binpatch $(FULLELFFILE) $(DEBPACKAGE) $(DEBPATCH) -c -l -O

deb: 	$(DEBPACKAGE)

debstart:
	cat debhead > $@
	./getsize $(FULLELFFILE) >>$@
$(DEBPACKAGE):debstart $(FULLELFFILE)
	cat debstart $(FULLELFFILE) >>$@

window:
	ls  -l  '$(ALLUSERSPROFILE)/Menu Start/bed.lnk'

dubwindist:
		make realclean
		make winconfig;make dep;make
		make dubrest

	
dubrest:
	make install
	make dubrestinstalled

dubrestinstalled:
		mv $(WINDIR)/bed.exe $(WINDIR)/bedp.exe
		make realclean
		make nwinconfig;make dep;make
		make install
		mv $(WINDIR)/bed.exe $(WINDIR)/bedn.exe
		make bedpatch
bedpatch:
		cp e:/usr/bin/binpatchg.exe 'c:/Program Files/bed/binpatch.exe'
		binpatch $(WINDIR)/bedp.exe $(WINDIR)/bedn.exe 'c:/Program Files/bed/bedpatch' -c -l -O -u5
		cp $(WINDIR)/bedp.exe $(WINDIR)/bed.exe
towin:
	cp $(DISTPATH)/download/$(PROGRAM)-$(VERSION).src$(TGZSUF) /c/cygwin/home/jka/html/download
	cp $(DISTPATH)/download/$(ELFARGFILE) /c/cygwin/home/jka/html/download

dochier: 
	$(MAKE) -C doc bed.html
	$(MAKE) -C doc bed.txt
	cp doc/bed.html bed.htm
	cp doc/bed.txt bed.txt
	u2d bed.txt


ifneq ($(HAS_RE_SEARCH),y)
src/regex.o:
	$(MAKE) -C  $(REGEX_DIR) regex.o
	cp $(REGEX_DIR)/regex.o src
endif


ls:
	-ls -l    $(ROOTDIR)$(BINDIR)/$(EXEPROGRAM)
	-ls -l    $(ROOTDIR)$(CONFDIRLINK)
	-ls -l  $(ROOTDIR)$(CONFDIR)/.neededbybed
	-ls -l   $(ROOTDIR)$(MENUPATH)/$(PROGRAM)
	-ls -l    $(CONFDIRLINK)
	-ls -l   $(BINDIR)/$(EXEPROGRAM)
	-ls -l   $(CONFDIR)


flags:
	echo $(CFLAGS)


os:
	echo $(OS)
ifeq ($(OpSys),Windows)
	echo window
else
	echo not	
endif

windir:
	echo $(WINDIR)
	echo $(windir)
zipcom:
	echo 	zip -z -r ../html/download/bed-$(VERSION).win32.zip bedwin32.txt  $(CONFDIR) $(BINDIR)/cygwin1.dll $(BINDIR)/$(EXEPROGRAM) '$(ALLUSERSPROFILE)/Menu Start/bed.lnk' 'c:/windows/Start Menu/bed.lnk'

GET=1
res=$(shell if test $(GET) -gt 2;then echo groter;else echo kleiner ;fi)
#res=$(shell echo hallo;echo niets)
gets:
	echo $(res)


copyright:
	ln  LICENSE $(BEDBASE).copyright

pad:
	bash ../html/mkbedpad.sh $(VERSION)


sign2: $(DISTPATH).sign2 
%.sign2:
	-$(PGPSIGNPROG)   --comment $(NONSTATICARGFILE32) $*/download/$(NONSTATICARGFILE32) 
	-$(PGPSIGNPROG)   --comment $(NONSTATICARGFILE64) $*/download/$(NONSTATICARGFILE64) 
	-$(PGPSIGNPROG)   --comment $(SRCARGFILE) $*/download/$(SRCARGFILE) 
	-$(PGPSIGNPROG)   --comment $(WIN32ARGFILE) $*/download/$(WIN32ARGFILE) 
	-$(PGPSIGNPROG)   --comment $(NWIN32ARGFILE) $*/download/$(NWIN32ARGFILE) 
	-$(PGPSIGNPROG)   --comment $(WIN95ARGFILE) $*/download/$(WIN95ARGFILE) 
	-$(PGPSIGNPROG)   --comment $(FREEBSDARGFILE) $*/download/$(FREEBSDARGFILE) 
	-$(PGPSIGNPROG)   --comment $(OPENSOLARISFILE) $*/download/$(OPENSOLARISFILE) 
	-make $*/download/$(LSMFILE) 

