# Edited for Debian GNU/Linux.
DESTDIR =

# This should be very simple to adapt to the needs of any system.
prefix  = $(DESTDIR)/usr/local
bin     = $(prefix)/bin
man1    = $(prefix)/man/man1
etc     = $(DESTDIR)/etc
CC      = gcc -pipe
CCE     = 
CCO     = -O4 -fomit-frame-pointer
CCW     = -Wall# -pedantic
CCG     = -g
CFLAGS  = $(CCE) $(CCW) $(CCO) $(CCG)
cc      = $(CC) $(CFLAGS)
LDFLAGS = # -s -static
INSTALL = cp -pf
RM      = rm -f

PROGRAMS = cls
DOCS = cls.1
RCS = eg.clsrc

.PHONY: all install clean

all:	$(PROGRAMS)

clsrc.h: eg.clsrc
	sed -e 's/^/"/' -e 's/\\/\\\\/g' -e 's/$$/\\n"/' < eg.clsrc > clsrc.h

version.h: .version
	echo -n 'char *version = "cls version ' > version.h;\
	tr '\n' '"' < .version >> version.h;\
	echo ';' >> version.h

cls:	cls.c getopt_r.h getopt_r.c itab.c clsrc.h version.h
	$(cc) cls.c $(LDFLAGS) -o cls

install: all
	-mkdir -p $(bin)
	$(INSTALL) $(PROGRAMS) $(bin)
	-mkdir -p $(man1)
	$(INSTALL) $(DOCS) $(man1)
	-mkdir -p $(etc)
	$(INSTALL) $(RCS) $(etc)/clsrc

deinstall:
	cd $(bin); $(RM) $(PROGRAMS)
	cd $(man1); $(RM) $(DOCS)
	cd $(etc); $(RM) clsrc

srcdist: clean
	mkdir ../cls-`cat .version`
	cp -pr . ../cls-`cat .version`
	find ../cls-`cat .version` -name CVS -o -name .hg\* | xargs rm -rf
	rm -f ../cls-`cat .version`/.cvsignore
	rm -rf ../cls-`cat .version`/debian
	rm -rf ../cls-`cat .version`/*.tgz
	tar czvf ../cls-`cat .version`.tgz -C .. cls-`cat .version`
	rm -rf ../cls-`cat .version`
	mv ../cls-`cat .version`.tgz .

DISTFILES=/usr/portage/distfiles
PORTAGE=/usr/local/portage
PACKAGE=sys-apps/cls
PKG_DIR=$(PORTAGE)/$(PACKAGE)

gentoo: cls.ebuild srcdist
	mv cls-`cat .version`.tgz $(DISTFILES)
	cp -pr   cls.ebuild   $(PKG_DIR)/cls-`cat .version`.ebuild
	ebuild   $(PKG_DIR)/cls-`cat .version`.ebuild   digest
	emerge \=cls-`cat .version`

clean:
	$(RM) -r $(PROGRAMS) clsrc.h version.h *core *.out
