# Makefile for smbmount
# $Id: Makefile.smbmount,v 1.3 1995/01/03 18:25:52 tml Exp $

# The HP-UX rpcgen produces code that is buggy unless "hpux" is defined!
# The following incredible code snippet is generated:
# #ifdef hpux
# 	memset(&argument, 0, sizeof(argument));
# #else  hpux
# 	memset(&argument, sizeof(argument));
# #endif hpux
#

PURIFY = purify
# Your C compiler (ANSI C if available)
CC = $(PURIFY) c89 -D_HPUX_SOURCE -Dhpux

# rpcgen invocation
RPCGEN = rpcgen

# BSD-type install program
INSTALL = gnuinstall

# makedepend if you have it
MAKEDEPEND = /usr/bin/X11/makedepend

# Extra defines possibly needed:
# -DDONT_HAVE_STRERROR
# -DDONT_HAVE_MEMMOVE			
# -DNEED_MOUNT_FAKE		# Use mount -f to add entry to mtab
DEFINES =

# Use -g to debug, -O if you trust your optimizer
CDEBUGFLAGS = -g

# Where to put smbmount and smblogin
ETCDIR = /usr/local/etc
BINDIR = /usr/local/bin

# Samba's include files
SAMBA = /usr/local/src/samba-1.8.06
INCLUDES = -I$(SAMBA)

# Extra libraries possibly needed.
EXTRALIBS =

# Samba defines. SMBRUN must be defined, but isn't used in smbmount
SAMBACFLAGS = -DSMBRUN=\"foo\" -DHPUX -DDEBUGFILE=\"/tmp/smbmount.debug\"

CFLAGS = ${CDEBUGFLAGS} ${DEFINES} ${INCLUDES} ${SAMBACFLAGS}

# Lint flags
LINTFLAGS = -Aa -D_HPUX_SOURCE -uvx

LDFLAGS = ${CDEBUGFLAGS}

NFS_SRCS = nfs_prot_svc.c nfs_prot_xdr.c nfs_prot.h

SMBMOUNT_SRCS = smbmount.c smbmount.h smbm_svc_subr.c log_nfs.c log_nfs.h util.h
SAMBA_SRCS = util.c
SMBMOUNT_OBJS = smbmount.o smbm_svc_subr.o nfs_prot_svc.o nfs_prot_xdr.o log_nfs.o smbm_rev.o
SAMBA_OBJS = util.o

XFILES = nfs_prot.x

SRCS = ${SMBMOUNT_SRCS} ${NFS_SRCS} ${MOUNT_SRCS} ${SAMBA_SRCS}

OTHER = README NOTES TODO ChangeLog Makefile smblogin.sh smbmount.8 smblogin.1

DIST = ${OTHER} ${SMBMOUNT_SRCS} ${XFILES}

all: smbmount

install: smbmount smblogin.sh
	${INSTALL} smbmount ${ETCDIR}/smbmount
	${INSTALL} smblogin.sh ${BINDIR}/smblogin

smbmount: ${SMBMOUNT_OBJS} ${SAMBA_OBJS}
	${CC} ${LDFLAGS} -o $@ ${SMBMOUNT_OBJS} ${SAMBA_OBJS} ${EXTRALIBS}

rmlinks:
	rm -f util.c

util.c: 
	ln -s $(SAMBA)/util.c .

nfs_prot.h: nfs_prot.x
	${RPCGEN} -h -o $@ $?

nfs_prot_svc.c: nfs_prot.x
	${RPCGEN} -m -o $@ $?

nfs_prot_xdr.c: nfs_prot.x
	${RPCGEN} -c -o $@ $?
	sed -e 's/^xdr_nfscookie/hidden_&/' < $@ > $@.sedited
	mv $@.sedited $@

lint:
	lint ${CFLAGS} ${LINTFLAGS} ${SMBMOUNT_SRCS}

clean:	rmlinks
	rm -f smbmount *.o ${NFS_SRCS}

depend: ${SRCS}
	${MAKEDEPEND} ${CFLAGS} ${SRCS}

tar:	${DIST}
	tar cfh smbmount-`expr "\`head -1 smbm_rev.c\`" : ".*: *\([^ ]*\)"`.tar ${DIST}

Revision=Revision
smbm_rev.c:
	(echo 'char revision[] = "$$${Revision}: $$";';			\
	echo 'char idents[] = "\\';					\
	ident ${SMBMOUNT_SRCS} | sed -e 's,$$,\\n\\,' -e 's,Id,SourceId,';	\
	echo '";') >smbm_rev.c

newversion: ${SMBMOUNT_SRCS}
	rcs -l smbm_rev.c
	rm -f smbm_rev.c
	${MAKE} smbm_rev.c
	date | ci -f -u smbm_rev.c 

shar:
	shar -h ${DIST}

# For those without makedepend, here are dependencies on the rpcgen-generated
# headers to make building easier:

smbm_svc_subr.o: nfs_prot.h
log_nfs.o: nfs_prot.h
nfs_prot_svc.o: nfs_prot.h
nfs_prot_xdr.o: nfs_prot.h

# Here follows makedepend-generated dependencies, if any:

