# Makefile for `wget' utility for MSVC
# Copyright (C) 1995, 1996, 1997, 2004, 2006, 2007,
# 2008 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Additional permission under GNU GPL version 3 section 7

# If you modify this program, or any covered work, by linking or
# combining it with the OpenSSL project's OpenSSL library (or a
# modified version of that library), containing parts covered by the
# terms of the OpenSSL or SSLeay licenses, the Free Software Foundation
# grants you additional permission to convey the resulting work.
# Corresponding Source for a non-source form of such a combination
# shall include the source code for the parts of OpenSSL used as well
# as that of the covered work.

# SSL (https) support requires the OpenSSL library (see http://www.openssl.org/).
# If you do not have OpenSSL installed or wish to build Wget without SSL
# support, either comment-out the following lines or define NO_SSL.
!ifndef NO_SSL
SSLDEFS	= /DHAVE_SSL
SSLLIBS	= libeay32.lib ssleay32.lib
SSLOBJ	= openssl$o http-ntlm$o
!endif

o = .obj

CC	= cl
LD	= link
RM	= -del

DEFS	= /DWINDOWS /D_CONSOLE /DHAVE_CONFIG_H $(SSLDEFS)
LIBS	= kernel32.lib advapi32.lib wsock32.lib user32.lib gdi32.lib $(SSLLIBS)

!ifdef DEBUG
CFLAGS	= /nologo /MTd /Od /Zi /I. $(DEFS)
LDFLAGS	= /debug
!else
CFLAGS	= /nologo /MT /O2 /I. $(DEFS)
LDFLAGS	= /opt:ref #/opt:nowin98
!endif


# The following enables security checks and is recommended if you are using
# MSVC 7.0 (or later) for 80x86.
!ifdef SECURITY_CHECKS
CFLAGS	= $(CFLAGS) /GS
!endif

# The following enables link-time code generation (Cross-file
# interprocedural optimizations).
!ifdef LTCG
CFLAGS	= $(CFLAGS) /GL
LDFLAGS	= $(LDFLAGS) /ltcg:status
!endif

OBJ = cmpt$o safe-ctype$o convert$o connect$o host$o http$o netrc$o \
      ftp-basic$o ftp$o ftp-ls$o ftp-opie$o getopt$o hash$o         \
      html-parse$o html-url$o progress$o retr$o recur$o res$o url$o \
      cookies$o init$o utils$o main$o ptimer$o version$o xmalloc$o  \
      mswindows$o gen-md5$o gnu-md5$o log$o $(SSLOBJ) spider$o

.SUFFIXES: .c .obj

# If this doesn't work for you, remove the second colon.
.c.obj::
	$(CC) $(CFLAGS) /c $<

# Dependencies for building

wget.exe: $(OBJ)
	$(LD) @<< $(LDFLAGS) /out:$@ $(OBJ) $(LIBS)
<<

$(OBJ): config-post.h config.h connect.h convert.h cookies.h ftp.h \
        gen-md5.h getopt.h gnu-md5.h hash.h host.h html-parse.h    \
        http-ntlm.h init.h log.h mswindows.h netrc.h options.h     \
        progress.h ptimer.h recur.h res.h retr.h safe-ctype.h      \
        spider.h ssl.h sysdep.h url.h utils.h wget.h xmalloc.h

#
# Dependencies for cleanup
#

clean:
	$(RM) *.bak
	$(RM) *.obj
	$(RM) *.exe
	$(RM) *.pdb
	$(RM) *.map
	$(RM) *.ilk

distclean: clean
	$(RM) Makefile
	$(RM) config.h

realclean: distclean
	$(RM) TAGS