#
#
# $Id: Makefile,v 1.13 2000-07-27 02:23:38+09 kabe Exp $
#

all:
	@echo "Select 'make method1' 'make method2' or 'make method3'."
install:
	@echo "Select 'make install-method1' 'make install-method2' or 'make install-method3'."

#
# Targets:
#	install-method1		Installation of Method 1.
#	install-method2		Installation of Method 2.
#	install-method3		Installation of Method 3.
#	uninstall		Uninstall.
#	install-fstyp		Install "fstyp" module for fdiskfs.
#	install-fdiskize	Install "fdiskize" tool.
#
# The Recommended is to "make install-method3 install-fstyp install-fdiskize"
#


CC = gcc
PICFLAGS = -fpic
STDFLAGS= -g -O
BINDIR = /usr/local/bin

RM = rm -f
RMDIR = rm -fr
INSTALL = /usr/ucb/install
BINUSR = bin
BINGRP = bin
INSTPGMFLAGS  = -s -m 0755
INSTSPGMFLAGS = -s -m 0755 -o $(BINUSR) -g $(BINGRP)
INSTSLIBFLAGS = -m 0755 -o $(BINUSR) -g $(BINGRP)
LD = ld
SHAREDLDFLAGS = -G -z text

METHOD1_TARGET = m1_pcfs_mount
METHOD2_TARGET = m2_pcfs_mount m2_rmmount
SOFDV=1
SOPCV=1
METHOD3_TARGET = ident_fdiskfs.so.$(SOFDV) ident_pcfs.so.$(SOPCV) m3_fdiskfs_mount m2_rmmount

CFLAGS = -DSVX=\"$(SVX)\" $(STDFLAGS)

LIBPCFS = /usr/lib/fs/pcfs
MOUNT   = $(LIBPCFS)/mount
RMMOUNT = /usr/sbin/rmmount
SVX = .dist
IDENT_PCFS = $(LIBPCFS)/ident_pcfs.so.1
LIBFDISKFS = /usr/lib/fs/fdiskfs

PKG=VEGAmtpcv
VERSION=2.0
PKGDIR=pkg.m3
# If you want to build the package on device directly, change this
PKGDEV=$(PKGDIR)/pkgdev

PASSSUBDIR=SOFDV=$(SOFDV) SOPCV=$(SOPCV) SVX=$(SVX) BINDIR=$(BINDIR)


method1: $(METHOD1_TARGET)

install-method1: $(METHOD1_TARGET)
	test -x $(DESTDIR)$(MOUNT)$(SVX) || mv $(DESTDIR)$(MOUNT) $(DESTDIR)$(MOUNT)$(SVX)
	$(INSTALL) $(INSTSPGMFLAGS) m1_pcfs_mount $(DESTDIR)$(MOUNT)


method2: $(METHOD2_TARGET)

install-method2: $(METHOD2_TARGET)
	test -x $(DESTDIR)$(MOUNT)$(SVX) || mv $(DESTDIR)$(MOUNT) $(DESTDIR)$(MOUNT)$(SVX)
	$(INSTALL) $(INSTSPGMFLAGS) m2_pcfs_mount $(DESTDIR)$(MOUNT)
	test -x $(DESTDIR)$(RMMOUNT)$(SVX) || mv $(DESTDIR)$(RMMOUNT) $(DESTDIR)$(RMMOUNT)$(SVX)
	$(INSTALL) $(INSTSPGMFLAGS) m2_rmmount $(DESTDIR)$(RMMOUNT)


method3: $(METHOD3_TARGET)

ident_fdiskfs.so.$(SOFDV): m3_ident_fdiskfs.o
	$(LD) -o $@ $(SHAREDLDFLAGS) m3_ident_fdiskfs.o

ident_pcfs.so.$(SOPCV): m3_ident_pcfs.o
	$(LD) -o $@ $(SHAREDLDFLAGS) m3_ident_pcfs.o

m3_ident_fdiskfs.o: m3_ident_fdiskfs.c
	$(CC) -c $(CFLAGS) $(PICFLAGS) $*.c

m3_ident_pcfs.o: m3_ident_pcfs.c
	$(CC) -c $(CFLAGS) $(PICFLAGS) $*.c

m3_fdiskfs_mount: m2_pcfs_mount.c
	$(CC) -o $@ -DSVX=\"\" -DALWAYS_ADD_C $(STDFLAGS)  m2_pcfs_mount.c
	
install-method3: $(METHOD3_TARGET)
	if test ! -d $(DESTDIR)$(LIBFDISKFS); then \
		mkdir $(DESTDIR)$(LIBFDISKFS); \
	fi
	$(INSTALL) $(INSTSLIBFLAGS) ident_fdiskfs.so.$(SOFDV) $(DESTDIR)$(LIBFDISKFS)
	$(INSTALL) $(INSTSPGMFLAGS) m3_fdiskfs_mount $(DESTDIR)$(LIBFDISKFS)/mount
	test -f $(DESTDIR)$(IDENT_PCFS)$(SVX) || mv $(DESTDIR)$(IDENT_PCFS) $(DESTDIR)$(IDENT_PCFS)$(SVX)
	$(INSTALL) $(INSTSLIBFLAGS) ident_pcfs.so.$(SOPCV) $(DESTDIR)$(IDENT_PCFS)
	test -x $(DESTDIR)$(RMMOUNT)$(SVX) || mv $(DESTDIR)$(RMMOUNT) $(DESTDIR)$(RMMOUNT)$(SVX)
	$(INSTALL) $(INSTSPGMFLAGS) m2_rmmount $(DESTDIR)$(RMMOUNT)
	@$(MAKE) postinst-message

postinst-message:
	@echo ================
	@echo Now add the following to /etc/rmmount.conf:
	@echo "	ident fdiskfs ident_fdiskfs.so rmscsi"
	@grep -s 'ident_fdiskfs.so' $(DESTDIR)/etc/rmmount.conf >/dev/null && echo '	(you already have it)'
	@echo and follwing to /etc/vold.conf:
	@echo "	unsafe ufs hsfs pcfs fdiskfs"
	@grep -s 'unsafe .*fdiskfs' $(DESTDIR)/etc/vold.conf >/dev/null && echo '	(you already have it)'
	@echo ================


uninstall::
	-test -x $(DESTDIR)$(MOUNT)$(SVX)   && mv $(DESTDIR)$(MOUNT)$(SVX) $(DESTDIR)$(MOUNT)
	-test -x $(DESTDIR)$(RMMOUNT)$(SVX) && mv $(DESTDIR)$(RMMOUNT)$(SVX) $(DESTDIR)$(RMMOUNT)
	-test -f $(DESTDIR)$(IDENT_PCFS)$(SVX) && mv $(DESTDIR)$(IDENT_PCFS)$(SVX) $(DESTDIR)$(IDENT_PCFS)
	-test -d $(DESTDIR)$(LIBFDISKFS)    && rm -fr $(DESTDIR)$(LIBFDISKFS)

clean::
	$(RM) core a.out *.o *~
	$(RM) m1_pcfs_mount m2_pcfs_mount m2_rmmount
	$(RM) ident_fdiskfs.so.$(SOFDV) ident_pcfs.so.$(SOPCV)
	$(RM) m3_fdiskfs_mount


fstyp: fstyp_pcfs fstyp_fdiskfs

fstyp_pcfs: fstyp.o m3_ident_pcfs.o
	$(CC) -o $@ fstyp.o m3_ident_pcfs.o

fstyp_fdiskfs: fstyp.o m3_ident_fdiskfs.o
	$(CC) -o $@ fstyp.o m3_ident_fdiskfs.o

install-fstyp: fstyp_pcfs fstyp_fdiskfs
	test -x $(DESTDIR)$(LIBPCFS)/fstyp$(SVX) || mv $(DESTDIR)$(LIBPCFS)/fstyp $(DESTDIR)$(LIBPCFS)/fstyp$(SVX)
	$(INSTALL) $(INSTSPGMFLAGS) fstyp_pcfs $(DESTDIR)$(LIBPCFS)/fstyp
	$(INSTALL) $(INSTSPGMFLAGS) fstyp_fdiskfs $(DESTDIR)$(LIBFDISKFS)/fstyp

uninstall::
	-test -x $(DESTDIR)$(LIBPCFS)/fstyp$(SVX) && mv $(DESTDIR)$(LIBPCFS)/fstyp$(SVX) $(DESTDIR)$(LIBPCFS)/fstyp

clean::
	$(RM) fstyp_pcfs fstyp_fdiskfs


fdiskize: fdiskize.c
	$(CC) -o $@ $(STDFLAGS) fdiskize.c
install-fdiskize: fdiskize
	test ! -d $(BINDIR) && mkdir $(BINDIR)
	$(INSTALL) $(INSTPGMFLAGS) fdiskize $(DESTDIR)$(BINDIR)
clean::
	$(RM) fdiskize


archive:
	PWD=`pwd`; D=`basename $$PWD`; \
	cd ..; tar --exclude='*,v' -cf - $$D | gzip -9 > $$D-$(VERSION).tar.gz

all+: method1 method2 method3 fstyp fdiskize

##-------------------------------

pkg: method3 fdiskize fstyp
	cd pkg.m3; $(MAKE) $(PASSSUBDIR) TOPDIR=.. $@
	@$(MAKE) postinst-message

pkgtest:
	cd pkg.m3; $(MAKE) $(PASSSUBDIR) TOPDIR=.. $@

clean::
	cd pkg.m3; $(MAKE) $(PASSSUBDIR) $@
