#
# iacd Makefile
#
# Idea taken from VideoLAN projects, Thanks guys.
#

ifeq ($(shell [ ! -r Makefile.opts ] && echo 1),)
    include Makefile.opts
endif

CORE := log net util iacd timer irc servlink conf dump script dns
IACD_PASSWD := iacd_passwd
DOC := admin user

IACD_OBJ := $(CORE:%=%.o)
IACD_PASSWD_OBJ := $(IACD_PASSWD:%=%.o)
DOC_LIST_DVI := $(DOC:%=doc/%.dvi)
DOC_LIST_PS := $(DOC:%=doc/%.ps)
DOC_LIST_PDF := $(DOC:%=doc/%.pdf)

export

all: Makefile.opts iacd iacd_passwd

Makefile.opts:
	@echo "**** No configuration found, please run ./configure"
	@exit 1

clean: iacd-clean iacd_passwd-clean doc-clean

iacd-clean:
	rm -f $(IACD_OBJ)
	rm -f iacd

iacd_passwd-clean:
	rm -f $(IACD_PASSWD_OBJ)
	rm -f iacd_passwd

doc-clean:
	rm -f doc/*.aux
	rm -f doc/*.dvi
	rm -f doc/*.log
	rm -f doc/*.toc
	rm -f doc/*.ps
	rm -f doc/*.pdf
	

iacd: Makefile.opts Makefile $(IACD_OBJ)
	$(CC) $(CFLAGS) -o $@ $(IACD_OBJ) $(LDFLAGS) $(IACD_LIB)

iacd_passwd: Makefile.opts Makefile $(IACD_PASSWD_OBJ)
	$(CC) $(CFLAGS) -o $@ $(IACD_PASSWD_OBJ) $(LDFLAGS) $(IACD_PASSWD_LIB)

distclean: clean
	rm -f Makefile.opts
	rm -f defs.h
	rm -Rf .dep
	rm -f config*status config*cache config*log
	rm -rf autom4te.cache

doc: $(DOC_LIST_DVI) $(DOC_LIST_PS) $(DOC_LIST_PDF)

doc/%.dvi: doc/%.tex
	@cd doc && latex $(patsubst doc/%, %, $<)

doc/%.ps: doc/%.dvi
	@cd doc && dvips $(patsubst doc/%, %, $<)

doc/%.pdf: doc/%.dvi
	@cd doc && dvipdf $(patsubst doc/%, %, $<)

show:
	@echo CC: $(CC)
	@echo CFLAGS: $(CFLAGS)
	@echo LDFLAGS: $(LDFLAGS)
	@echo IACD_OBJ: $(IACD_OBJ)
	@echo IACD_LIB: $(IACD_LIB)
	@echo IACD_PASSWD_OBJ: $(IACD_PASSWD_OBJ)
	@echo IACD_PASSWD_LIB: $(IACD_PASSWD_LIB)

install: all
	mkdir -p $(DESTDIR)$(prefix)/bin/
	mkdir -p $(DESTDIR)$(sysconfdir)
	mkdir -p $(DESTDIR)$(mandir)/man1/
	install -o root -g root -m 0755 -s iacd $(DESTDIR)$(prefix)/bin/
	install -o root -g root -m 0755 -s iacd_passwd $(DESTDIR)$(prefix)/bin
	install -o root -g root -m 0644 iacd.1 $(DESTDIR)$(mandir)/man1/
	install -o root -g root -m 0644 iacd_passwd.1 $(DESTDIR)$(mandir)/man1/
	install -o root -g root -m 0640 iacd.conf $(DESTDIR)$(sysconfdir)/

release: distclean
	@./release
