| # |
| # 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) |