aboutsummaryrefslogtreecommitdiff
path: root/winbuild/Makefile.vc
blob: be4aca3edeffc42b6b409ab06b6a57f93809ad61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
!IF "$(MODE)"=="static"
TARGET = $(LIB_NAME_STATIC)
AS_DLL = false
CFGSET=true
!ELSEIF "$(MODE)"=="dll"
TARGET = $(LIB_NAME_DLL)
AS_DLL = true
CFGSET=true
!ELSE
!MESSAGE Invalid mode: $(MODE)

#######################
# Usage
#

!MESSAGE Usage: nmake /f makefile.vc mode=<static or dll> <options>
!MESSAGE where <options> is one or many of:
!MESSAGE   VC=<6,7,8,9,10>              - VC versions
!MESSAGE   WITH_DEVEL=<path>            - Paths for the development files (SSL, zlib, etc.)
!MESSAGE                                  Default to sibbling directory deps: ../deps
!MESSAGE                                  Libraries can be fetched at http://pecl2.php.net/downloads/php-windows-builds/
!MESSAGE                                  Uncompress them into the deps folder.
!MESSAGE   WITH_SSL=<dll or static>     - Enable OpenSSL support, DLL or static
!MESSAGE   WITH_ZLIB=<dll or static>    - Enable ZLib support, DLL or static
!MESSAGE   WITH_SSH2=<dll or static>    - Enable LIbSSH2 support, DLL or static
!MESSAGE   USE_SSSPI=<yes or no>        - Enable SSPI support, default to yes
!MESSAGE   USE_IPV6=<yes or no>         - Enable IPV6, default to yes
!MESSAGE   DEBUG=<yes or no>            - Debug builds
!MESSAGE   USE_IDN=<yes or no>          - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.
!MESSAGE                                  or to install http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
!MESSAGE   GEN_PDB=<yes or no>          - Generate Program Database (debug symbols release build)
!ERROR please choose a valid mode

!ENDIF

!INCLUDE "../lib/Makefile.inc"
LIBCURL_OBJS=$(CSOURCES:.c=.obj)

top_srcdir=..
!INCLUDE "../src/Makefile.inc"

# hugehelp has a special rule
CURL_OBJS= $(CURL_CFILES:hugehelp.c=)

CURL_OBJS=$(CURL_OBJS:.c=.obj)

# default options
!IFNDEF USE_SSPI
USE_SSPI=true
!ENDIF

!IFNDEF USE_IPV6
USE_IPV6=true
!ENDIF

!IFNDEF USE_IDN
USE_IDN=true
!ENDIF

CONFIG_NAME_LIB = libcurl

!IF "$(WITH_SSL)"=="dll"
USE_SSL      = true
SSL=dll
!ELSEIF "$(WITH_SSL)"=="static"
USE_SSL      = true
SSL=dll
!ENDIF

!IF "$(WITH_ZLIB)"=="dll"
USE_ZLIB     = true
zlib=dll
!ELSEIF "$(WITH_ZLIB)"=="static"
USE_ZLIB    = true
ZLIB=static
!ENDIF

!IF "$(WITH_SSH2)"=="dll"
USE_SSH2    = true
SSH2=dll
!ELSEIF "$(WITH_SSH2)"=="static"
USE_SSH2      = true
SSH2=static
!ENDIF

!IF "$(DEBUG)"=="yes"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug
!ELSE
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release
!ENDIF

!IF "$(AS_DLL)" == "true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll
!ELSE
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static
!ENDIF

!IF "$(USE_SSL)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)
!ENDIF

!IF "$(USE_ZLIB)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)
!ENDIF

!IF "$(USE_SSH2)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)
!ENDIF

!IF "$(USE_IPV6)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6
!ENDIF

!IF "$(USE_SSPI)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi
!ENDIF

!MESSAGE configuration name: $(CONFIG_NAME_LIB)

BUILD_DIR=../builds/$(CONFIG_NAME_LIB)
LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib
CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl
DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\

$(MODE):
	@SET LIBCURL_DIROBJ=$(LIBCURL_DIROBJ)
	@SET MACRO_NAME=LIBCURL_OBJS
	@SET OUTFILE=LIBCURL_OBJS.inc
	@gen_resp_file.bat $(LIBCURL_OBJS)
	@SET LIBCURL_DIROBJ=$(CURL_DIROBJ)
	@SET MACRO_NAME=CURL_OBJS
	@SET OUTFILE=CURL_OBJS.inc
	@gen_resp_file.bat $(CURL_OBJS)
	@$(MAKE) /NOLOGO /F MakefileBuild.vc

copy_from_lib:
	echo copying .c...
	FOR %%i IN ($(CURLX_ONES:/=\)) DO copy %%i ..\src\