PACKAGE		= acua
VERSION		= 1.14
ARCH		= i386
PKG		= $(PACKAGE)_$(VERSION)
SRC_PKG		= $(PKG).tar.gz
TGZ_PKG		= $(PKG)-bin.tar.gz
RPM_PKG		= $(PACKAGE)-$(VERSION)-1.$(ARCH).rpm
CC		= gcc
OSTYPE		= LINUX
#OSTYPE		= BSD
CCOPTS		= -Wall -O -g -D$(OSTYPE) -DSBIN=\"$(SBIN)\" -DLIB=\"$(LIB)\"
SHLIB		= libacua.so.2
BINS		= $(ROOT_BINS) $(USER_BINS)
ROOT_SCRIPTS	= user_add user_del
ROOT_BINS	= user_addrec user_ban user_delrec user_expire user_foreach \
                  user_kick user_login user_mod user_purge user_renew \
                  user_subscribe user_sync user_touch user_unban \
                  user_unsubscribe user_updated user_verify clean_proc \
                  clean_tmp users_list
USER_SCRIPTS	= acua_stats user_bytes user_data
USER_BINS	= acua_dumpstats user_daysleft user_dump user_pp user_timeleft
PREFIX		= /var/lib/BBSutil
BIN		= $(PREFIX)
SBIN		= $(PREFIX)
LIB		= $(PREFIX)/lib

all:		$(BINS)

bindist:	install
	cp doc/* /usr/src/redhat/BUILD
	unset LD_ELF_PRELOAD ; rpm -bb $(PKG).spec
	rm -rf /usr/src/redhat/BUILD/*
	mv /usr/src/redhat/RPMS/$(ARCH)/$(RPM_PKG) .
	rpm -Uvh --force $(RPM_PKG)
	rm -f $(LIB)/banned_users $(LIB)/acua_users
	tar czvf $(TGZ_PKG) /usr/doc/$(PACKAGE)-$(VERSION)-1/ $(LIB)/ $(PREFIX)/lib/$(SHLIB) $(addprefix $(BIN)/, $(USER_SCRIPTS)) $(addprefix $(BIN)/,$(USER_BINS)) $(addprefix $(SBIN)/, $(ROOT_SCRIPTS)) $(addprefix $(SBIN)/,$(ROOT_BINS))
	make clean	

bininst:	all
	strip $(SHLIB) $(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)/user_login
	chmod 6755 $(SBIN)/user_verify

clean:
	rm -f *~ TAGS core *.o $(SHLIB) $(BINS) lib/*~ lib/TAGS doc/*~ doc/TAGS
	touch * lib/*

dep:		depend

depend:
	$(CC) -D$(OSTYPE) -M *.c > .depend

dist:	srcdist bindist

distclean:	clean
	rm -f $(SRC_PKG) $(TGZ_PKG) $(RPM_PKG)

indent:
	indent *.h *.c
	make clean

install:	bininst
	rm -rf $(LIB)
	mkdir $(LIB)
	mkdir $(LIB)/record
	mkdir $(LIB)/record/archive
	chmod 755 $(LIB)
	install -c -m 0644 lib/* $(LIB)

srcdist:	distclean
	{ \
	  cd .. ; \
	  tar chzvf $(PKG)/$(SRC_PKG) $(PKG)/* ; \
	}

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

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

libacua.o:	libacua.c
	$(CC) $(CCOPTS) -fPIC -c $<

user_updated:	user_updated.o common.o $(SHLIB)
	$(CC) $(CCOPTS) -lm -rdynamic -o $@ $< common.o $(SHLIB)

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

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