# Makefile for libiconv/man, OS2/EMX specific
#
#	requires EMX/GCC development environment and
#	GNU futils installed
#
#	define EMXPATH=<your EMX path> on install/uninstall
#

#### Start of system configuration section. ####

# Directories used by "make install":
prefix = @prefix@
exec_prefix = $(prefix)
datadir = $(prefix)/share
mandir = $(datadir)/man

#### End of system configuration section. ####

MAN1 = iconv.1
MAN3 = iconv.3 iconv_close.3 iconv_open.3

all :

install : force
	@for %i in ($(MAN1)) do cp -i %i $(mandir)/man1/%i
	@for %i in ($(MAN3)) do cp -i %i $(mandir)/man3/%i

installdirs :

uninstall : force
	@for %i in ($(MAN1)) do rm -i $(mandir)/man1/%i
	@for %i in ($(MAN3)) do rm -i $(mandir)/man3/%i

check :

mostlyclean :

clean :

distclean : force
	rm -f Makefile

maintainer-clean : distclean

force :
