mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/win32-vd_agent
synced 2025-12-26 04:36:05 +00:00
Enable NX (prevent data to be executable) and ASLR (address randomisation). Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Uri Lublin <uril@redhat.com>
191 lines
5.0 KiB
Makefile
191 lines
5.0 KiB
Makefile
NULL =
|
|
EXTRA_DIST = mingw-spice-vdagent.spec
|
|
MAINTAINERCLEANFILES = mingw-spice-vdagent.spec
|
|
|
|
AM_CPPFLAGS = \
|
|
-DUNICODE \
|
|
-D_UNICODE \
|
|
-DOLDMSVCRT \
|
|
-DWINVER=0x0601 \
|
|
-I$(top_srcdir)/common \
|
|
-I$(top_srcdir)/spice-protocol \
|
|
-I$(top_srcdir)/spice-common \
|
|
$(NULL)
|
|
|
|
AM_LDFLAGS = -static
|
|
if !ENABLE_DEBUG
|
|
AM_LDFLAGS += -s
|
|
endif
|
|
|
|
# binutils does not take into account entry point when
|
|
# -pie is used so we need to provide it manually
|
|
# ENTRY_PREFIX is empty for x86_64, underscore ("_") otherwise
|
|
ENTRY_PREFIX := $(if $(filter x86_64,$(host_cpu)),,_)
|
|
|
|
# --dynamicbase to enable ASLR protection
|
|
# --nxcompat is to enable NX protection
|
|
# -pie as --dynamicbase requires relocations
|
|
LDFLAGS_SECURITY_COMMON = \
|
|
-Wl,--dynamicbase -Wl,-pie \
|
|
-Wl,--nxcompat \
|
|
$(NULL)
|
|
LDFLAGS_SECURITY_GUI = $(LDFLAGS_SECURITY_COMMON) \
|
|
-Wl,-e,$(ENTRY_PREFIX)WinMainCRTStartup \
|
|
-mwindows \
|
|
$(NULL)
|
|
LDFLAGS_SECURITY_CUI = $(LDFLAGS_SECURITY_COMMON) \
|
|
-Wl,-e,$(ENTRY_PREFIX)mainCRTStartup \
|
|
-mconsole \
|
|
$(NULL)
|
|
|
|
bin_PROGRAMS = vdagent vdservice
|
|
|
|
vdagent_LDADD = $(LIBPNG_LIBS) $(ZLIB_LIBS) -lwtsapi32 -lgdi32 -luuid -lole32 -loleaut32 -lmpr -lshlwapi vdagent_rc.$(OBJEXT)
|
|
vdagent_CXXFLAGS = $(AM_CXXFLAGS) $(LIBPNG_CFLAGS)
|
|
vdagent_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_SECURITY_GUI)
|
|
vdagent_SOURCES = \
|
|
common/vdcommon.cpp \
|
|
common/vdcommon.h \
|
|
common/vdlog.cpp \
|
|
common/vdlog.h \
|
|
spice-common/common/agent.c \
|
|
spice-common/common/agent.h \
|
|
vdagent/display_configuration.cpp \
|
|
vdagent/display_configuration.h \
|
|
vdagent/desktop_layout.cpp \
|
|
vdagent/desktop_layout.h \
|
|
vdagent/display_setting.cpp \
|
|
vdagent/display_setting.h \
|
|
vdagent/file_xfer.cpp \
|
|
vdagent/file_xfer.h \
|
|
vdagent/vdagent.cpp \
|
|
vdagent/as_user.cpp \
|
|
vdagent/as_user.h \
|
|
vdagent/image.cpp \
|
|
vdagent/image.h \
|
|
vdagent/imagepng.cpp \
|
|
vdagent/imagepng.h \
|
|
vdagent/shell.cpp \
|
|
vdagent/shell.h \
|
|
$(NULL)
|
|
|
|
vdagent_rc.$(OBJEXT): vdagent/vdagent.rc
|
|
$(AM_V_GEN)$(WINDRES) -I $(top_builddir) -i $< -o $@
|
|
|
|
MAINTAINERCLEANFILES += vdagent_rc.$(OBJEXT)
|
|
|
|
vdservice_LDADD = -lwtsapi32 vdservice_rc.$(OBJEXT)
|
|
vdservice_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_SECURITY_CUI)
|
|
vdservice_SOURCES = \
|
|
common/stdint.h \
|
|
common/vdcommon.cpp \
|
|
common/vdcommon.h \
|
|
common/vdlog.cpp \
|
|
common/vdlog.h \
|
|
vdservice/vdservice.cpp \
|
|
$(NULL)
|
|
|
|
vdservice_rc.$(OBJEXT): vdservice/vdservice.rc
|
|
$(AM_V_GEN)$(WINDRES) -I $(top_builddir) -i $< -o $@
|
|
|
|
MAINTAINERCLEANFILES += vdservice_rc.$(OBJEXT)
|
|
|
|
check_PROGRAMS = imagetest
|
|
|
|
imagetest_LDADD = $(LIBPNG_LIBS) $(ZLIB_LIBS) -lwtsapi32 -lgdi32
|
|
imagetest_CXXFLAGS = $(AM_CXXFLAGS) $(LIBPNG_CFLAGS)
|
|
imagetest_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_SECURITY_CUI)
|
|
imagetest_SOURCES = \
|
|
common/vdcommon.cpp \
|
|
common/vdcommon.h \
|
|
common/vdlog.cpp \
|
|
common/vdlog.h \
|
|
vdagent/imagetest.cpp \
|
|
vdagent/image.cpp \
|
|
vdagent/image.h \
|
|
vdagent/imagepng.cpp \
|
|
vdagent/imagepng.h \
|
|
$(NULL)
|
|
|
|
TESTS = test-png
|
|
EXTRA_DIST += test-png
|
|
|
|
check_PROGRAMS += test-log-win
|
|
TESTS += test-log
|
|
EXTRA_DIST += test-log
|
|
|
|
test_log_win_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_SECURITY_CUI)
|
|
test_log_win_SOURCES = \
|
|
common/vdcommon.cpp \
|
|
common/vdcommon.h \
|
|
common/vdlog.cpp \
|
|
common/vdlog.h \
|
|
common/test-log.cpp \
|
|
$(NULL)
|
|
|
|
check_PROGRAMS += test-shell-win
|
|
TESTS += test-shell
|
|
EXTRA_DIST += test-shell
|
|
test_shell_win_LDFLAGS = $(AM_LDFLAGS) -Wl,--subsystem,console
|
|
test_shell_win_LDADD = -luuid -lole32 -loleaut32
|
|
test_shell_win_SOURCES = \
|
|
vdagent/test-shell.cpp \
|
|
$(NULL)
|
|
|
|
MANUFACTURER = The Spice Project
|
|
PRODUCT = Spice agent
|
|
|
|
EXTRA_DIST += spice-vdagent.wxs.in
|
|
CONFIG_STATUS_DEPENDENCIES = spice-vdagent.wxs.in
|
|
|
|
spice-vdagent-$(WIXL_ARCH)-$(VERSION)$(BUILDID).msi: spice-vdagent.wxs all
|
|
$(AM_V_GEN)DESTDIR=`mktemp -d`&& \
|
|
make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \
|
|
MANUFACTURER="$(MANUFACTURER)" PRODUCT="$(PRODUCT)" \
|
|
INSTALLDIRECTORY="$(PRODUCT)" BINDIRECTORY=bin \
|
|
wixl -D SourceDir=$$DESTDIR$(prefix)/bin \
|
|
--arch $(WIXL_ARCH) -o $@ $<
|
|
|
|
msi: spice-vdagent-$(WIXL_ARCH)-$(VERSION)$(BUILDID).msi
|
|
|
|
CLEANFILES = spice-vdagent-$(WIXL_ARCH)-$(VERSION)$(BUILDID).msi
|
|
|
|
.PHONY: msi
|
|
|
|
EXTRA_DIST += \
|
|
$(top_srcdir)/.version \
|
|
config.h \
|
|
common/version.rc \
|
|
tests/clipboard.py \
|
|
vdagent/resource.h \
|
|
vdagent/vdagent.rc \
|
|
vdservice/resource.h \
|
|
vdservice/vdservice.rc \
|
|
CMakeLists.txt
|
|
|
|
## spice-protocol moved to Meson, distribute manually
|
|
EXTRA_DIST += \
|
|
spice-protocol/spice/barrier.h \
|
|
spice-protocol/spice/end-packed.h \
|
|
spice-protocol/spice/enums.h \
|
|
spice-protocol/spice/ipc_ring.h \
|
|
spice-protocol/spice/macros.h \
|
|
spice-protocol/spice/qxl_dev.h \
|
|
spice-protocol/spice/qxl_windows.h \
|
|
spice-protocol/spice/start-packed.h \
|
|
spice-protocol/spice/types.h \
|
|
spice-protocol/spice/vd_agent.h \
|
|
$(NULL)
|
|
|
|
# see git-version-gen
|
|
dist-hook:
|
|
echo $(VERSION) > $(distdir)/.tarball-version
|
|
|
|
BUILT_SOURCES = $(top_srcdir)/.version
|
|
$(top_srcdir)/.version:
|
|
echo $(VERSION) > $@-t && mv $@-t $@
|
|
|
|
MAINTAINERCLEANFILES += $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL)
|
|
|
|
-include $(top_srcdir)/git.mk
|