UNIXworkcode

 1  #
 2  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 3  #
 4  # Copyright 2018 Olaf Wintermann. All rights reserved.
 5  #
 6  # Redistribution and use in source and binary forms, with or without
 7  # modification, are permitted provided that the following conditions are met:
 8  #
 9  #   1. Redistributions of source code must retain the above copyright
10  #      notice, this list of conditions and the following disclaimer.
11  #
12  #   2. Redistributions in binary form must reproduce the above copyright
13  #      notice, this list of conditions and the following disclaimer in the
14  #      documentation and/or other materials provided with the distribution.
15  #
16  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  # POSSIBILITY OF SUCH DAMAGE.
27  #
28  
29  
30  #
31  # available configurations:
32  #   gcc
33  #   clang
34  #   suncc
35  #   mingw
36  #   osx
37  #   bsd
38  #
39  
40  CONF=gcc
41  PREFIX=/usr
42  
43  include $(CONF).mk
44  include cppcheck.mk
45  
46  all: build/tool build/ucx build/libidav build/test ucx libidav dav test
47  
48  build:
49  	mkdir -p build
50  
51  build/tool:
52  	mkdir -p build/tool
53      
54  build/ucx:
55  	mkdir -p build/ucx
56      
57  build/libidav:
58  	mkdir -p build/libidav
59  
60  build/test:
61  	mkdir -p build/test
62  
63  ucx: FORCE
64  	cd ucx; $(MAKE) CONF=$(CONF) all
65  
66  libidav: FORCE
67  	cd libidav; $(MAKE) CONF=$(CONF) all
68  	
69  dav: FORCE libidav ucx
70  	cd dav; $(MAKE) CONF=$(CONF) all
71  
72  test: FORCE dav
73  	cd test; $(MAKE) CONF=$(CONF) all
74  
75  run: FORCE dav
76  	./build/dav$(APP_EXT)
77  
78  clean: FORCE
79  	$(RM) $(RMFLAGS) -R build/
80  
81  install: FORCE
82  	@echo "install to $(DESTDIR)$(PREFIX)"
83  	./install-sh -d $(DESTDIR)$(PREFIX)/bin
84  	./install-sh build/dav $(DESTDIR)$(PREFIX)/bin
85  	./install-sh build/dav-sync $(DESTDIR)$(PREFIX)/bin
86  
87  cppcheck: FORCE build
88  	truncate -s0 $(CPPCHECK_LOG)
89  	cd libidav; $(MAKE) cppcheck
90  	cd dav; $(MAKE) cppcheck
91  	@echo "Static code analysis complete. See $(CPPCHECK_LOG) for the results."
92  
93  FORCE:
94