diff options
Diffstat (limited to 'cmockery_0_1_2/windows/makefile')
-rw-r--r-- | cmockery_0_1_2/windows/makefile | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/cmockery_0_1_2/windows/makefile b/cmockery_0_1_2/windows/makefile new file mode 100644 index 0000000..c8079d1 --- /dev/null +++ b/cmockery_0_1_2/windows/makefile @@ -0,0 +1,228 @@ +# +# 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. + +# Target directories. +!IFNDEF EXECUTABLE_DIR +EXECUTABLE_DIR=. +!ENDIF # EXECUTABLE_DIR + +!IFNDEF LIBRARY_DIR +LIBRARY_DIR=. +!ENDIF # LIBRARY_DIR + +!IFNDEF INSTALL_DIR +INSTALL_DIR=..\0_1_2 +!ENDIF # INSTALL_DIR + +!IFNDEF OBJECT_DIR +OBJECT_DIR=. +!ENDIF # OBJECT_DIR + +# Tools +!IFNDEF LIBTOOL +LIBTOOL=lib.exe +!ENDIF # LIBTOOL + +!IFNDEF LINK +LINK=link.exe +!ENDIF # LINK + +# Source directories. +LIBRARY_SOURCE_DIRECTORY=..\src +EXAMPLE_SOURCE_DIRECTORY=..\src\example + +# Compiler flags and commands. +CC_COMMAND=$(CC) /nologo /c /D_WIN32_WINNT=0x501 \ + /I$(LIBRARY_SOURCE_DIRECTORY)\google $(CFLAGS) $(**) /Fo$(@) +CC_COMMAND_UNIT_TEST=$(CC_COMMAND) /DUNIT_TESTING=1 \ + /I$(EXAMPLE_SOURCE_DIRECTORY) + +LIBLINKFLAGS=/NOLOGO + +# Library archiver flags and command. +LIB_COMMAND=$(LIBTOOL) $(LIBLINKFLAGS) $(LIBFLAGS) $(**) /OUT:$(@) + +# Linker flags and command. +LINK_COMMAND=$(LINK) $(LIBLINKFLAGS) /SUBSYSTEM:console \ + libcmt.lib kernel32.lib /NODEFAULTLIB:libc.lib \ + $(LFLAGS) $(**) /OUT:$(@) + +.SUFFIXES: .exe .lib .obj .c + +all: $(EXECUTABLE_DIR) $(LIBRARY_DIR) $(OBJECT_DIR) \ + $(LIBRARY_DIR)\cmockery.lib examples + +$(EXECUTABLE_DIR): + mkdir $@ + +!IF "$(LIBRARY_DIR)" != "$(EXECUTABLE_DIR)" +$(LIBRARY_DIR): + mkdir $* +!ENDIF + +!IF "$(OBJECT_DIR)" != "$(LIBRARY_DIR)" && \ + "$(OBJECT_DIR)" != "$(EXECUTABLE_DIR)" +$(OBJECT_DIR): + mkdir $@ +!ENDIF + +examples: \ + $(EXECUTABLE_DIR)\calculator.exe \ + $(EXECUTABLE_DIR)\calculator_test.exe \ + $(EXECUTABLE_DIR)\allocate_module_test.exe \ + $(EXECUTABLE_DIR)\assert_macro_test.exe \ + $(EXECUTABLE_DIR)\customer_database_test.exe \ + $(EXECUTABLE_DIR)\key_value_test.exe \ + $(EXECUTABLE_DIR)\product_database_test.exe \ + $(EXECUTABLE_DIR)\run_tests.exe + +install: + mkdir -p $(INSTALL_DIR)\lib + mkdir -p $(INSTALL_DIR)\include\google + cp -f $(LIBRARY_DIR)\cmockery.lib $(INSTALL_DIR)\lib + cp -f $(LIBRARY_SOURCE_DIRECTORY)\google\cmockery.h $(INSTALL_DIR)\include\google + +clean: + -cmd /c "@for %A in (\ + $(LIBRARY_DIR)\cmockery.lib \ + $(OBJECT_DIR)\cmockery.obj \ + $(EXECUTABLE_DIR)\calculator.exe \ + $(OBJECT_DIR)\calculator.obj \ + $(EXECUTABLE_DIR)\calculator_test.exe \ + $(OBJECT_DIR)\calculator_test.obj \ + $(OBJECT_DIR)\calculator_test-calculator.obj \ + $(EXECUTABLE_DIR)\allocate_module_test.exe \ + $(OBJECT_DIR)\allocate_module_test.obj \ + $(OBJECT_DIR)\allocate_module.obj \ + $(EXECUTABLE_DIR)\assert_macro_test.exe \ + $(OBJECT_DIR)\assert_macro_test.obj \ + $(OBJECT_DIR)\assert_macro.obj \ + $(EXECUTABLE_DIR)\customer_database_test.exe \ + $(OBJECT_DIR)\customer_database_test.obj \ + $(OBJECT_DIR)\customer_database.obj \ + $(EXECUTABLE_DIR)\key_value_test.exe \ + $(OBJECT_DIR)\key_value_test.obj \ + $(OBJECT_DIR)\key_value.obj \ + $(EXECUTABLE_DIR)\product_database_test.exe \ + $(OBJECT_DIR)\product_database_test.obj \ + $(OBJECT_DIR)\product_database.obj \ + $(EXECUTABLE_DIR)\run_tests.exe \ + $(OBJECT_DIR)\run_tests.obj) do @del %A 2>NUL" + -rmdir $(EXECUTABLE_DIR) $(OBJECT_DIR) $(LIBRARY_DIR) 2>NUL + +# Rules for the cmockery library. +$(LIBRARY_DIR)\cmockery.lib: $(OBJECT_DIR)\cmockery.obj +$(OBJECT_DIR)\cmockery.obj: $(LIBRARY_SOURCE_DIRECTORY)\cmockery.c + +# Rules for the calculator application. +$(EXECUTABLE_DIR)\calculator.exe: $(OBJECT_DIR)\calculator.obj + +$(OBJECT_DIR)\calculator.obj: $(EXAMPLE_SOURCE_DIRECTORY)\calculator.c + $(CC_COMMAND) + +# Rules for the calculator test application. +$(EXECUTABLE_DIR)\calculator_test.exe: \ + $(OBJECT_DIR)\calculator_test.obj \ + $(OBJECT_DIR)\calculator_test-calculator.obj \ + $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\calculator_test.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\calculator_test.c + +$(OBJECT_DIR)\calculator_test-calculator.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\calculator.c + $(CC_COMMAND_UNIT_TEST) + +# Sample code applications. +$(EXECUTABLE_DIR)\allocate_module_test.exe: \ + $(OBJECT_DIR)\allocate_module_test.obj \ + $(OBJECT_DIR)\allocate_module.obj \ + $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\allocate_module_test.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\allocate_module_test.c +$(OBJECT_DIR)\allocate_module.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\allocate_module.c + +$(EXECUTABLE_DIR)\assert_macro_test.exe: \ + $(OBJECT_DIR)\assert_macro_test.obj \ + $(OBJECT_DIR)\assert_macro.obj \ + $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\assert_macro_test.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\assert_macro_test.c +$(OBJECT_DIR)\assert_macro.obj: $(EXAMPLE_SOURCE_DIRECTORY)\assert_macro.c + +$(EXECUTABLE_DIR)\customer_database_test.exe: \ + $(OBJECT_DIR)\customer_database_test.obj \ + $(OBJECT_DIR)\customer_database.obj \ + $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\customer_database_test.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\customer_database_test.c +$(OBJECT_DIR)\customer_database.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\customer_database.c + +$(EXECUTABLE_DIR)\key_value_test.exe: \ + $(OBJECT_DIR)\key_value_test.obj \ + $(OBJECT_DIR)\key_value.obj \ + $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\key_value_test.obj: $(EXAMPLE_SOURCE_DIRECTORY)\key_value_test.c +$(OBJECT_DIR)\key_value.obj: $(EXAMPLE_SOURCE_DIRECTORY)\key_value.c + +$(EXECUTABLE_DIR)\product_database_test.exe: \ + $(OBJECT_DIR)\product_database_test.obj \ + $(OBJECT_DIR)\product_database.obj \ + $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\product_database_test.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\product_database_test.c +$(OBJECT_DIR)\product_database.obj: \ + $(EXAMPLE_SOURCE_DIRECTORY)\product_database.c + +$(EXECUTABLE_DIR)\run_tests.exe: \ + $(OBJECT_DIR)\run_tests.obj $(LIBRARY_DIR)\cmockery.lib + $(LINK_COMMAND) + +$(OBJECT_DIR)\run_tests.obj: $(EXAMPLE_SOURCE_DIRECTORY)\run_tests.c + +# Inference rules. +{$(OBJECT_DIR)\}.obj{$(EXECUTABLE_DIR)\}.exe: + $(LINK_COMMAND) + +{$(OBJECT_DIR)\}.obj{$(LIBRARY_DIR)\}.lib: + $(LIB_COMMAND) + +{$(LIBRARY_SOURCE_DIRECTORY)\}.c{$(OBJECT_DIR)\}.obj: + $(CC_COMMAND) + +{$(EXAMPLE_SOURCE_DIRECTORY)\}.c{$(OBJECT_DIR)\}.obj: + $(CC_COMMAND_UNIT_TEST) |