###############################################################################
#
# hfsutils - tools for reading and writing Macintosh HFS volumes
# Copyright (C) 1996 Robert Leslie
#
# MODIFIED FOR BeOS (DR8) - Thomas B. White - September 26, 1996
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
###############################################################################

DESTDIR =	/boot

BINDEST =	$(DESTDIR)/bin
DOCDEST =	$(DESTDIR)/documentation/hfsutils

BININSTALL =    install -c -m 755

CC =		mwcc
INCLUDES =	

DEFINES =	
LIBS =		

COPTS =		
CFLAGS =	$(COPTS) -Ilibhfs $(INCLUDES) $(DEFINES)
LDFLAGS =	-Llibhfs

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

CLITARGETS =	hattrib hcd hcopy hdel hdir hformat hls hmkdir hmount hpwd  \
		hrename hrmdir humount hvol

SETTYPE =	beutils/settype
BEUTILS =	$(SETTYPE)

LIBHFS =	libhfs/libhfs.a
INCHFS =	libhfs/hfs.h

GENERALDOCS =	hfsutils.1
CLIDOCS =	hattrib.1 hcd.1 hcopy.1 hdel.1 hdir.1 hformat.1 hls.1  \
		hmkdir.1 hmount.1 hpwd.1 hrename.1 hrmdir.1 humount.1 hvol.1 

CLIOBJS =	hcwd.o hfsutil.o glob.o
UTILOBJS =	crc.o binhex.o copyin.o copyout.o

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

all :: all_cli

all_cli :: $(CLITARGETS)

install :: $(BEUTILS) install_cli

install_cli :: all_cli
	$(BININSTALL) $(CLITARGETS) "$(BINDEST)/."

	mkdir -p "$(DOCDEST)"
	for file in $(GENERALDOCS) $(CLIDOCS); do  \
		name=`basename $$file .1`.html;  \
		cp -pf doc/$$name "$(DOCDEST)";  \
		chmod 644 "$(DOCDEST)/$$name";  \
		$(SETTYPE) "$(DOCDEST)/$$name" "TEXT" "NPOS";  \
	done

again :: clean all

clean ::
	rm -f $(CLITARGETS) *.o
	cd beutils && $(MAKE) clean
	cd libhfs && $(MAKE) clean

dist :: clean
	name=$$(basename $$(pwd)); \
	cd .. && tar cvf $$name.tar $$name && gzip $$name.tar

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

$(BEUTILS) ::
	cd beutils && $(MAKE)

$(LIBHFS) ::
	cd libhfs && $(MAKE)

hattrib: $(LIBHFS) $(CLIOBJS) hattrib.o
	$(CC) $(LDFLAGS) hattrib.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hcd: $(LIBHFS) $(CLIOBJS) hcd.o
	$(CC) $(LDFLAGS) hcd.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hcopy: $(LIBHFS) $(UTILOBJS) $(CLIOBJS) hcopy.o
	$(CC) $(LDFLAGS) hcopy.o $(CLIOBJS) $(UTILOBJS) \
		-lhfs $(LIBS) -o $@

hdel: $(LIBHFS) $(CLIOBJS) hdel.o
	$(CC) $(LDFLAGS) hdel.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hdir: $(LIBHFS) $(CLIOBJS) hdir.o
	$(CC) $(LDFLAGS) hdir.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hformat: $(LIBHFS) $(CLIOBJS) hformat.o
	$(CC) $(LDFLAGS) hformat.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hls: $(LIBHFS) $(CLIOBJS) hls.o
	$(CC) $(LDFLAGS) hls.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hmount: $(LIBHFS) $(CLIOBJS) hmount.o
	$(CC) $(LDFLAGS) hmount.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hmkdir: $(LIBHFS) $(CLIOBJS) hmkdir.o
	$(CC) $(LDFLAGS) hmkdir.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hpwd: $(LIBHFS) $(CLIOBJS) hpwd.o
	$(CC) $(LDFLAGS) hpwd.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hrename: $(LIBHFS) $(CLIOBJS) hrename.o
	$(CC) $(LDFLAGS) hrename.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hrmdir: $(LIBHFS) $(CLIOBJS) hrmdir.o
	$(CC) $(LDFLAGS) hrmdir.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

humount: $(LIBHFS) $(CLIOBJS) humount.o
	$(CC) $(LDFLAGS) humount.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@

hvol: $(LIBHFS) $(CLIOBJS) hvol.o
	$(CC) $(LDFLAGS) hvol.o $(CLIOBJS) \
		-lhfs $(LIBS) -o $@


### DEPENDENCIES FOLLOW #######################################################

binhex.o: binhex.c binhex.h crc.h
copyin.o: copyin.c libhfs/hfs.h libhfs/data.h copyin.h binhex.h crc.h
copyout.o: copyout.c libhfs/hfs.h libhfs/data.h copyout.h binhex.h \
 crc.h
crc.o: crc.c crc.h
glob.o: glob.c libhfs/hfs.h glob.h
hattrib.o: hattrib.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hattrib.h
hcd.o: hcd.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hcd.h
hcopy.o: hcopy.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hcopy.h copyin.h \
 copyout.h
hcwd.o: hcwd.c hcwd.h
hdel.o: hdel.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hdel.h
hdir.o: hdir.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hdir.h
hformat.o: hformat.c libhfs/hfs.h hcwd.h hfsutil.h hformat.h
hfsutil.o: hfsutil.c libhfs/hfs.h hcwd.h hfsutil.h version.h
hls.o: hls.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hls.h
hmkdir.o: hmkdir.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hmkdir.h
hmount.o: hmount.c libhfs/hfs.h hcwd.h hfsutil.h hmount.h
hpwd.o: hpwd.c hcwd.h hpwd.h
hrename.o: hrename.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hrename.h
hrmdir.o: hrmdir.c libhfs/hfs.h hcwd.h hfsutil.h glob.h hrmdir.h
humount.o: humount.c libhfs/hfs.h hcwd.h hfsutil.h humount.h
hvol.o: hvol.c libhfs/hfs.h hcwd.h hfsutil.h hvol.h
