e1a5d1bc77
Commitd512b25f69
introduced a crypto library abstraction in the autotools build system, to allow us to more easily support new crypto libraries. In that process it was found that all other build system which we support are hard-coded to build with OpenSSL. Commitf5c1a0d98b
fixes automake introduced into non-autotools build systems but still overlooked the CPP macro saying that we are using OpenSSL. Thanks to Marc Hörsken for identifying this issue and proposing a fix for win32/{GNUmakefile,config.mk}. This commit uses a slightly different approach but the end result is the same.
183 lines
4.0 KiB
Makefile
183 lines
4.0 KiB
Makefile
#
|
|
# Watcom / OpenWatcom Win32 makefile for libssh2.
|
|
#
|
|
# Comments to: Guenter Knauf http://www.gknw.net/phpbb
|
|
#
|
|
|
|
!ifndef %watcom
|
|
!error WATCOM environment variable not set!
|
|
!else
|
|
SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h
|
|
SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386
|
|
!endif
|
|
|
|
!ifdef %libname
|
|
LIBNAME = $(%libname)
|
|
!else
|
|
LIBNAME = libssh2
|
|
!endif
|
|
TARGETS = $(LIBNAME).dll $(LIBNAME)_imp.lib $(LIBNAME).lib
|
|
|
|
CC = wcc386
|
|
LD = wlink
|
|
AR = wlib
|
|
RC = wrc
|
|
|
|
!ifdef __LOADDLL__
|
|
! loaddll wcc386 wccd386
|
|
! loaddll wpp386 wppd386
|
|
! loaddll wlib wlibd
|
|
! if $(__VERSION__) > 1270
|
|
! loaddll wlink wlinkd
|
|
! else
|
|
! loaddll wlink wlink
|
|
! endif
|
|
!endif
|
|
|
|
!if $(__VERSION__) < 1250
|
|
RM = del /q /f 2>NUL
|
|
!else
|
|
RM = rm -f
|
|
!endif
|
|
MD = mkdir
|
|
RD = rmdir /q /s 2>NUL
|
|
CP = copy
|
|
|
|
CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=nul -w2 -fpi -oilrtfm &
|
|
-wcd=201 -bt=nt -d+ -dWIN32 -DLIBSSH2_WIN32 &
|
|
-I. -I..\include $(SYS_INCL)
|
|
|
|
!ifdef %debug
|
|
DEBUG = -dDEBUG=1 -dDEBUGBUILD
|
|
CFLAGS += -d3 $(DEBUG)
|
|
!else
|
|
CFLAGS += -d0
|
|
!endif
|
|
|
|
!ifdef %use_ipv6
|
|
CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
|
|
!endif
|
|
|
|
#
|
|
# Change to suite.
|
|
#
|
|
!ifdef %zlib_root
|
|
ZLIB_ROOT = $(%zlib_root)
|
|
!else
|
|
ZLIB_ROOT = ..\..\zlib-1.2.7
|
|
!endif
|
|
|
|
!ifdef %openssl_root
|
|
OPENSSL_ROOT = $(%openssl_root)
|
|
!else
|
|
OPENSSL_ROOT = ..\..\openssl-0.9.8y
|
|
!endif
|
|
|
|
#!ifdef %use_zlib
|
|
CFLAGS += -dHAVE_ZLIB_H -dHAVE_LIBZ -I$(ZLIB_ROOT)
|
|
#!endif
|
|
|
|
#!ifdef %use_ssl
|
|
CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I$(OPENSSL_ROOT)\inc32
|
|
#!endif
|
|
|
|
!ifdef %use_watt32
|
|
CFLAGS += -dUSE_WATT32 -I$(%watt_root)\inc
|
|
!endif
|
|
|
|
OBJ_BASE = WC_Win32.obj
|
|
LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg
|
|
LIB_ARG = $(OBJ_BASE)\stat\wlib.arg
|
|
|
|
# In order to process Makefile.inc wmake must be called with -u switch!
|
|
!ifndef %MAKEFLAGS
|
|
!error You MUST call wmake with the -u switch!
|
|
!else
|
|
# only OpenSSL is supported with this build system
|
|
CFLAGS += -dLIBSSH2_OPENSSL
|
|
!include ..\Makefile.OpenSSL.inc
|
|
!include ..\Makefile.inc
|
|
!endif
|
|
|
|
OBJS = $(CSOURCES:.c=.obj)
|
|
OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\)
|
|
|
|
#
|
|
# Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN).
|
|
#
|
|
OBJ_DIR = $(OBJ_BASE)\stat
|
|
OBJS_STAT = $+ $(OBJS) $-
|
|
|
|
OBJ_DIR = $(OBJ_BASE)\dyn
|
|
OBJS_DYN = $+ $(OBJS) $-
|
|
|
|
RESOURCE = $(OBJ_BASE)\dyn\libssh2.res
|
|
|
|
.c: ..\src
|
|
|
|
|
|
all: $(OBJ_BASE) $(TARGETS) .SYMBOLIC
|
|
@echo Welcome to libssh2
|
|
|
|
clean: .SYMBOLIC
|
|
-$(RM) $(OBJS_STAT)
|
|
-$(RM) $(OBJS_DYN)
|
|
-$(RM) $(RESOURCE) $(LINK_ARG) $(LIB_ARG)
|
|
|
|
vclean realclean: clean .SYMBOLIC
|
|
-$(RM) $(TARGETS) $(LIBNAME).map $(LIBNAME).sym
|
|
-$(RD) $(OBJ_BASE)\stat
|
|
-$(RD) $(OBJ_BASE)\dyn
|
|
-$(RD) $(OBJ_BASE)
|
|
|
|
$(OBJ_BASE):
|
|
-$(MD) $^@
|
|
-$(MD) $^@\stat
|
|
-$(MD) $^@\dyn
|
|
|
|
$(LIBNAME).dll: $(OBJS_DYN) $(RESOURCE) $(LINK_ARG)
|
|
$(LD) name $^@ @$]@
|
|
|
|
$(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG)
|
|
$(AR) -q -b -c $^@ @$]@
|
|
|
|
.ERASE
|
|
$(RESOURCE): libssh2.rc
|
|
$(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@
|
|
|
|
.ERASE
|
|
.c{$(OBJ_BASE)\dyn}.obj:
|
|
$(CC) $(CFLAGS) -bd -br $[@ -fo=$^@
|
|
|
|
.ERASE
|
|
.c{$(OBJ_BASE)\stat}.obj:
|
|
$(CC) $(CFLAGS) $[@ -fo=$^@
|
|
|
|
$(LINK_ARG): $(__MAKEFILES__)
|
|
%create $^@
|
|
@%append $^@ system nt dll
|
|
@%append $^@ file { $(OBJS_DYN) }
|
|
!ifdef %debug
|
|
@%append $^@ debug all
|
|
@%append $^@ option symfile
|
|
!endif
|
|
@%append $^@ option quiet, map, caseexact, eliminate, implib=$(LIBNAME)_imp.lib,
|
|
@%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
|
|
!ifdef %use_watt32
|
|
@%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib
|
|
!else
|
|
@%append $^@ library ws2_32.lib
|
|
!endif
|
|
#!ifdef %use_zlib
|
|
@%append $^@ library $(ZLIB_ROOT)\zlib.lib
|
|
#!endif
|
|
#!ifdef %use_ssl
|
|
@%append $^@ library $(OPENSSL_ROOT)\out32\libeay32.lib, $(OPENSSL_ROOT)\out32\ssleay32.lib
|
|
#!endif
|
|
|
|
$(LIB_ARG): $(__MAKEFILES__)
|
|
%create $^@
|
|
@for %f in ($(OBJS_STAT)) do @%append $^@ +- %f
|
|
|
|
|