Home | History | Annotate | Download | only in lib
      1 #***************************************************************************
      2 #                                  _   _ ____  _
      3 #  Project                     ___| | | |  _ \| |
      4 #                             / __| | | | |_) | |
      5 #                            | (__| |_| |  _ <| |___
      6 #                             \___|\___/|_| \_\_____|
      7 #
      8 # Copyright (C) 2005 - 2009, Gisle Vanem <gvanem (a] yahoo.no>.
      9 # Copyright (C) 2005 - 2017, Daniel Stenberg, <daniel (a] haxx.se>, et al.
     10 #
     11 # This software is licensed as described in the file COPYING, which
     12 # you should have received as part of this distribution. The terms
     13 # are also available at https://curl.haxx.se/docs/copyright.html.
     14 #
     15 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
     16 # copies of the Software, and permit persons to whom the Software is
     17 # furnished to do so, under the terms of the COPYING file.
     18 #
     19 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     20 # KIND, either express or implied.
     21 #
     22 #***************************************************************************
     23 
     24 #
     25 #  Watcom / OpenWatcom / Win32 makefile for libcurl.
     26 #
     27 
     28 .ERASE
     29 
     30 !if $(__VERSION__) < 1280
     31 !message !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     32 !message ! This Open Watcom version is too old and is no longer supported !
     33 !message !     Please download latest version from www.openwatcom.org     !
     34 !message !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     35 !error Unsupported version of Open Watcom
     36 !endif
     37 
     38 !ifndef %watcom
     39 !error WATCOM environment variable not set!
     40 !endif
     41 
     42 # In order to process Makefile.inc wmake must be called with -u switch!
     43 !ifndef %MAKEFLAGS
     44 !error You MUST call wmake with the -u switch!
     45 !endif
     46 
     47 !ifdef %libname
     48 LIBNAME = $(%libname)
     49 !else
     50 LIBNAME = libcurl
     51 !endif
     52 TARGETS = $(LIBNAME).dll $(LIBNAME).lib
     53 
     54 CC = wcc386
     55 LD = wlink
     56 AR = wlib
     57 RC = wrc
     58 
     59 !ifdef __LOADDLL__
     60 !  loaddll wcc386  wccd386
     61 !  loaddll wpp386  wppd386
     62 !  loaddll wlib    wlibd
     63 !  loaddll wlink   wlinkd
     64 !endif
     65 
     66 !ifdef __LINUX__
     67 CP = cp
     68 MD = mkdir -p
     69 !else
     70 CP = copy 2>NUL
     71 MD = mkdir
     72 !endif
     73 !if $(__VERSION__) > 1290
     74 RD = rm -rf
     75 !else ifdef __UNIX__
     76 RD = rm -rf
     77 !else
     78 RD = rmdir /q /s 2>NUL
     79 !endif
     80 
     81 SYS_INCL = -I"$(%watcom)/h/nt" -I"$(%watcom)/h"
     82 
     83 CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm &
     84          -wcd=201 -bt=nt -d+ -dWIN32 &
     85          -dBUILDING_LIBCURL -I. -I"../include" $(SYS_INCL)
     86 
     87 !ifdef %debug
     88 DEBUG  = -dDEBUG=1 -dDEBUGBUILD
     89 CFLAGS += -d3 $(DEBUG)
     90 !else
     91 CFLAGS += -d0
     92 !endif
     93 
     94 !ifdef %use_ipv6
     95 CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
     96 !endif
     97 
     98 !ifdef %use_sspi
     99 CFLAGS += -dUSE_WINDOWS_SSPI
    100 !endif
    101 
    102 !ifdef %use_winssl
    103 CFLAGS += -dUSE_WINDOWS_SSPI
    104 CFLAGS += -DUSE_SCHANNEL
    105 !endif
    106 
    107 !ifdef %use_winidn
    108 CFLAGS += -dWINVER=0x0600 -dUSE_WIN32_IDN
    109 !  if $(__VERSION__) <= 1290
    110 CFLAGS += -dWANT_IDN_PROTOTYPES
    111 !  endif
    112 !endif
    113 
    114 #
    115 # Change to suite.
    116 #
    117 !ifdef %zlib_root
    118 ZLIB_ROOT = $(%zlib_root)
    119 !else
    120 ZLIB_ROOT = ../../zlib-1.2.8
    121 !endif
    122 
    123 !ifdef %libssh2_root
    124 LIBSSH2_ROOT = $(%libssh2_root)
    125 !else
    126 LIBSSH2_ROOT = ../../libssh2-1.5.0
    127 !endif
    128 
    129 !ifdef %librtmp_root
    130 LIBRTMP_ROOT = $(%librtmp_root)
    131 !else
    132 LIBRTMP_ROOT = ../../rtmpdump-2.3
    133 !endif
    134 
    135 !ifdef %openssl_root
    136 OPENSSL_ROOT = $(%openssl_root)
    137 !else
    138 OPENSSL_ROOT = ../../openssl-1.0.2a
    139 !endif
    140 
    141 !ifdef %ares_root
    142 ARES_ROOT = $(%ares_root)
    143 !else
    144 ARES_ROOT = ../ares
    145 !endif
    146 
    147 !ifdef %use_zlib
    148 CFLAGS += -dHAVE_ZLIB_H -dHAVE_LIBZ -I"$(ZLIB_ROOT)"
    149 !endif
    150 
    151 !ifdef %use_rtmp
    152 CFLAGS += -dUSE_LIBRTMP -I"$(LIBRTMP_ROOT)"
    153 !endif
    154 
    155 !ifdef %use_ssh2
    156 CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H -I"$(LIBSSH2_ROOT)/include" -I"$(LIBSSH2_ROOT)/win32"
    157 !endif
    158 
    159 !ifdef %use_ssl
    160 CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I"$(OPENSSL_ROOT)/inc32"
    161 !endif
    162 
    163 !ifdef %use_ares
    164 CFLAGS += -dUSE_ARES -I"$(ARES_ROOT)"
    165 !endif
    166 
    167 !ifdef %use_watt32
    168 CFLAGS += -dUSE_WATT32 -I"$(%watt_root)/inc"
    169 !endif
    170 
    171 OBJ_BASE = WC_Win32.obj
    172 !if $(__VERSION__) > 1290
    173 OBJ_STAT = $(OBJ_BASE)/stat
    174 OBJ_DYN  = $(OBJ_BASE)/dyn
    175 !else ifdef __UNIX__
    176 OBJ_STAT = $(OBJ_BASE)/stat
    177 OBJ_DYN  = $(OBJ_BASE)/dyn
    178 !else
    179 OBJ_STAT = $(OBJ_BASE)\stat
    180 OBJ_DYN  = $(OBJ_BASE)\dyn
    181 !endif
    182 
    183 LINK_ARG = $(OBJ_DYN)/wlink.arg
    184 LIB_ARG  = $(OBJ_STAT)/wlib.arg
    185 
    186 !include Makefile.inc
    187 
    188 OBJS1 = ./$(CSOURCES:.c=.obj)
    189 OBJS2 = $(OBJS1:vtls/=)
    190 OBJS3 = $(OBJS2:vauth/=)
    191 OBJS4 = $(OBJS3: = ./)
    192 OBJS_STAT = $(OBJS4:./=$(OBJ_STAT)/)
    193 OBJS_DYN  = $(OBJS4:./=$(OBJ_DYN)/)
    194 
    195 RESOURCE   = $(OBJ_DYN)/libcurl.res
    196 
    197 DIRS = $(OBJ_BASE) $(OBJ_BASE)/stat $(OBJ_BASE)/dyn
    198 
    199 .c : vauth vtls
    200 
    201 all: $(DIRS) $(TARGETS) .SYMBOLIC
    202 	@echo Welcome to libcurl
    203 
    204 clean: .SYMBOLIC
    205 	-rm -f $(OBJS_STAT)
    206 	-rm -f $(OBJS_DYN)
    207 	-rm -f $(RESOURCE) $(LINK_ARG) $(LIB_ARG)
    208 
    209 vclean distclean: clean .SYMBOLIC
    210 	-rm -f $(TARGETS) $(LIBNAME).map $(LIBNAME).sym
    211 	-$(RD) $(OBJ_STAT)
    212 	-$(RD) $(OBJ_DYN)
    213 	-$(RD) $(OBJ_BASE)
    214 
    215 $(DIRS):
    216 	-$(MD) $^@
    217 
    218 $(LIBNAME).dll: $(OBJS_DYN) $(RESOURCE) $(__MAKEFILES__)
    219 	%create $(LINK_ARG)
    220 	@%append $(LINK_ARG) system nt dll
    221 !ifdef %debug
    222 	@%append $(LINK_ARG) debug all
    223 	@%append $(LINK_ARG) option symfile
    224 !endif
    225 	@%append $(LINK_ARG) option quiet, caseexact, eliminate
    226 	@%append $(LINK_ARG) option map=$(OBJ_DYN)/$(LIBNAME).map
    227 	@%append $(LINK_ARG) option implib=$(LIBNAME)_imp.lib
    228 	@%append $(LINK_ARG) option res=$(RESOURCE)
    229 	@for %f in ($(OBJS_DYN)) do @%append $(LINK_ARG) file %f
    230 	@%append $(LINK_ARG) library wldap32.lib
    231 !ifdef %use_watt32
    232 	@%append $(LINK_ARG) library '$(%watt_root)/lib/wattcpw_imp.lib'
    233 !else
    234 	@%append $(LINK_ARG) library ws2_32.lib
    235 !endif
    236 !ifdef %use_zlib
    237 	@%append $(LINK_ARG) library '$(ZLIB_ROOT)/zlib.lib'
    238 !endif
    239 !ifdef %use_rtmp
    240 	@%append $(LINK_ARG) library '$(LIBRTMP_ROOT)/librtmp/librtmp.lib'
    241 !endif
    242 !ifdef %use_ssh2
    243 	@%append $(LINK_ARG) library '$(LIBSSH2_ROOT)/win32/libssh2.lib'
    244 !endif
    245 !ifdef %use_ssl
    246 	@%append $(LINK_ARG) library '$(OPENSSL_ROOT)/out32/libeay32.lib'
    247 	@%append $(LINK_ARG) library '$(OPENSSL_ROOT)/out32/ssleay32.lib'
    248 !endif
    249 !ifdef %use_ares
    250 	@%append $(LINK_ARG) library '$(ARES_ROOT)/cares.lib'
    251 !endif
    252 !ifdef %use_winidn
    253 !  if $(__VERSION__) > 1290
    254 	@%append $(LINK_ARG) library normaliz.lib
    255 !  else
    256 	@%append $(LINK_ARG) import '_IdnToAscii@20' 'NORMALIZ.DLL'.'IdnToAscii'
    257 	@%append $(LINK_ARG) import '_IdnToUnicode@20' 'NORMALIZ.DLL'.'IdnToUnicode'
    258 !  endif
    259 !endif
    260 	$(LD) name $^@ @$(LINK_ARG)
    261 
    262 $(LIBNAME).lib: $(OBJS_STAT)
    263 	%create $(LIB_ARG)
    264 	@for %f in ($<) do @%append $(LIB_ARG) +- %f
    265 	$(AR) -q -b -c -pa $^@ @$(LIB_ARG)
    266 
    267 $(RESOURCE): libcurl.rc
    268 	$(RC) $(DEBUG) -q -r -zm -bt=nt -I"../include" $(SYS_INCL) $[@ -fo=$^@
    269 
    270 .c{$(OBJ_DYN)}.obj:
    271 	$(CC) $(CFLAGS) -bd -br $[@ -fo=$^@
    272 
    273 .c{$(OBJ_STAT)}.obj:
    274 	$(CC) $(CFLAGS) -DCURL_STATICLIB $[@ -fo=$^@
    275 	
    276