# -*- Makefile -*- for gettext-tools

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

# Flags that can be set on the nmake command line:
#   DLL=1     for compiling a .dll with a stub .lib (default is a static .lib)
#             Note that this works only with MFLAGS=-MD.
#   MFLAGS={-ML|-MT|-MD} for defining the compilation model
#     MFLAGS=-ML (the default)  Single-threaded, statically linked - libc.lib
#     MFLAGS=-MT                Multi-threaded, statically linked  - libcmt.lib
#     MFLAGS=-MD                Multi-threaded, dynamically linked - msvcrt.lib
#   DEBUG=1   for compiling with debugging information
#   PREFIX=Some\Directory       Base directory for installation
#   IIPREFIX=Some\\Directory    Same thing with doubled backslashes
# Note that nmake command line flags are automatically passed to subdirectory
# Makefiles. Therefore we don't need to pass them explicitly to subdirectory
# Makefiles, but the subdirectory Makefiles need to have the same defaults.
!if !defined(DLL)
DLL=0
!endif
!if !defined(DEBUG)
DEBUG=0
!endif
!if !defined(MFLAGS)
!if !$(DLL)
MFLAGS=
!else
MFLAGS=-MD
!endif
!endif
!if !defined(PREFIX)
PREFIX = c:\usr
!endif
!if !defined(IIPREFIX)
IIPREFIX = c:\\usr
!endif

# Directories used by "make install":
prefix = $(PREFIX)
exec_prefix = $(prefix)
bindir = $(exec_prefix)\bin
libdir = $(exec_prefix)\lib
includedir = $(prefix)\include
datadir = $(prefix)\share
localedir = $(datadir)\locale
pkgdatadir = $(datadir)\gettext
mandir = $(datadir)\man
docdir = $(datadir)\doc\gettext
emacsdir = $(datadir)\emacs
lispdir = $(emacsdir)\site-lisp

# Programs used by "make":

CC = cl
CXX = cl -TP

# Set to -W3 if you want to see maximum amount of warnings, including stupid
# ones. Set to -W1 to avoid warnings about signed/unsigned combinations.
WARN_CFLAGS = -W1

!if !$(DLL)
PICFLAGS =
!else
# "-GD" (msvc5) optimizes for DLL.
# mscv4 doesn't know about this flag and ignores it.
PICFLAGS = -GD
!endif

!if $(DEBUG)
OPTIMFLAGS = -Od -Z7
!else
# Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5.
OPTIMFLAGS = -D_NDEBUG -O1
!endif

LN = copy
RM = -del

# Programs used by "make install":
INSTALL = copy
INSTALL_PROGRAM = copy
INSTALL_DATA = copy

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

SHELL = /bin/sh

all : config.h force
	cd doc
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl all
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc all
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc all
	cd ..

config.h : config.h.msvc
	-$(RM) config.h
	$(LN) config.h.msvc config.h

install : force
	cd doc
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl install
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc install
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc install
	cd ..

installdirs : force
	cd doc
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl installdirs
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc installdirs
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc installdirs
	cd ..

uninstall : force
	cd doc
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl uninstall
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc uninstall
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc uninstall
	cd ..

check : all force
	cd doc
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl check
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc check
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc check
	cd ..

mostlyclean : force
	cd doc
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl mostlyclean
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc mostlyclean
	cd ..
	$(RM) config.h

clean : force
	cd doc
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl clean
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc clean
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc clean
	cd ..
	$(RM) config.h

distclean : force
	cd doc
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl distclean
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc distclean
	cd ..
	$(RM) config.h
	$(RM) config.status config.log config.cache Makefile

maintainer-clean : force
	cd doc
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd intl
	$(MAKE) -f ..\..\gettext-runtime\intl\Makefile.msvc srcdir=..\..\gettext-runtime\intl maintainer-clean
	cd ..
	cd lib
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd libuniname
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd src
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd po
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd projects
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd misc
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd man
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd tests
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	cd examples
	$(MAKE) -f Makefile.msvc maintainer-clean
	cd ..
	$(RM) config.h
	$(RM) config.status config.log config.cache Makefile

force :
