1# -*- Makefile -*- for libiconv/src
2
3#### Start of system configuration section. ####
4
5# Flags that can be set on the nmake command line:
6#   DLL=1     for compiling a .dll with a stub .lib (default is a static .lib)
7#             Note that this works only with MFLAGS=-MD.
8#   MFLAGS={-ML|-MT|-MD} for defining the compilation model
9#     MFLAGS=-ML (the default)  Single-threaded, statically linked - libc.lib
10#     MFLAGS=-MT                Multi-threaded, statically linked  - libcmt.lib
11#     MFLAGS=-MD                Multi-threaded, dynamically linked - msvcrt.lib
12#   DEBUG=1   for compiling with debugging information
13#   NO_NLS=1  do not use Native Language Support
14#   PREFIX=Some\Directory       Base directory for installation
15#   IIPREFIX=Some\\Directory    Same thing with doubled backslashes
16!if !defined(DLL)
17DLL=0
18!endif
19!if !defined(DEBUG)
20DEBUG=0
21!endif
22!if !defined(MFLAGS)
23!if !$(DLL)
24MFLAGS=
25!else
26MFLAGS=-MD
27!endif
28!endif
29!if !defined(NO_NLS)
30NO_NLS=0
31!endif
32!if !defined(PREFIX)
33PREFIX = c:\usr
34!endif
35!if !defined(IIPREFIX)
36IIPREFIX = c:\\usr
37!endif
38
39!if $(DEBUG)
40OPTIMFLAGS = -Od -Z7
41DEBUGFLAGS = -Z7
42!else
43# Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5.
44OPTIMFLAGS = -D_NDEBUG -O1
45DEBUGFLAGS =
46!endif
47
48# Set to -W3 if you want to see maximum amount of warnings, including stupid
49# ones. Set to -W1 to avoid warnings about signed/unsigned combinations.
50WARN_CFLAGS = -W1
51
52!if $(NO_NLS)
53NLSFLAGS =
54INCINTL =
55LIBINTL =
56!else
57NLSFLAGS = -DENABLE_NLS=1
58INCINTL = -I$(includedir)
59LIBINTL = $(libdir)\intl.lib
60!endif
61
62# Directories used by "make":
63srcdir = .
64
65# Directories used by "make install":
66prefix = $(PREFIX)
67exec_prefix = $(prefix)
68bindir = $(exec_prefix)\bin
69libdir = $(exec_prefix)\lib
70includedir = $(prefix)\include
71datadir = $(prefix)\share
72localedir = $(datadir)\locale
73IIprefix = $(IIPREFIX)
74IIexec_prefix = $(IIprefix)
75IIbindir = $(IIexec_prefix)\\bin
76IIlibdir = $(IIexec_prefix)\\lib
77IIincludedir = $(IIprefix)\\include
78IIdatadir = $(IIprefix)\\share
79IIlocaledir = $(IIdatadir)\\locale
80
81# Programs used by "make":
82CC = cl
83CFLAGS = $(MFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS) $(NLSFLAGS) -DLOCALEDIR=\"$(IIlocaledir)\"
84INCLUDES = -I. -I.. -I..\include -I..\srclib -I..\windows $(INCINTL)
85RM = -del
86
87# Programs used by "make install":
88INSTALL = copy
89INSTALL_PROGRAM = copy
90INSTALL_DATA = copy
91
92#### End of system configuration section. ####
93
94SHELL = /bin/sh
95
96all : iconv_no_i18n.exe iconv.exe
97
98# This is the temporary iconv executable, without internationalization.
99iconv_no_i18n.exe : $(srcdir)/iconv_no_i18n.c $(srcdir)/iconv.c ../srclib/icrt.lib ../lib/iconv.lib
100	$(CC) $(INCLUDES) -I..\lib $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" $(srcdir)/iconv_no_i18n.c ../srclib/icrt.lib ../lib/iconv.lib -Feiconv_no_i18n.exe
101	$(RM) iconv_no_i18n.obj
102!if $(DLL)
103	copy ..\lib\iconv.dll iconv.dll
104!endif
105
106iconv.exe : $(srcdir)/iconv.c ../srclib/icrt.lib ../lib/iconv.lib
107	$(CC) $(INCLUDES) -I..\lib $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" $(srcdir)/iconv.c ../srclib/icrt.lib $(LIBINTL) ../lib/iconv.lib -Feiconv.exe
108	$(RM) iconv.obj
109!if $(DLL)
110	copy ..\lib\iconv.dll iconv.dll
111!endif
112
113install : all force
114	-mkdir $(prefix)
115	-mkdir $(exec_prefix)
116	-mkdir $(bindir)
117	$(INSTALL_PROGRAM) iconv.exe $(bindir)\iconv.exe
118
119installdirs : force
120	-mkdir $(prefix)
121	-mkdir $(exec_prefix)
122	-mkdir $(bindir)
123
124uninstall : force
125	$(RM) $(bindir)\iconv.exe
126
127check : all
128
129mostlyclean : clean
130
131clean : force
132	$(RM) *.obj
133	$(RM) *.dll
134	$(RM) *.exe
135
136distclean : clean
137
138maintainer-clean : distclean
139
140force :
141