fc94046e6e
Inspired by Bob Kast's reports, this commit enables the compilation
of libssh2 with WinCNG using the generated Visual Studio project files.
This commit adds WinCNG support to parts of the existing Win32 build
infrastructure, until new build systems, like pre-defined VS project
files or CMake files may be added.
This commit and b20bfeb3e5
raise one
question: How to handle build systems, like VS project files, that
need to include all source files regardless of the desired target,
including all supported crypto backends? For now the mentioned commit
added a check for LIBSSH2_OPENSSL to openssl.c and with this commit
the supported crypto backends are hardcoded within Makefile.am.
138 lines
3.9 KiB
Makefile
138 lines
3.9 KiB
Makefile
AUTOMAKE_OPTIONS = foreign nostdinc
|
|
|
|
SUBDIRS = src tests docs
|
|
if BUILD_EXAMPLES
|
|
SUBDIRS += example
|
|
endif
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = libssh2.pc
|
|
|
|
include_HEADERS = \
|
|
include/libssh2.h \
|
|
include/libssh2_publickey.h \
|
|
include/libssh2_sftp.h
|
|
|
|
NETWAREFILES = nw/keepscreen.c \
|
|
nw/nwlib.c \
|
|
nw/GNUmakefile \
|
|
nw/test/GNUmakefile
|
|
|
|
DSP = win32/libssh2.dsp
|
|
VCPROJ = win32/libssh2.vcproj
|
|
|
|
DISTCLEANFILES = $(DSP)
|
|
|
|
VMSFILES = vms/libssh2_make_example.dcl vms/libssh2_make_help.dcl \
|
|
vms/libssh2_make_kit.dcl vms/libssh2_make_lib.dcl vms/man2help.c \
|
|
vms/readme.vms vms/libssh2_config.h
|
|
|
|
WIN32FILES = win32/GNUmakefile win32/test/GNUmakefile \
|
|
win32/libssh2_config.h win32/config.mk win32/rules.mk \
|
|
win32/Makefile.Watcom win32/libssh2.dsw win32/tests.dsp $(DSP) \
|
|
win32/msvcproj.head win32/msvcproj.foot win32/libssh2.rc
|
|
|
|
EXTRA_DIST = $(WIN32FILES) buildconf $(NETWAREFILES) get_ver.awk HACKING \
|
|
maketgz NMakefile TODO RELEASE-NOTES libssh2.pc.in $(VMSFILES) config.rpath
|
|
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
.PHONY: ChangeLog
|
|
ChangeLog:
|
|
echo "see NEWS" > ./ChangeLog
|
|
DISTCLEANFILES += ChangeLog
|
|
|
|
dist-hook:
|
|
rm -rf $(top_builddir)/tests/log
|
|
find $(distdir) -name "*.dist" -exec rm {} \;
|
|
(distit=`find $(srcdir) -name "*.dist"`; \
|
|
for file in $$distit; do \
|
|
strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \
|
|
cp $$file $(distdir)$$strip; \
|
|
done)
|
|
|
|
# Code Coverage
|
|
|
|
init-coverage:
|
|
make clean
|
|
lcov --directory . --zerocounters
|
|
|
|
COVERAGE_CCOPTS ?= "-g --coverage"
|
|
COVERAGE_OUT ?= docs/coverage
|
|
|
|
build-coverage:
|
|
make CFLAGS=$(COVERAGE_CCOPTS) check
|
|
mkdir -p $(COVERAGE_OUT)
|
|
lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \
|
|
--capture
|
|
|
|
gen-coverage:
|
|
genhtml --output-directory $(COVERAGE_OUT) \
|
|
$(COVERAGE_OUT)/$(PACKAGE).info \
|
|
--highlight --frames --legend \
|
|
--title "$(PACKAGE_NAME)"
|
|
|
|
coverage: init-coverage build-coverage gen-coverage
|
|
|
|
# DSP/VCPROJ generation adapted from libcurl
|
|
# only OpenSSL and WinCNG are supported with this build system
|
|
CRYPTO_CSOURCES = openssl.c wincng.c
|
|
CRYPTO_HHEADERS = openssl.h wincng.h
|
|
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
|
include Makefile.inc
|
|
|
|
WIN32SOURCES = $(CSOURCES)
|
|
WIN32HEADERS = $(HHEADERS) libssh2_config.h
|
|
|
|
$(DSP): win32/msvcproj.head win32/msvcproj.foot Makefile.am
|
|
echo "creating $(DSP)"
|
|
@( (cat $(srcdir)/win32/msvcproj.head; \
|
|
echo "# Begin Group \"Source Files\""; \
|
|
echo ""; \
|
|
echo "# PROP Default_Filter \"cpp;c;cxx\""; \
|
|
win32_srcs='$(WIN32SOURCES)'; \
|
|
sorted_srcs=`for file in $$win32_srcs; do echo $$file; done | sort`; \
|
|
for file in $$sorted_srcs; do \
|
|
echo "# Begin Source File"; \
|
|
echo ""; \
|
|
echo "SOURCE=..\\src\\"$$file; \
|
|
echo "# End Source File"; \
|
|
done; \
|
|
echo "# End Group"; \
|
|
echo "# Begin Group \"Header Files\""; \
|
|
echo ""; \
|
|
echo "# PROP Default_Filter \"h;hpp;hxx\""; \
|
|
win32_hdrs='$(WIN32HEADERS)'; \
|
|
sorted_hdrs=`for file in $$win32_hdrs; do echo $$file; done | sort`; \
|
|
for file in $$sorted_hdrs; do \
|
|
echo "# Begin Source File"; \
|
|
echo ""; \
|
|
if [ "$$file" == "libssh2_config.h" ]; \
|
|
then \
|
|
echo "SOURCE=.\\"$$file; \
|
|
else \
|
|
echo "SOURCE=..\\src\\"$$file; \
|
|
fi; \
|
|
echo "# End Source File"; \
|
|
done; \
|
|
echo "# End Group"; \
|
|
cat $(srcdir)/win32/msvcproj.foot) | \
|
|
awk '{printf("%s\r\n", gensub("\r", "", "g"))}' > $@ )
|
|
|
|
$(VCPROJ): win32/vc8proj.head win32/vc8proj.foot Makefile.am
|
|
echo "creating $(VCPROJ)"
|
|
@( (cat $(srcdir)/vc8proj.head; \
|
|
win32_srcs='$(WIN32SOURCES)'; \
|
|
sorted_srcs=`for file in $$win32_srcs; do echo $$file; done | sort`; \
|
|
for file in $$sorted_srcs; do \
|
|
echo "<File RelativePath=\""..\src\$$file"\"></File>"; \
|
|
done; \
|
|
echo "</Filter><Filter Name=\"Header Files\">"; \
|
|
win32_hdrs='$(WIN32HEADERS)'; \
|
|
sorted_hdrs=`for file in $$win32_hdrs; do echo $$file; done | sort`; \
|
|
for file in $$sorted_hdrs; do \
|
|
echo "<File RelativePath=\""..\src\$$file"\"></File>"; \
|
|
done; \
|
|
cat $(srcdir)/vc8proj.foot) | \
|
|
awk '{printf("%s\r\n", gensub("\r", "", "g"))}' > $@ )
|