1# -*- Makefile -*- for libiconv/lib
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#   PREFIX=Some\Directory       Base directory for installation
14#   IIPREFIX=Some\\Directory    Same thing with doubled backslashes
15!if !defined(DLL)
16DLL=0
17!endif
18!if !defined(DEBUG)
19DEBUG=0
20!endif
21!if !defined(MFLAGS)
22!if !$(DLL)
23MFLAGS=
24!else
25MFLAGS=-MD
26!endif
27!endif
28!if !defined(PREFIX)
29PREFIX = c:\usr
30!endif
31!if !defined(IIPREFIX)
32IIPREFIX = c:\\usr
33!endif
34
35# Directories used by "make":
36srcdir = .
37
38# Directories used by "make install":
39prefix = $(PREFIX)
40exec_prefix = $(prefix)
41bindir = $(exec_prefix)\bin
42libdir = $(exec_prefix)\lib
43IIprefix = $(IIPREFIX)
44IIexec_prefix = $(IIprefix)
45IIbindir = $(IIexec_prefix)\\bin
46IIlibdir = $(IIexec_prefix)\\lib
47
48# Programs used by "make":
49
50CC = cl
51
52# Set to -W3 if you want to see maximum amount of warnings, including stupid
53# ones. Set to -W1 to avoid warnings about signed/unsigned combinations.
54WARN_CFLAGS = -W1
55
56!if !$(DLL)
57PICFLAGS =
58!else
59# "-GD" (msvc5) optimizes for DLL.
60# mscv4 doesn't know about this flag and ignores it.
61# -DBUILDING_LIBICONV: Change expansion of LIBICONV_DLL_EXPORTED macro.
62# -DBUILDING_DLL: Change expansion of RELOCATABLE_DLL_EXPORTED macro.
63PICFLAGS = -GD -DBUILDING_LIBICONV -DBUILDING_DLL -DPIC
64!endif
65
66!if $(DEBUG)
67OPTIMFLAGS = -Od -Z7
68DEBUGFLAGS = -Z7
69!else
70# Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5.
71OPTIMFLAGS = -D_NDEBUG -O1
72DEBUGFLAGS =
73!endif
74
75CFLAGS = $(MFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS) -DHAVE_CONFIG_H -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" -DNO_XMALLOC -Dset_relocation_prefix=libiconv_set_relocation_prefix -Drelocate=libiconv_relocate
76
77INCLUDES = -I. -I..\include
78
79AR = lib
80AR_FLAGS = /out:
81
82LN = copy
83RM = -del
84
85# Programs used by "make install":
86INSTALL = copy
87INSTALL_PROGRAM = copy
88INSTALL_DATA = copy
89
90#### End of system configuration section. ####
91
92SHELL = /bin/sh
93
94OBJECTS = iconv.obj localcharset.obj relocatable.obj
95
96RESOURCES = iconv.res
97
98all : iconv.lib
99
100config.h : config.h.msvc
101	-$(RM) config.h
102	$(LN) config.h.msvc config.h
103
104iconv.obj : $(srcdir)/iconv.c $(srcdir)/encodings.def $(srcdir)/encodings_local.def $(srcdir)/aliases.h config.h
105	$(CC) $(INCLUDES) $(CFLAGS) $(PICFLAGS) -c $(srcdir)/iconv.c
106
107localcharset.obj : $(srcdir)/../libcharset/lib/localcharset.c $(srcdir)/relocatable.h config.h
108	$(CC) $(INCLUDES) $(CFLAGS) $(PICFLAGS) -c $(srcdir)/../libcharset/lib/localcharset.c
109
110relocatable.obj : $(srcdir)/relocatable.c $(srcdir)/relocatable.h config.h
111	$(CC) $(INCLUDES) $(CFLAGS) $(PICFLAGS) -c $(srcdir)/relocatable.c
112
113!if !$(DLL)
114
115iconv.lib : $(OBJECTS)
116	-$(RM) iconv.lib
117	$(AR) $(AR_FLAGS)iconv.lib $(OBJECTS)
118
119!else
120
121# iconv.dll and iconv.lib are created together.
122iconv.lib : $(OBJECTS) $(RESOURCES)
123	$(CC) $(MFLAGS) $(DEBUGFLAGS) -LD $(OBJECTS) $(RESOURCES) -Feiconv.dll
124
125iconv.res : $(srcdir)/../windows/iconv.rc
126	rc -Fo iconv.res $(srcdir)/../windows/iconv.rc
127
128!endif
129
130install : all force
131	-mkdir $(prefix)
132	-mkdir $(exec_prefix)
133!if $(DLL)
134	-mkdir $(bindir)
135	$(INSTALL_DATA) iconv.dll $(bindir)\iconv.dll
136!endif
137	-mkdir $(libdir)
138	$(INSTALL_DATA) iconv.lib $(libdir)\iconv.lib
139
140installdirs : force
141	-mkdir $(prefix)
142	-mkdir $(exec_prefix)
143!if $(DLL)
144	-mkdir $(bindir)
145!endif
146	-mkdir $(libdir)
147
148uninstall : force
149!if $(DLL)
150	$(RM) $(bindir)\iconv.dll
151!endif
152	$(RM) $(libdir)\iconv.lib
153
154check : all
155
156mostlyclean : clean
157
158clean : force
159	$(RM) config.h
160	$(RM) *.obj
161	$(RM) *.lib
162	$(RM) *.exp
163	$(RM) *.dll
164	$(RM) iconv.res
165
166distclean : clean
167
168maintainer-clean : distclean
169
170force :
171
172