Edit

thodg/libiconv/src/Makefile.msvc

Branch :

  • Show log

    Commit

  • Author : Bruno Haible
    Date : 2003-05-17 14:36:51
    Hash : d2a22aa6
    Message : Tweaks for Woe32 portability.

  • src/Makefile.msvc
  • # -*- Makefile -*- for libiconv/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
    #   NO_NLS=1  do not use Native Language Support
    #   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(NO_NLS)
    NO_NLS=0
    !endif
    !if !defined(PREFIX)
    PREFIX = c:\usr
    !endif
    !if !defined(IIPREFIX)
    IIPREFIX = c:\\usr
    !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
    
    # 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 $(NO_NLS)
    NLSFLAGS =
    INCINTL =
    LIBINTL =
    !else
    NLSFLAGS = -DENABLE_NLS=1
    INCINTL = -I$(includedir)
    LIBINTL = $(libdir)\intl.lib
    !endif
    
    # Directories used by "make":
    srcdir = .
    
    # 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
    IIprefix = $(IIPREFIX)
    IIexec_prefix = $(IIprefix)
    IIbindir = $(IIexec_prefix)\\bin
    IIlibdir = $(IIexec_prefix)\\lib
    IIincludedir = $(IIprefix)\\include
    IIdatadir = $(IIprefix)\\share
    IIlocaledir = $(IIdatadir)\\locale
    
    # Programs used by "make":
    CC = cl
    CFLAGS = $(MFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS) $(NLSFLAGS) -DLOCALEDIR=\"$(IIlocaledir)\"
    INCLUDES = -I. -I.. -I..\include -I..\srclib -I..\windows $(INCINTL)
    RM = -del
    
    # Programs used by "make install":
    INSTALL = copy
    INSTALL_PROGRAM = copy
    INSTALL_DATA = copy
    
    #### End of system configuration section. ####
    
    SHELL = /bin/sh
    
    all : iconv_no_i18n.exe iconv.exe
    
    # This is the temporary iconv executable, without internationalization.
    iconv_no_i18n.exe : $(srcdir)/iconv_no_i18n.c $(srcdir)/iconv.c ../srclib/icrt.lib ../lib/iconv.lib
    	$(CC) $(INCLUDES) -I..\lib $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" $(srcdir)/iconv_no_i18n.c ../srclib/icrt.lib ../lib/iconv.lib -Feiconv_no_i18n.exe
    	$(RM) iconv_no_i18n.obj
    !if $(DLL)
    	copy ..\lib\iconv.dll iconv.dll
    !endif
    
    iconv.exe : $(srcdir)/iconv.c ../srclib/icrt.lib ../lib/iconv.lib
    	$(CC) $(INCLUDES) -I..\lib $(CFLAGS) -DINSTALLPREFIX=\"$(IIprefix)\" -DINSTALLDIR=\"$(IIbindir)\" $(srcdir)/iconv.c ../srclib/icrt.lib $(LIBINTL) ../lib/iconv.lib -Feiconv.exe
    	$(RM) iconv.obj
    !if $(DLL)
    	copy ..\lib\iconv.dll iconv.dll
    !endif
    
    install : all force
    	-mkdir $(prefix)
    	-mkdir $(exec_prefix)
    	-mkdir $(bindir)
    	$(INSTALL_PROGRAM) iconv.exe $(bindir)\iconv.exe
    
    installdirs : force
    	-mkdir $(prefix)
    	-mkdir $(exec_prefix)
    	-mkdir $(bindir)
    
    uninstall : force
    	$(RM) $(bindir)\iconv.exe
    
    check : all
    
    mostlyclean : clean
    
    clean : force
    	$(RM) *.obj
    	$(RM) *.dll
    	$(RM) *.exe
    
    distclean : clean
    
    maintainer-clean : distclean
    
    force :