140 lines
4.5 KiB
Makefile
140 lines
4.5 KiB
Makefile
#
|
|
# Copyright 2008 Google Inc.
|
|
#
|
|
# 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.
|
|
#
|
|
# Microsoft Windows namke file which builds the cmockery library and example
|
|
# applications.
|
|
#
|
|
# To use this makefile...
|
|
# Select Start->Run and run "cmd.exe" to open the command line.
|
|
# Run "vsvars.bat" located in Microsoft Visual Studio's directory.
|
|
# Run "nmake" to build the cmockery library and example applications.
|
|
# Run "nmake clean" to delete all files built by this makefile.
|
|
|
|
LIBRARY_SOURCE_DIRECTORY=..\src
|
|
EXAMPLE_SOURCE_DIRECTORY=..\src\example
|
|
|
|
CFLAGS=/nologo /c /D_WIN32_WINNT=0x501 /I$(LIBRARY_SOURCE_DIRECTORY)\google \
|
|
/I$(EXAMPLE_SOURCE_DIRECTORY)
|
|
CC_COMMAND=$(CC) $(CFLAGS) $(**) /Fo$(@)
|
|
CC_COMMAND_UNIT_TEST=$(CC_COMMAND) /DUNIT_TESTING=1
|
|
|
|
LIBLINKFLAGS=/NOLOGO /MACHINE:x86 /SUBSYSTEM:console
|
|
|
|
LIBRARY_ARCHIVER=lib.exe
|
|
LIBFLAGS=$(LIBLINKFLAGS)
|
|
LIB_COMMAND=$(LIBRARY_ARCHIVER) $(LIBFLAGS) $(**) /OUT:$(@)
|
|
|
|
LINK=link.exe
|
|
LFLAGS=$(LIBLINKFLAGS) libcmt.lib kernel32.lib /NODEFAULTLIB:libc.lib
|
|
LINK_COMMAND=$(LINK) $(LFLAGS) $(**) /OUT:$(@)
|
|
|
|
.SUFFIXES: .exe .lib .obj .c
|
|
|
|
all: cmockery.lib calculator.exe calculator_test.exe allocate_module_test.exe \
|
|
assert_macro_test.exe customer_database_test.exe key_value_test.exe \
|
|
product_database_test.exe run_tests.exe
|
|
|
|
clean:
|
|
-cmd /c "@for %A in (\
|
|
cmockery.lib cmockery.obj \
|
|
calculator.exe calculator.obj \
|
|
calculator_test.exe calculator_test.obj \
|
|
calculator_test-calculator.obj \
|
|
allocate_module_test.exe allocate_module_test.obj \
|
|
allocate_module.obj \
|
|
assert_macro_test.exe assert_macro_test.obj \
|
|
assert_macro.obj \
|
|
customer_database_test.exe customer_database_test.obj \
|
|
customer_database.obj \
|
|
key_value_test.exe key_value_test.obj key_value.obj \
|
|
product_database_test.exe product_database_test.obj \
|
|
product_database.obj \
|
|
run_tests.exe run_tests.obj) do @del %A 2>NUL"
|
|
|
|
# Rules for the cmockery library.
|
|
cmockery.lib: cmockery.obj
|
|
cmockery.obj: $(LIBRARY_SOURCE_DIRECTORY)\cmockery.c
|
|
|
|
# Rules for the calculator application.
|
|
calculator.exe: calculator.obj
|
|
|
|
calculator.obj: $(EXAMPLE_SOURCE_DIRECTORY)\calculator.c
|
|
$(CC_COMMAND)
|
|
|
|
# Rules for the calculator test application.
|
|
calculator_test.exe: calculator_test.obj calculator_test-calculator.obj \
|
|
cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
calculator_test.obj: $(EXAMPLE_SOURCE_DIRECTORY)\calculator_test.c
|
|
|
|
calculator_test-calculator.obj: $(EXAMPLE_SOURCE_DIRECTORY)\calculator.c
|
|
$(CC_COMMAND_UNIT_TEST)
|
|
|
|
# Sample code applications.
|
|
allocate_module_test.exe: allocate_module_test.obj allocate_module.obj \
|
|
cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
allocate_module_test.obj: $(EXAMPLE_SOURCE_DIRECTORY)\allocate_module_test.c
|
|
allocate_module.obj: $(EXAMPLE_SOURCE_DIRECTORY)\allocate_module.c
|
|
|
|
assert_macro_test.exe: assert_macro_test.obj assert_macro.obj \
|
|
cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
assert_macro_test.obj: $(EXAMPLE_SOURCE_DIRECTORY)\assert_macro_test.c
|
|
assert_macro.obj: $(EXAMPLE_SOURCE_DIRECTORY)\assert_macro.c
|
|
|
|
customer_database_test.exe: customer_database_test.obj customer_database.obj \
|
|
cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
customer_database_test.obj: \
|
|
$(EXAMPLE_SOURCE_DIRECTORY)\customer_database_test.c
|
|
customer_database.obj: $(EXAMPLE_SOURCE_DIRECTORY)\customer_database.c
|
|
|
|
key_value_test.exe: key_value_test.obj key_value.obj \
|
|
cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
key_value_test.obj: $(EXAMPLE_SOURCE_DIRECTORY)\key_value_test.c
|
|
key_value.obj: $(EXAMPLE_SOURCE_DIRECTORY)\key_value.c
|
|
|
|
product_database_test.exe: product_database_test.obj product_database.obj \
|
|
cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
product_database_test.obj: $(EXAMPLE_SOURCE_DIRECTORY)\product_database_test.c
|
|
product_database.obj: $(EXAMPLE_SOURCE_DIRECTORY)\product_database.c
|
|
|
|
run_tests.exe: run_tests.obj cmockery.lib
|
|
$(LINK_COMMAND)
|
|
|
|
run_tests.obj: $(EXAMPLE_SOURCE_DIRECTORY)\run_tests.c
|
|
|
|
# Inference rules.
|
|
.obj.exe:
|
|
$(LINK_COMMAND)
|
|
|
|
.obj.lib:
|
|
$(LIB_COMMAND)
|
|
|
|
{$(LIBRARY_SOURCE_DIRECTORY)\}.c{}.obj:
|
|
$(CC_COMMAND)
|
|
|
|
{$(EXAMPLE_SOURCE_DIRECTORY)\}.c{}.obj:
|
|
$(CC_COMMAND_UNIT_TEST)
|