- Fixed taking the address of begin() on an empty std::vector.
- Fixed nsis makefile to use %ProgramFiles% environment variable.
- Fixed nsis makefile to pass the output directory and file to makensis.
- Fixed synergy.nsi to get the files from the output directory. That
enables a debug build of the installer.
- Fixes to compile under VS2005.
I did not apply VS2005 project files, instead adding nmake files.
nmake is pretty weak but the makefiles can be modified without having
visual studio. Also modified the .rc files to not use winres.h.
This plus nmake means synergy can now be built using the freely
downloadable Microsoft Windows SDK for Vista, available from
microsoft's web site. This change removes all of the old VC++6
project files in favor of the nmake files. It also removes the
XCode project in favor of ./configure and make.
All of the nmake files are named nmake.mak. Only the top level
makefile is directly useful (the rest are included by it) so all
builds are from the top level directory. nmake knows the following
targets:
all: build synergy.exe, synergyc.exe and synergys.exe
clean: remove all intermediate files, keep programs
clobber: clean and remove programs
installer: build programs and an installer
debug: build a debug version of 'all'
release: build a release version of 'all'
debug-installer: build an installer of the debug build
release-installer: build an installer of the release build
The default build version is release so 'all' and 'installer' will
build a release version. The installer itself never has debug
symbols, just the stuff it installs. The default target is 'all'.
To build use:
nmake /nologo /f nmake.mak <target>
VC++ and VisualStudio users may need to manually run vcvars.bat in a
command.exe or cmd.exe window before invoking nmake. The Window 98/Me
command.exe may not handle potentially long command lines; I haven't
tried to verify if that works.
an strange deadlock seen on OSX. The CSocketMultiplexer deadlocks
with two threads, one waiting for m_polling to become false and
the other waiting for m_pollable to become true. The weird part
is that they're both false so the first thread should proceed.
It either didn't receive the broadcast when m_polling went to
false or it's not really checking the actual value of that flag.
I can't see how the former is possible and this change fixes the
latter.
an event queue and events, TCP sockets converted to use events,
unix multithreading and network stuff converted, and an X Windows
event queue subclass.
lib/arch. This should make porting easier. Will probably
continue to refactor a little more, moving platform dependent
event handling stuff into lib/platform.
from config.h if available (which means version is now a
string, not three integers). Changed version to 1.0.0 and
protocol version to 1.0. And added MAINTAINERCLEANFILES
to makefiles to remove generated files.
synergy.cpp and server.cpp into cmd/synergyd as synergyd.cpp.
Moved and renamed related files. Moved remaining source files
into lib/.... Modified and added makefiles as appropriate.
Result is that library files are under lib with each library
in its own directory and program files are under cmd with each
command in its own directory.