PACKAGE         = acua
VERSION         = 3.01
ARCH            = i386
PKG             = $(PACKAGE)-$(VERSION)
SRC_PKG         = $(PKG).tar.gz
RPM_SPEC        = $(PKG).spec
RPM             = $(PKG)-1
RPM_PKG         = $(RPM).$(ARCH).rpm
SRPM_PKG        = $(RPM).src.rpm
CC              = g++
CCOPTS          = -Wall -O -g -DBIN=\"$(BIN)\" -DSBIN=\"$(SBIN)\" -DLIB=\"$(LIB)\"
SHLIB           = libacua.so.2
BINS            = $(ROOT_BINS) $(USER_BINS)
ROOT_SCRIPTS    = acua_adduser acua_deluser acua_nounsub
ROOT_BINS       = acua_login acua_logout acua_updated acua_verify clean_proc \
		  clean_tmp acua117-200 acua200-202
USER_SCRIPTS    = acua_stats acua_bytes acua_viewRec
USER_BINS       = acua
ACUA_OBJS       = acua_addRec acua_ban acua_daysLeft acua_delRec \
                  acua_dumpStats acua_dump acua_expire acua_forEach \
                  acua_kickUser acua_lock acua_modRec acua_purge \
                  acua_pp acua_renew acua_subscribe acua_sync \
                  acua_touch acua_timeLeft acua_unBan acua_unLock \
                  acua_unSubscribe
PREFIX          = /usr
BIN             = $(PREFIX)/bin
SBIN            = $(PREFIX)/sbin
LIB             = $(PREFIX)/lib/acua

all:		$(BINS)

bindist:	distclean
	cd .. ; \
	tar chzvf $(PKG)/$(SRC_PKG) $(PKG)/*
	cp $(RPM_SPEC) /usr/src/redhat/SPECS
	cp $(SRC_PKG) /usr/src/redhat/SOURCES
	cd /usr/src/redhat/SPECS ; \
	unset LD_ELF_PRELOAD ; \
	rpm -ba $(RPM_SPEC)
	mv /usr/src/redhat/SRPMS/$(SRPM_PKG) .
	mv /usr/src/redhat/RPMS/$(ARCH)/$(RPM_PKG) .
	rm /usr/src/redhat/SPECS/$(RPM_SPEC)
	rm /usr/src/redhat/SOURCES/$(SRC_PKG)
	rm -rf /usr/src/redhat/BUILD/$(PKG)
	rpm -Uvh --force $(RPM_PKG)
	make clean

bininst:	all
	strip --strip-debug $(SHLIB)
	strip $(ROOT_BINS) $(USER_BINS)
	install -c -m 0755 $(SHLIB) $(PREFIX)/lib
	ldconfig
	install -c -m 0700 $(ROOT_SCRIPTS) $(SBIN)
	install -c -m 0700 $(ROOT_BINS) $(SBIN)
	install -c -m 0755 $(USER_SCRIPTS) $(BIN)
	install -c -m 0755 $(USER_BINS) $(BIN)
	chmod 6755 $(SBIN)/acua_login
	chmod 6755 $(SBIN)/acua_logout
	chmod 6755 $(SBIN)/acua_verify

nostrip:	all
	install -c -m 0755 $(SHLIB) $(PREFIX)/lib
	ldconfig
	install -c -m 0700 $(ROOT_SCRIPTS) $(SBIN)
	install -c -m 0700 $(ROOT_BINS) $(SBIN)
	install -c -m 0755 $(USER_SCRIPTS) $(BIN)
	install -c -m 0755 $(USER_BINS) $(BIN)
	chmod 6755 $(SBIN)/acua_login
	chmod 6755 $(SBIN)/acua_logout
	chmod 6755 $(SBIN)/acua_verify


clean:
	rm -f *~ TAGS core *.o $(SHLIB) $(BINS) lib/*~ lib/TAGS doc/*~ doc/TAGS .depend build
	rm -f *.rpm *.gz *.bz2
	rm -rf debian/tmp

dep:		depend

depend:
	$(CC) -M *.cc > .depend

dist:           bindist
	make clean
	rm -rf $(LIB).old

distclean:	clean
	rm -rf $(SRC_PKG) $(RPM_PKG) $(SRPM_PKG)
	touch * lib/*

install:	bininst
	if [ -d $(LIB) ]; then \
           rm -rf $(LIB).old ; \
           mv $(LIB) $(LIB).old ; \
	fi
	mkdir $(LIB)
	mkdir $(LIB)/record
	mkdir $(LIB)/record/archive
	chmod 755 $(LIB)
	install -c -m 0644 lib/* $(LIB)

ifeq (.depend, $(wildcard .depend))
  include .depend
endif

%.o :		%.cc
	$(CC) $(CCOPTS) -c -o $@ $<

$(SHLIB):	libacua.o hash.o $(addsuffix .o,$(ACUA_OBJS))
	$(CC) $(CCOPTS) -shared -Wl,-soname,$@ -o $@ $< hash.o $(addsuffix .o,$(ACUA_OBJS))

% :		%.o common.o $(SHLIB)
	$(CC) $(CCOPTS) -o $@ $< common.o $(SHLIB)

#% :		%.cc common.o libacua.o
#	$(CC) $(CCOPTS) -o $@ $< common.o libacua.o hash.o $(addsuffix .o,$(ACUA_OBJS))
