# libcouchbase # Copyright (C) 2010 - 1012 Couchbase, Inc # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. INSTALL=.\done CC_NODEBUG = cl.exe /O2 /DNDEBUG /MD /LD CC_DEBUG = cl.exe /Od /D_DEBUG /RTC1 /Zi /LDd /W3 /MDd CFLAGS = /Iwin32 /Iinclude /Icontrib /Iplugins\io\win32 /I$(INSTALL)\include /Isrc /I. /nologo /W3 /EHsc /DWIN32 /FD /c -D_CRT_SECURE_NO_WARNINGS -DLIBCOUCHBASE_INTERNAL=1 DLLLDFLAGS = /dll /incremental:no /opt:ref,icf /version:1.1 LDFLAGS = /nologo /LIBPATH:$(INSTALL)\lib LD = link.exe RM = del MT = mt.exe /nologo lib_LTLIBRARIES = libcouchbase.dll libcouchbaseD.dll bin_PROGRAMS = tools\cbc.exe libcouchbase_SOURCES = src\arithmetic.c src\base64.c src\behavior.c \ src\cookie.c src\error.c src\event.c src\flush.c src\get.c \ src\handler.c src\instance.c src\iofactory.c src\packet.c \ src\remove.c src\ringbuffer.c src\hashset.c src\server.c src\stats.c \ src\store.c src\strerror.c src\synchandler.c \ src\timeout.c src\timings.c src\touch.c src\utilities.c \ src\wait.c src\gethrtime.c plugins\io\win32\plugin-win32.c src\isasl.c \ src\compat.c contrib\http_parser\http_parser.c src\http.c \ src\observe.c src\timer.c src\verbosity.c src\sanitycheck.c \ contrib\libvbucket\crc32.c contrib\libvbucket\cJSON.c \ contrib\libvbucket\vbucket.c contrib\libvbucket\ketama.c \ contrib\libvbucket\rfc1321\md5c.c # Unfortunately nmake is a bit limited in its substitute functions. # Work around that by using dobj to represent debug object files ;) libcouchbase_la_OBJECTS=$(libcouchbase_SOURCES:.c=.obj) libcouchbase_la_debug_OBJECTS=$(libcouchbase_SOURCES:.c=.dobj) tools_cbc_CXX_SOURCES = tools\cbc.cc \ tools\cbc-util.cc tools\commandlineparser.cc tools\configuration.cc tools_cbc_C_SOURCES = win32\getopt.c tools_cbc_OBJECTS = $(tools_cbc_CXX_SOURCES:.cc=.obj) \ $(tools_cbc_C_SOURCES:.c=.obj) all_OBJS=$(libcouchbase_la_OBJECTS) $(libcouchbase_la_debug_OBJECTS) $(tools_cbc_OBJECTS) all: $(lib_LTLIBRARIES) \ libcouchbase.dll \ $(bin_PROGRAMS) \ libcouchbase.dll: $(libcouchbase_la_OBJECTS) $(LD) $(LDFLAGS) $(DLLLDFLAGS) /out:libcouchbase.dll /DEBUG /PDB:"libcouchbase.pdb" $(libcouchbase_la_OBJECTS) ws2_32.lib $(MT) /outputresource:"libcouchbase.dll;#1" /manifest ".\libcouchbase.dll.manifest" libcouchbaseD.dll: $(libcouchbase_la_debug_OBJECTS) $(LD) $(LDFLAGS) $(DLLLDFLAGS) /out:libcouchbaseD.dll /DEBUG /PDB:"libcouchbaseD.pdb" $(libcouchbase_la_debug_OBJECTS) ws2_32.lib $(MT) /outputresource:"libcouchbaseD.dll;#1" /manifest ".\libcouchbaseD.dll.manifest" tools\cbc.exe: $(tools_cbc_OBJECTS) libcouchbase.dll $(LD) $(LDFLAGS) -out:tools\cbc.exe $(tools_cbc_OBJECTS) libcouchbase.lib ws2_32.lib $(MT) /outputresource:"tools\cbc.exe;#1" /manifest ".\tools\cbc.exe.manifest" .SUFFIXES: .c .cc .obj .dobj .res .c.dobj: $(CC_DEBUG) $(CFLAGS) /Fo"$@" $< .c.obj: $(CC_NODEBUG) $(CFLAGS) /Fo"$@" $< .cc.dobj: $(CC_DEBUG) $(CFLAGS) /Fo"$@" $< .cc.obj: $(CC_NODEBUG) $(CFLAGS) /Fo"$@" $< clean: -del $(all_OBJS) \ libcouchbase.dll libcouchbase.exp libcouchbase.lib \ libcouchbaseD.dll libcouchbaseD.exp libcouchbaseD.lib \ vc90.idb vc90.pdb $(bin_PROGRAMS) INSTALLDIRS=$(INSTALL) $(INSTALL)\include $(INSTALL)\include\libcouchbase $(INSTALL)\lib $(INSTALL)\bin install: $(INSTALLDIRS) libcouchbase.dll libcouchbaseD.dll $(bin_PROGRAMS) copy include\libcouchbase\** $(INSTALL)\include\libcouchbase -del $(INSTALL)\include\libcouchbase\configuration.h.in copy win32\libcouchbase\configuration.h $(INSTALL)\include\libcouchbase copy libcouchbase.dll $(INSTALL)\bin copy libcouchbaseD.dll $(INSTALL)\bin copy libcouchbase.pdb $(INSTALL)\bin copy libcouchbaseD.pdb $(INSTALL)\bin copy libcouchbase.lib $(INSTALL)\lib copy libcouchbaseD.lib $(INSTALL)\lib copy tools\cbc.exe $(INSTALL)\bin uninstall: -del $(INSTALL)\bin\libcouchbase.dll \ $(INSTALL)\bin\libcouchbaseD.dll \ $(INSTALL)\bin\libcouchbase.pdb \ $(INSTALL)\bin\libcouchbaseD.pdb \ $(INSTALL)\lib\libcouchbase.lib \ $(INSTALL)\lib\libcouchbaseD.lib \ $(INSTALL)\include\libcouchbase\behavior.h \ $(INSTALL)\include\libcouchbase\callbacks.h \ $(INSTALL)\include\libcouchbase\configuration.h \ $(INSTALL)\include\libcouchbase\couchbase.h \ $(INSTALL)\include\libcouchbase\libevent_io_opts.h \ $(INSTALL)\include\libcouchbase\timings.h \ $(INSTALL)\include\libcouchbase\types.h \ $(INSTALL)\include\libcouchbase\arguments.h \ $(INSTALL)\include\libcouchbase\visibility.h \ $(INSTALL)\include\libcouchbase\winsock_io_opts.h \ $(INSTALL)\bin\cbc.exe -rmdir $(INSTALL)\lib $(INSTALL)\bin $(INSTALL)\include\libcouchbase $(INSTALL)\include $(INSTALL) $(INSTALL) $(INSTALL)\include $(INSTALL)\include\libcouchbase $(INSTALL)\lib $(INSTALL)\bin:; -@mkdir $@