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