Corrected the new working example KGMinkowski.
[gridripperapp.git] / Makefile
1 # This is the main Makefile. For compilation, say make all. 
2 # For document building say make doc. For cleaning up source, 
3 # say make clean. For complete cleaning up of source, say 
4 # make distclean. For cleaning up of generated documents, say 
5 # make docclean. For installing say make install. For 
6 # uninstalling, say make uninstall. For preparing a tarball for 
7 # release, say make archive. For help say make help.
8
9 .PHONY : all clean distclean doc docclean install uninstall help
10
11 TRUNK             := $(PWD)
12
13 PKGCONFFILE       := $(word 1,$(wildcard *.pc))
14
15 include $(TRUNK)/config.mk
16
17 BUILD_DATE        := $(shell date +%Y%m%d)
18 #BUILD_REVISION    := $(shell svn info 2>/dev/null | grep "^Revision:" | cut -f 2 -d ':' | tr -d ' \t')
19 #BUILD_ISMODIFIED  := $(shell svn status 2>/dev/null | grep -v "^?" | head -n 1 | cut -c 1 | tr '[:alnum:]' 'm')
20 BUILD_REVISION    := $(shell git rev-parse HEAD 2>/dev/null)
21 BUILD_ISMODIFIED  := $(shell git status --porcelain 2>/dev/null | grep -v "^?" | head -n 1 | cut -c -2 | tr '[:alnum:]' 'm' | tr -d ' ' | tr -s 'm')
22 BUILD_VERSION     := $(shell grep -m 1 -E '^\[[0123456789]+\.[0123456789]+(\.[0123456789]+)?\]' changelog | tr -d '[]')
23 BUILD_INFO        := -DBUILD_INFO=\\\"ver$(BUILD_VERSION)-rev$(BUILD_REVISION)$(BUILD_ISMODIFIED)-arch$(ARCH)-opsys$(PLATFORM)-build$(BUILD_DATE)\\\"
24
25 all               :
26         cd src;     TRUNK=$(TRUNK) BUILD_INFO=$(BUILD_INFO) STATIC=$(STATIC) INCLUDEDEPS=true $(MAKE) all
27
28 clean             :
29         cd src;     TRUNK=$(TRUNK) $(MAKE) clean
30
31 distclean         : docclean clean
32         rm -f $(PKGCONFFILE)
33         rm -f config.mk
34         rm -f configure
35         rm -f config.log
36         rm -f config.status
37         rm -rf autom4te.cache
38
39 doc               :
40         cd doc;     TRUNK=$(TRUNK) $(MAKE) doc
41
42 docclean          :
43         cd doc;     TRUNK=$(TRUNK) $(MAKE) docclean
44
45 install           : all doc
46         cd bin;     TRUNK=$(TRUNK) $(MAKE) install
47         cd lib;     TRUNK=$(TRUNK) $(MAKE) install
48         cd include; TRUNK=$(TRUNK) $(MAKE) install
49         cd doc;     TRUNK=$(TRUNK) $(MAKE) install
50         cd man;     TRUNK=$(TRUNK) $(MAKE) install
51         cd inputs;  TRUNK=$(TRUNK) $(MAKE) install
52         mkdir -p $(LIBDIR)/pkgconfig
53         cp $(PKGCONFFILE) $(LIBDIR)/pkgconfig/
54
55 uninstall         : all doc
56         cd bin;     TRUNK=$(TRUNK) $(MAKE) uninstall
57         cd lib;     TRUNK=$(TRUNK) $(MAKE) uninstall
58         cd include; TRUNK=$(TRUNK) $(MAKE) uninstall
59         cd doc;     TRUNK=$(TRUNK) $(MAKE) uninstall
60         cd man;     TRUNK=$(TRUNK) $(MAKE) uninstall
61         cd inputs;  TRUNK=$(TRUNK) $(MAKE) uninstall
62         rm -f $(LIBDIR)/pkgconfig/$(PKGCONFFILE)
63
64 help              :
65         @$(ECHO) "Possible make options are:"
66         @$(ECHO) "make           - This defaults to 'make all'."
67         @$(ECHO) "make all       - Compilation of source."
68         @$(ECHO) "make doc       - Compilation of documentation."
69         @$(ECHO) "make clean     - Clean up source code."
70         @$(ECHO) "make distclean - Thorough cleanup of source code."
71         @$(ECHO) "make docclean  - Clean up generated documentation."
72         @$(ECHO) "make install   - Install the package."
73         @$(ECHO) "make uninstall - Uninstall the package."
74         @$(ECHO) "make archive   - Create a tarball release."
75         @$(ECHO) "make help      - Display this help."
76         @$(ECHO) "For static linking of the binaries during compilation, "
77         @$(ECHO) "STATIC=true make all"
78         @$(ECHO) "is the adequate command."
79
80 AUXFILES=$(shell svn status 2>/dev/null | grep "^?" | tr '\t' ' ' | tr -s ' ' | cut -f 2- -d ' ')
81 EXCLUDEFLAGS=$(patsubst %,--exclude=%,$(AUXFILES))
82
83 archive           : distclean
84 #       NAME=`basename ${PWD}` ; cd .. ; tar --exclude=.svn $(EXCLUDEFLAGS) -czf /tmp/$${NAME}.tar.gz $${NAME} ; mv /tmp/$${NAME}.tar.gz $${NAME}/ ; cd $${NAME}
85         NAME=`basename ${PWD}` ; cd .. ; tar --exclude=.git $(EXCLUDEFLAGS) -czf /tmp/$${NAME}.tar.gz $${NAME} ; mv /tmp/$${NAME}.tar.gz $${NAME}/ ; cd $${NAME}
86
87