VERSION=@PACKAGE_VERSION@
CXXFLAGS=@CXXFLAGS@ @DEFS@
CFLAGS=@CFLAGS@ @DEFS@
CPPFLAGS=@UUINC@ @CPPFLAGS@
LDFLAGS=@LDFLAGS@

CXX=@CXX@
CC=@CC@
STRIP=@STRIP@
LIBS=@LIBS@
LITELIBS=@LITELIBS@

EXEEXT=@EXEEXT@
srcdir=@srcdir@

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
mandir=@mandir@
install=@INSTALL@
install_data=${install} -m 0644
install_bin=${install} -s -m 0755
install_dir=${install} -d

NGET=nget$(EXEEXT)
NGETLITE=ngetlite$(EXEEXT)

all: .autostuff $(NGET) $(NGETLITE)

INSTALLDIRS=$(bindir) $(mandir)/man1
W32DISTTXTFILES=COPYING Changelog FAQ README.win32 nget.txt ngetlite.txt _ngetrc
W32DISTBINFILES=$(NGET) $(NGETLITE)
W32DISTFILES=$(W32DISTTXTFILES) $(W32DISTBINFILES)

OBJS=nget.o status.o prot_nntp.o decode.o texthandler.o sockpool.o sockstuff.o cache.o grouplist.o dupe_file.o file.o file_gz.o termstuff.o path.o misc.o strtoker.o strreps.o myregex.o cfgfile.o argparser.o etree.o nrange.o log.o server.o par.o knapsack.o compat/compat.a par2/par2.a @UULIB@
$(NGET): $(OBJS)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LIBS)

LITEOBJS=lite.o litenntp.o log.o sockstuff.o strreps.o file.o path.o myregex.o compat/compat.a
$(NGETLITE): $(LITEOBJS)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $(LITEOBJS) -o $@ $(LITELIBS)

compat/compat.a: compat/*.c compat/*.h config.h _subconf.h
	$(MAKE) -C compat compat.a
par2/par2.a: par2/*.cpp par2/*.h config.h _subconf.h
	$(MAKE) -C par2 par2.a

@NOUU@@UULIB@: @UUDIR@/*.c @UUDIR@/*.h
@NOUU@	(cd @UUDIR@ && ./configure)
@NOUU@	$(MAKE) -C @UUDIR@ libuu.a

test:
	$(MAKE) -C test test

$(INSTALLDIRS):
	$(install_dir) $@

install_nget: $(INSTALLDIRS) $(NGET)
	$(install_bin) $(NGET) $(bindir)
	$(install_data) nget.1 $(mandir)/man1

install_ngetlite: $(INSTALLDIRS) $(NGETLITE)
	$(install_bin) $(NGETLITE) $(bindir)
	$(install_data) ngetlite.1 $(mandir)/man1

install: install_nget install_ngetlite

nget.txt ngetlite.txt: %.txt: %.1
	man -l $< | sed -e 's/.//g' > $@
_ngetrc: .ngetrc
	cat $< > $@

win32dist: $(W32DISTFILES)
	$(STRIP) $(NGET) $(NGETLITE)
	zip -j -9 -l ../nget-$(VERSION).win32.zip $(W32DISTTXTFILES)
	zip -j -9 ../nget-$(VERSION).win32.zip $(W32DISTBINFILES)
win32dist-static: $(W32DISTFILES)
	-rm $(NGET) $(NGETLITE)
	$(MAKE) CXX="$(CXX) -static" $(NGET) $(NGETLITE)
	$(STRIP) $(NGET) $(NGETLITE)
	zip -j -9 -l ../nget-$(VERSION).win32.zip $(W32DISTTXTFILES)
	zip -j -9 ../nget-$(VERSION).win32.zip $(W32DISTBINFILES)
cygwin32dist: $(W32DISTFILES)
	$(STRIP) $(NGET) $(NGETLITE)
	zip -j -9 -l ../nget-$(VERSION).cygwin32.zip $(W32DISTTXTFILES)
	zip -j -9 ../nget-$(VERSION).cygwin32.zip $(W32DISTBINFILES)
cygwin32dist-static: $(W32DISTFILES)
	-rm $(NGET) $(NGETLITE)
	$(MAKE) CXX="$(CXX) -static" $(NGET) $(NGETLITE)
	$(STRIP) $(NGET) $(NGETLITE)
	zip -j -9 -l ../nget-$(VERSION).cygwin32.zip $(W32DISTTXTFILES)
	zip -j -9 ../nget-$(VERSION).cygwin32.zip $(W32DISTBINFILES) /bin/cygwin1.dll


.autostuff: configure config.h.in config.h Makefile config.status

${srcdir}/configure: configure.in aclocal.m4
	cd ${srcdir} && autoconf

# autoheader might not change config.h.in, so touch a stamp file.
${srcdir}/config.h.in: stamp-h.in
${srcdir}/stamp-h.in: configure.in aclocal.m4
#config.h.top config.h.bot
	cd ${srcdir} && autoheader
	echo timestamp > ${srcdir}/stamp-h.in

${srcdir}/config.h: stamp-h
${srcdir}/stamp-h: config.h.in stamp-h.in config.status
	./config.status

Makefile: Makefile.in config.status
	./config.status

config.status: configure
	./config.status --recheck

#dist:
#	-make -C $(UUDIR) distclean
#	cd ..;tar -czhf nget/distro/nget-`egrep "nget v[0-9.]+ -" nget/nget.cc | sed "s/.*v\([0-9.]\+\).*/\1/"`-withuulib.tar.gz nget/README nget/Changelog nget/COPYING nget/*.cc nget/*.h nget/Makefile nget/nget.1 nget/uulib/
#	cd ..;tar -czhf nget/distro/nget-`egrep "nget v[0-9.]+ -" nget/nget.cc | sed "s/.*v\([0-9.]\+\).*/\1/"`.tar.gz nget/README nget/Changelog nget/COPYING nget/*.cc nget/*.h nget/Makefile nget/nget.1

clean:
	-rm $(NGET) $(NGETLITE) *.o *.d nget.txt ngetlite.txt _ngetrc
	-$(MAKE) -C uulib clean
	-$(MAKE) -C test clean
	-$(MAKE) -C par2 clean
	-$(MAKE) -C compat clean

distclean: clean
	-$(MAKE) -C uulib distclean
	-$(MAKE) -C test distclean
	-$(MAKE) -C par2 distclean
	-$(MAKE) -C compat distclean
	-rm config.status config.h config.cache config.log Makefile stamp-h nget.spec
	-rm -r autom4te.cache
	-find . \( -name 'CVS' -o -name '.cvsignore' -o -name '*~' -o -name '.*~' -o -name '.#*' -o -name '.*.sw[po]' -o -name '*.rej' -o -name '*.orig' -o -name 'tags' \) -print0 | xargs -0 rm -r

distclean-killuu: distclean
	-rm -r uulib

-include *.d

.PHONY: all clean install dist distclean .autostuff test


syntax highlighted by Code2HTML, v. 0.9.1