146 lines
3.3 KiB
Makefile
146 lines
3.3 KiB
Makefile
|
# synergy -- mouse and keyboard sharing utility
|
||
|
# Copyright (C) 2007 Chris Schoeneman
|
||
|
#
|
||
|
# This package is free software; you can redistribute it and/or
|
||
|
# modify it under the terms of the GNU General Public License
|
||
|
# found in the file COPYING that should have accompanied this file.
|
||
|
#
|
||
|
# This package is distributed in the hope that it will be useful,
|
||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
# GNU General Public License for more details.
|
||
|
|
||
|
# Name of this file for recursive make
|
||
|
MAKEFILE = Makefile.win
|
||
|
|
||
|
# Default build is release is NODEBUG is defined, debug otherwise.
|
||
|
!if !DEFINED(DEBUG)
|
||
|
NODEBUG = 1
|
||
|
!else
|
||
|
!undef NODEBUG
|
||
|
!endif
|
||
|
|
||
|
# Build all by default
|
||
|
default: all
|
||
|
|
||
|
# Redefine implicit rule suffixes
|
||
|
.SUFFIXES:
|
||
|
.SUFFIXES: .cpp .rc .obj
|
||
|
|
||
|
# Shut up
|
||
|
.SILENT:
|
||
|
|
||
|
# Include system macros
|
||
|
#APPVER = 5.0
|
||
|
#TARGETOS = WINNT
|
||
|
!include <win32.mak>
|
||
|
|
||
|
# Be explicit about C++ compiler
|
||
|
cpp = $(cc)
|
||
|
cppdebug = $(cdebug)
|
||
|
cppflags = $(cflags)
|
||
|
cppvarsmt = $(cvarsmt)
|
||
|
|
||
|
# Library tool options
|
||
|
ildebug =
|
||
|
ilflags = /nologo
|
||
|
|
||
|
# Handy macro for defining list macros
|
||
|
NULL =
|
||
|
|
||
|
# System commands
|
||
|
ECHO = echo
|
||
|
MKDIR = mkdir
|
||
|
RM = del /f
|
||
|
RMR = rmdir /q /s
|
||
|
|
||
|
# Local build utilities
|
||
|
UTIL_DIR = win32util
|
||
|
AUTODEP = "$(UTIL_DIR)\autodep.exe"
|
||
|
|
||
|
# Destination for intermediate build targets
|
||
|
BUILD_DIR = build
|
||
|
BUILD_DEBUG_DIR = $(BUILD_DIR)\Debug
|
||
|
BUILD_RELEASE_DIR = $(BUILD_DIR)\Release
|
||
|
!if DEFINED(NODEBUG)
|
||
|
BUILD_DST = $(BUILD_RELEASE_DIR)
|
||
|
!else
|
||
|
BUILD_DST = $(BUILD_DEBUG_DIR)
|
||
|
!endif
|
||
|
|
||
|
# Compiler argument changes
|
||
|
cflags = $(cflags:-W3=-W4) /WX
|
||
|
cflags = $(cflags) -D_CRT_SECURE_NO_DEPRECATE
|
||
|
cflags = $(cflags) /GR
|
||
|
!if !DEFINED(OLDCOMPILER)
|
||
|
cflags = $(cflags) /EHsc
|
||
|
!else
|
||
|
cflags = $(cflags) /GX
|
||
|
!endif
|
||
|
!if !DEFINED(NODEBUG)
|
||
|
!if !DEFINED(OLDCOMPILER)
|
||
|
cdebug = $(cdebug) /RTC1
|
||
|
!else
|
||
|
cdebug = $(cdebug) /GZ
|
||
|
!endif
|
||
|
!endif
|
||
|
|
||
|
# Initialize variables for library and program makefiles
|
||
|
C_FILES =
|
||
|
CPP_FILES =
|
||
|
OBJ_FILES =
|
||
|
LIB_FILES =
|
||
|
PROGRAMS =
|
||
|
OPTPROGRAMS = $(AUTODEP)
|
||
|
|
||
|
# Include subdirectory makefiles
|
||
|
!include lib\common\$(MAKEFILE)
|
||
|
!include lib\arch\$(MAKEFILE)
|
||
|
!include lib\base\$(MAKEFILE)
|
||
|
!include lib\mt\$(MAKEFILE)
|
||
|
!include lib\io\$(MAKEFILE)
|
||
|
!include lib\net\$(MAKEFILE)
|
||
|
!include lib\synergy\$(MAKEFILE)
|
||
|
!include lib\platform\$(MAKEFILE)
|
||
|
!include lib\client\$(MAKEFILE)
|
||
|
!include lib\server\$(MAKEFILE)
|
||
|
!include cmd\synergyc\$(MAKEFILE)
|
||
|
!include cmd\synergys\$(MAKEFILE)
|
||
|
!include cmd\launcher\$(MAKEFILE)
|
||
|
!include dist\nullsoft\$(MAKEFILE)
|
||
|
|
||
|
# Collect library and program variables
|
||
|
INTERMEDIATES = $(OBJ_FILES) $(AUTODEP:.exe=.obj)
|
||
|
TARGETS = $(LIB_FILES) $(PROGRAMS)
|
||
|
OPTTARGETS = $(OPTPROGRAMS)
|
||
|
|
||
|
# Build release by reinvoking make with NODEBUG defined
|
||
|
release:
|
||
|
@$(MAKE) /nologo /f $(MAKEFILE) NODEBUG=1
|
||
|
|
||
|
# Build debug by reinvoking make with DEBUG defined
|
||
|
debug:
|
||
|
@$(MAKE) /nologo /f $(MAKEFILE) DEBUG=1
|
||
|
|
||
|
# Build all targets
|
||
|
all: $(TARGETS)
|
||
|
|
||
|
# Clean intermediate targets
|
||
|
clean:
|
||
|
-$(RMR) $(BUILD_DEBUG_DIR)
|
||
|
-$(RMR) $(BUILD_RELEASE_DIR)
|
||
|
|
||
|
# Clean all targets
|
||
|
clobber: clean
|
||
|
-$(RMR) $(BUILD_DIR)
|
||
|
|
||
|
# Utility command build rules
|
||
|
$(AUTODEP): $(AUTODEP:.exe=.cpp)
|
||
|
!if DEFINED(NODEBUG)
|
||
|
@$(ECHO) Build $(@F)
|
||
|
$(cpp) $(cppdebug) $(cppflags) $(cppvars) /Fo"$(**:.cpp=.obj)" $**
|
||
|
$(link) $(ldebug) $(conflags) -out:$@ $(**:.cpp=.obj) $(conlibs)
|
||
|
!else
|
||
|
@$(MAKE) /nologo /f $(MAKEFILE) NODEBUG=1 $@
|
||
|
!endif
|