#
# Makefile for the Solaris 5.6 wrapfs
#
# must use GNU Make.

VPATH=.:../common

SRCS =	ht.c print.c vfs.c mmap.c vnode.c fist_wrapfs.c FIST_MOD_SRC FIST_AUX_SRC

OBJS = ${SRCS:.c=.o}

TARGET = wrapfs

BINS = fist_ioctl fist_mount fist_umount fist_statvfs FIST_USER_BINS

INSTALL_DIR = /etc/local/kernel/fs

SHELL = /bin/sh
CC = gcc
LD = ld
CPP = $(CC)
MKDEP=$(CPP) -M $(DEPFLAGS)

COMMON_OPTS = -DFISTGEN -g -O2 -Wall -Wno-format -Wno-unused -Werror #-MD
INCLUDE_FLAGS = -I.
KERNEL_OPTS = -D_KERNEL -DDEBUG
CFLAGS = $(KERNEL_OPTS) $(COMMON_OPTS) $(INCLUDE_FLAGS)
UCFLAGS = $(COMMON_OPTS) $(INCLUDE_FLAGS)
DEPFLAGS = $(KERNEL_OPTS) $(COMMON_OPTS) $(INCLUDE_FLAGS)
LDFLAGS = -r

INSTALL = install
INSTALL_FLAGS = -m 755 # do not use -s to strip kernel modules!

##############################################################################

all: $(TARGET) $(BINS)

$(TARGET): $(OBJS)
	$(LD) $(LDFLAGS) -o $@ $(OBJS)

$(OBJS): Makefile wrapfs.h fist.h fist_wrapfs.h

fist_ioctl: fist_ioctl.c
	${CC} -o $@ $? ${UCFLAGS}
fist_mount: fist_mount.c
	${CC} -o $@ $? ${UCFLAGS}
fist_umount: fist_umount.c
	${CC} -o $@ $? ${UCFLAGS}
fist_statvfs: fist_statvfs.c
	${CC} -o $@ $? ${UCFLAGS}

FIST_UBIN_RULES

install: $(INSTALL_DIR)/$(TARGET)

$(INSTALL_DIR)/$(TARGET): $(TARGET)
	$(RM) $(RMFLAGS) $(INSTALL_DIR)/$(TARGET)
	$(INSTALL) $(INSTALL_FLAGS) $(TARGET) $(INSTALL_DIR)

depend: $(SRCS)
	$(MKDEP) $^ > .depend

clean:
	$(RM) $(RMFLAGS) *~ \#* *.o core $(TARGET) .depend *.d $(BINS)

# include auto-generated dependencies?
#-include *.d
