# Makefile for quota utilities
#Configuration
RPC=0
RPC_SERVER=0
EXT2_DIRECT=0
CC = gcc
INSTALL       = install
ROOTDIR       =
BIN_OWNER     = root
BIN_GROUP     = bin
DEF_SBIN_MODE = 555
DEF_BIN_MODE = 555
DEF_MAN_MODE  = 444
#end of configuration

INCLUDE = common.h quota_io.h quotasys.h
OBJS = quota_io.o quotasys.o common.o setquota.o convertquota.o quotadebug.o quotaon.o quota.o repquota.o quotacheck.o edquota.o 
LIBOBJS = quota_io.o quotasys.o common.o
DIR = quota-3.00
CFLAGS = -Wall -O2 -g
#CFLAGS = -Wall -O2
ifeq ($(RPC),1)
  CFLAGS += -DRPC
endif

ifeq ($(EXT2_DIRECT),1)
  CFLAGS += -DEXT2_DIRECT
endif

PROGS = setquota convertquota quotadebug quotaon quotastats quota repquota quotacheck edquota
ifeq ($(RPC_SERVER),1)
  PROGS += rpc.rquotad
endif

.PHONY : all clean dist install

all: $(PROGS)

$(OBJS): $(INCLUDE)

setquota: setquota.o $(LIBOBJS)

convertquota: convertquota.o $(LIBOBJS)

quotadebug: quotadebug.o $(LIBOBJS)

quotaon: quotaon.o quotasys.o common.o

repquota: repquota.o $(LIBOBJS)

quotastats: quotastats.c

edquota: edquota.o $(LIBOBJS)

rpc.rquotad: rquota_server.o rquota_svc.o rquota_xdr.o $(LIBOBJS) rquota.h
	$(CC) $(LDFLAGS) -o $@ rquota_server.o rquota_svc.o rquota_xdr.o $(LIBOBJS) -lbsd

ifeq ($(RPC),0)
quota: quota.o quotasys.o common.o
else
quota: quota.o quotasys.o common.o rquota_clnt.o rquota_xdr.o rquota.h
	$(CC) $(LDFLAGS) -o $@ quota.o quotasys.o common.o rquota_clnt.o rquota_xdr.o
endif

ifeq ($(EXT2_DIRECT),0)
quotacheck: quotacheck.o $(LIBOBJS)
else
quotacheck: quotacheck.o $(LIBOBJS)
	$(CC) $(LDFLAGS) -o $@ quotacheck.o $(LIBOBJS) -lext2fs -lcom_err
endif

clean:
	rm -f *.o $(PROGS)

dist:
	cd ..; tar czvvf $(DIR).tar.gz $(DIR)/*.[ch123456789] $(DIR)/rquota.x $(DIR)/Makefile

install: all	
	-$(INSTALL) -s -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_SBIN_MODE) \
	quotacheck quotaon $(ROOTDIR)/sbin
	-$(INSTALL) -s -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_SBIN_MODE) \
	edquota repquota quotastats setquota $(ROOTDIR)/usr/sbin
	-$(INSTALL) -s -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_BIN_MODE) quota $(ROOTDIR)/usr/bin
	-if [ -f rpc.rquotad ]; then $(INSTALL) -s -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_SBIN_MODE) rpc.rquotad $(ROOTDIR)/usr/sbin; fi
	-$(INSTALL) -o $(BIN_OWNER) -g root -m 644 rquota.h rquota.x $(ROOTDIR)/usr/include/rpcsvc
	-$(INSTALL) -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_MAN_MODE) *.1 $(ROOTDIR)/usr/man/man1
	-$(INSTALL) -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_MAN_MODE) *.2 $(ROOTDIR)/usr/man/man2
	-$(INSTALL) -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_MAN_MODE) *.3 $(ROOTDIR)/usr/man/man3
	-$(INSTALL) -o $(BIN_OWNER) -g $(BIN_GROUP) -m $(DEF_MAN_MODE) *.8 $(ROOTDIR)/usr/man/man8
