Makefile.msvc   [plain text]


# -*- Makefile -*- for gettext-runtime/src

#### 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
!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
datadir = $(prefix)\share
localedir = $(datadir)\locale
IIprefix = $(IIPREFIX)
IIexec_prefix = $(IIprefix)
IIbindir = $(IIexec_prefix)\\bin
IIlibdir = $(IIexec_prefix)\\lib
IIdatadir = $(IIprefix)\\share
IIlocaledir = $(IIdatadir)\\locale

# Programs used by "make":

CC = cl

# 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
DEBUGFLAGS = -Z7
!else
# Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5.
OPTIMFLAGS = -D_NDEBUG -O1
DEBUGFLAGS =
!endif

CFLAGS = $(MFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS) -DHAVE_CONFIG_H -DLOCALEDIR=\"$(IIlocaledir)\"

INCLUDES = -I. -I.. -I..\intl -I..\lib -I..\..\gettext-tools\lib -I..\..\gettext-tools\windows

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

PROGRAMS = gettext.exe ngettext.exe envsubst.exe

gettext_OBJECTS = gettext.obj
ngettext_OBJECTS = ngettext.obj
envsubst_OBJECTS = envsubst.obj
LDADD =

all : $(PROGRAMS)

gettext.obj : gettext.c
	$(CC) $(INCLUDES) $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" -c gettext.c

ngettext.obj : ngettext.c
	$(CC) $(INCLUDES) $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" -c ngettext.c

envsubst.obj : envsubst.c
	$(CC) $(INCLUDES) $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" -c envsubst.c

gettext.exe : $(gettext_OBJECTS)
	$(CC) $(MFLAGS) $(DEBUGFLAGS) $(gettext_OBJECTS) ..\lib\grt.lib ..\intl\intl.lib $(libdir)\iconv.lib $(LDADD) -Fegettext.exe

ngettext.exe : $(ngettext_OBJECTS)
	$(CC) $(MFLAGS) $(DEBUGFLAGS) $(ngettext_OBJECTS) ..\lib\grt.lib ..\intl\intl.lib $(libdir)\iconv.lib $(LDADD) -Fengettext.exe

envsubst.exe : $(envsubst_OBJECTS)
	$(CC) $(MFLAGS) $(DEBUGFLAGS) $(ngettext_OBJECTS) ..\lib\grt.lib ..\intl\intl.lib $(libdir)\iconv.lib $(LDADD) -Feenvsubst.exe

install : all force
	-mkdir $(prefix)
	-mkdir $(exec_prefix)
	-mkdir $(bindir)
	$(INSTALL_PROGRAM) gettext.exe $(bindir)\gettext.exe
	$(INSTALL_PROGRAM) ngettext.exe $(bindir)\ngettext.exe
	$(INSTALL_PROGRAM) envsubst.exe $(bindir)\envsubst.exe
	$(INSTALL_DATA) gettext.sh $(bindir)\gettext.sh

installdirs : force
	-mkdir $(prefix)
	-mkdir $(exec_prefix)
	-mkdir $(bindir)

uninstall : force
	$(RM) $(bindir)\gettext.exe
	$(RM) $(bindir)\ngettext.exe
	$(RM) $(bindir)\envsubst.exe
	$(RM) $(bindir)\gettext.sh

check : all

mostlyclean : clean

clean : force
	$(RM) *.obj
	$(RM) $(PROGRAMS)
	$(RM) core

distclean : clean

maintainer-clean : distclean

force :