############################################################################
#                                  _   _ ____  _     
#  Project                     ___| | | |  _ \| |    
#                             / __| | | | |_) | |    
#                            | (__| |_| |  _ <| |___ 
#                             \___|\___/|_| \_\_____|
#
#  The contents of this file are subject to the Mozilla Public License
#  Version 1.0 (the "License"); you may not use this file except in
#  compliance with the License. You may obtain a copy of the License at
#  http://www.mozilla.org/MPL/
#
#  Software distributed under the License is distributed on an "AS IS"
#  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
#  License for the specific language governing rights and limitations
#  under the License.
#
#  The Original Code is Curl.
#
#  The Initial Developer of the Original Code is Daniel Stenberg.
#
#  Portions created by the Initial Developer are Copyright (C) 1999.
#  All Rights Reserved.
#
# ------------------------------------------------------------
# Main author:
# - Daniel Stenberg <daniel@haxx.se>
#
# 	http://curl.haxx.se
#
# $Source$
# $Revision$
# $Date$
# $Author$
# $State$
# $Locker$
#
# ------------------------------------------------------------
#
# In a normal unix-setup, this file will become overwritten.
#
############################################################################

all:
	./configure
	make

ssl:
	./configure --with-ssl
	make

mingw32:
	cd lib; make -f Makefile.m32
	cd src; make -f Makefile.m32

mingw32-ssl:
	cd lib; make -f Makefile.m32 SSL=1
	cd src; make -f Makefile.m32 SSL=1

vc:
	cd lib
	nmake -f Makefile.vc6
	cd ..\src
	nmake -f Makefile.vc6

vc-ssl:
	cd lib
	nmake -f Makefile.vc6 release-ssl
	cd ..\src
	nmake -f Makefile.vc6

cygwin:
	./configure
	make

cygwin-ssl:
	./configure --with-ssl
	make

unix: all

unix-ssl: ssl

linux: all

linux-ssl: ssl
