Sleds/K2Client/Nmakefile

106 lines
2.8 KiB
Plaintext

#
# NMakefile for Windows MSVC
#
!IF DEFINED(debug)
COMP_TYPE = Debug
!ELSE
COMP_TYPE = Release
!ENDIF
!IF DEFINED(debug)
IONU_LIBDIR = /libpath:../libeye/x64/Debug
OPENSSL_LIBDIR = /libpath:../thirdparty/openssl/lib/$(PLATFORM)/Debug
!ELSE
IONU_LIBDIR = /libpath:../libeye/Release
OPENSSL_LIBDIR = /libpath:../thirdparty/openssl/lib/$(PLATFORM)/Release
!ENDIF
LIBEYE_INCLUDE = -I../libeye
LIBEYE_LIB = libeye.lib
OPENSSL_INCLUDE = -I../thirdparty/openssl/include
OPENSSL_LIB = libeay32.lib ssleay32.lib
PTHREAD_INCLUDE = -I../thirdparty/pthreads-1.11/include
PTHREAD_LIBDIR = /libpath:../thirdparty/pthreads-1.11/lib/$(PLATFORM)/$(COMP_TYPE)
PTHREAD_LIB = pthreadVCE1.lib
WIN_LIBS=
OPTIM = /arch:SSE2 /GS /GL /analyze- /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /fp:precise /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MT /EHsc /nologo
OPTIMD = /arch:SSE2 /GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /fp:precise /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MTd /EHsc /nologo
CCFLAGS_COMMON = /TP /W3 /DWIN32 /D_CRT_SECURE_NO_WARNINGS /nologo /I. $(LIBEYE_INCLUDE) $(PTHREAD_INCLUDE) $(OPENSSL_INCLUDE)
!IF "$(PLATFORM)" == "win64"
LFLAGSO = /LTCG /MACHINE:X64 /NOLOGO
LFLAGSD = /MACHINE:X64 /NOLOGO
!ELSE
LFLAGSO = /LTCG /MACHINE:X86 /NOLOGO
LFLAGSD = /MACHINE:X86 /NOLOGO
!ENDIF
DEBUG_DIR = Debug
RELEASE_DIR = Release
!IF DEFINED(debug)
CCFLAGS = $(OPTIMD) $(CCFLAGS_COMMON)
LFLAGS = $(LFLAGSD)
OUTPUT_DIR = $(DEBUG_DIR)
!ELSE
CCFLAGS = $(OPTIM) $(CCFLAGS_COMMON)
LFLAGS = $(LFLAGSO)
OUTPUT_DIR = $(RELEASE_DIR)
!ENDIF
OBJDIR = obj/$(PLATFORM)/$(OUTPUT_DIR)
LIBDIR = lib/$(PLATFORM)/$(OUTPUT_DIR)
BINDIR = bin/$(PLATFORM)/$(OUTPUT_DIR)
LIBS = $(LIBDIR)/k2client.lib
LIB_OBJS = \
$(OBJDIR)/Hash.obj \
$(OBJDIR)/K2Client.obj \
$(OBJDIR)/proxy.obj \
$(OBJDIR)/servers.obj \
$(OBJDIR)/util.obj \
$(OBJDIR)/platform_binding.obj
all: showconfig $(LIBS)
compile: showconfig $(LIBS)
showconfig:
@echo PLATFORM : $(PLATFORM)
@echo PLATFORMFLAGS : $(PLATFORMFLAGS)
mkdir -p $(OBJDIR)
mkdir -p $(LIBDIR)
mkdir -p $(BINDIR)
$(LIBS): $(LIB_OBJS) Hash.h K2Client.h K2IPC.h platform_binding.h proxy.h servers.h util.h constants.h
lib $(LFLAGS) $(LIB_OBJS) /out:$@
{}.cpp{$(OBJDIR)}.obj :
cl $(CCFLAGS) -c $< /Fo$@
clean:
rm -f $(OBJDIR)/*
rm -f $(LIBDIR)/*
rm -f $(BINDIR)/*
rm -f *.idb
rm -f *.pdb
bin\$(PLATFORM)\$(OUTPUT_DIR)\testapi.exe: main.cpp $(LIBS)
cl /Fe$(BINDIR)/testapi.exe /Fo$(OBJDIR)/main.obj $(CCFLAGS) main.cpp /link /SUBSYSTEM:CONSOLE $(PTHREAD_LIBDIR) $(IONU_LIBDIR) $(LIBS) $(PTHREAD_LIB) $(WIN_LIBS) $(LIBEYE_LIB)
test: showconfig $(LIBS) bin\$(PLATFORM)\$(OUTPUT_DIR)\testapi.exe
@echo "\n\n*** testapi ***"
bin\$(PLATFORM)\$(OUTPUT_DIR)\testapi.exe -health-check $(K2DAEMON)
release: showconfig $(LIBS)
install: showconfig $(LIBS)
package: