#
# Makefile for the linux ncp-filesystem routines.
#

USERUTILS = slist pqlist nwfsinfo pserver nprint nsend ncopy nwpasswd
USERUTILS += nwbols nwbocreate nwborm nwboprops 
USERUTILS += nwbpcreate nwbprm nwbpvalues nwbpadd nwbpset
USERUTILS += nwgrant nwrevoke nwuserlist nwrights
UIDUTILS = ncpmount ncpumount
SBINUTILS = nwmsg

UTIL_EXECS = $(USERUTILS) $(UIDUTILS) $(SBINUTILS)
UTILS = $(addprefix $(INTERM_BINDIR)/,$(UTIL_EXECS))

CFLAGS = -Wall $(INCLUDES) $(KERNELD) -DNCPFS_VERSION=\"$(VERSION)\"
CC = gcc

#CFLAGS += -g
CFLAGS += -O2

ifeq ($(HAVE_ELF),yes)
PIC_FLAG = -fPIC
NCP_LIB = libncp.so.1.0
LIB_LINK_COMMAND = gcc -shared -Wl,-soname,libncp.so.1 -o $(NCP_LIB)
INSTALL_LIB = install $(NCP_LIB) -m 755 /lib; \
	ln -sf $(NCP_LIB) /lib/libncp.so.1; \
	ldconfig
export PIC_FLAG
else
NCP_LIB = libncp.a
LIB_LINK_COMMAND = ar r libncp.a
endif

default:
	make -C ..

all: $(UTILS) ncptest

install: all
	for i in $(UTIL_EXECS); \
	do install $(INTERM_BINDIR)/$$i -m 755 $(BINDIR); done
	for i in $(UIDUTILS); \
	do install $(INTERM_BINDIR)/$$i -m 4755 $(BINDIR); done
	for i in $(SBINUTILS); \
	do install $(INTERM_BINDIR)/$$i -m 755 $(SBINDIR); done
	$(INSTALL_LIB)

$(UTILS): $(addsuffix .o,$(UTIL_EXECS)) $(NCP_LIB)
	$(CC) -o $@ $(addsuffix .o,$(notdir $@)) -L. -lncp

ncplib.o: ncplib.c ncplib.h ncplib_err.h
	$(CC) $(CFLAGS) $(PIC_FLAG) -finline-functions -c ncplib.c

COM_ERR_CFILES = com_err/com_err.c com_err/error_message.c com_err/et_name.c \
	com_err/init_et.c

$(NCP_LIB): ncplib.o ncplib_err.o $(COM_ERR_CFILES)
	make -C com_err
	$(LIB_LINK_COMMAND) ncplib.o ncplib_err.o \
	com_err/com_err.o com_err/error_message.o com_err/et_name.o \
	com_err/init_et.o
	ln -sf libncp.so.1.0 libncp.so.1
	ln -sf libncp.so.1 libncp.so
	export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH

ncplib_err.o: ncplib_err.h ncplib_err.c
	$(CC) $(CFLAGS) $(PIC_FLAG) -c ncplib_err.c

ncplib_err.h: ncplib_err.et
	com_err/compile_et ncplib_err

ncplib_err.c: ncplib_err.et
	com_err/compile_et ncplib_err

test: test.o ncplib.o
	$(CC) -o test test.o ncplib.o

ncptest: ncptest.o $(NCP_LIB)
	$(CC) -o ncptest ncptest.o -L. -lncp

dep: ncplib_err.h
	make -C com_err dep
	$(CPP) -M $(INCLUDES) *.c > .depend

clean:
	make -C com_err clean
	rm -f *.o *~ slist test ncptest ncplib_err.[ch]
	rm -f libncp.*

mrproper: clean
	make -C com_err mrproper
	rm -f $(UTILS) .depend $(DISTFILE)

#
# include a dependency file if one exists
#
ifeq (.depend,$(wildcard .depend))
include .depend
endif

