Put all objects in .build
[diouzhtu.git] / makefile
blob618edbace1b6566dba831b053126e1a7abcb1fa1
1 ##############################################################################
2 ## Diouzhtu ##
3 ## ##
4 ## Copyright (C) 2007 ##
5 ## Olivier Ramonat ##
6 ## ##
7 ## This library is free software; you can redistribute it and/or modify ##
8 ## it under the terms of the GNU General Public License as published by ##
9 ## the Free Software Foundation; either version 2 of the License, or (at ##
10 ## your option) any later version. ##
11 ## ##
12 ## This library is distributed in the hope that it will be useful, but ##
13 ## WITHOUT ANY WARRANTY; without even the implied warranty of ##
14 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ##
15 ## General Public License for more details. ##
16 ## ##
17 ## You should have received a copy of the GNU General Public License ##
18 ## along with this library; if not, write to the Free Software Foundation, ##
19 ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ##
20 ##############################################################################
22 # Options
24 include mk.config
26 GENERAL_OPTIONS = CP="$(CP)" MKDIR="$(MKDIR)" RM="$(RM)" \
27 GNATMAKE="$(GNATMAKE)" GNATCLEAN="$(GNATCLEAN)" GNATCHECK="$(GNATCHECK)" \
28 EXEEXT="$(EXEEXT)" LIB_KIND="$(LIB_KIND)" DIFF="$(DIFF)"
30 OPTIONS = MODE="$(MODE)" $(GENERAL_OPTIONS)
32 ifeq ($(OS),Windows_NT)
33 SOEXT=.dll
34 EXEEXT=.exe
35 LN=cp -f
36 else
37 SOEXT=.so
38 EXEEXT=
39 LN=ln -sf
40 endif
42 # Modules support
44 MODULES = diouzhtu diouzhtu2html gwiad_wiki_service
46 MODULES_BUILD = ${MODULES:%=%_build}
48 MODULES_SETUP = ${MODULES:%=%_setup}
50 MODULES_CLEAN = ${MODULES:%=%_clean}
52 MODULES_CHECK = ${MODULES:%=%_check}
54 ifeq ("$(INSTALL)", "..")
55 $(error "Wrong install path : INSTALL='$(INSTALL)'")
56 else
57 ifeq ("$(INSTALL)", "")
58 $(error "Wrong install path : empty INSTALL var")
59 endif
60 endif
62 # Targets
64 all: $(MODULES_BUILD)
66 setup: $(MODULES_SETUP)
68 clean: $(MODULES_CLEAN)
70 check :$(MODULES_CHECK)
72 # Install directories
74 I_BIN = $(INSTALL)/bin
75 I_INC = $(INSTALL)/include/diouzhtu
76 I_INC_W = $(INSTALL)/include/wiki_interface
77 I_LIB = $(INSTALL)/lib/
78 I_LIB_D = $(INSTALL)/lib/diouzhtu
79 I_LIB_W = $(INSTALL)/lib/wiki_interface
80 I_GPR = $(INSTALL)/lib/gnat
81 I_DLIB = $(INSTALL)/share/diouzhtu/dlib
83 PLUGIN_DISTRIB = gwiad_wiki_plugin
84 GWIAD_SERVICES = $(GWIAD_DIR)/lib/services
85 GWIAD_WEBSITES = $(GWIAD_DIR)/lib/websites
87 ${MODULES_BUILD}:
88 ${MAKE} -C ${@:%_build=%} $(OPTIONS)
90 ${MODULES_SETUP}:
91 ${MAKE} -C ${@:%_setup=%} setup $(OPTIONS)
93 ${MODULES_CLEAN}:
94 ${MAKE} -C ${@:%_clean=%} clean $(OPTIONS)
96 ${MODULES_CHECK}:
97 ${MAKE} -C ${@:%_check=%} check $(OPTIONS)
99 install_clean:
100 $(RM) -fr $(I_INC)
101 $(RM) -fr $(I_LIB_D)
102 $(RM) -f $(I_GPR)/diouzhtu.gpr
104 install_dirs: install_clean
105 $(MKDIR) $(I_BIN)
106 $(MKDIR) $(I_INC)
107 $(MKDIR) $(I_INC_W)
108 $(MKDIR) $(I_LIB_D)
109 $(MKDIR) $(I_LIB_W)
110 $(MKDIR) $(I_GPR)
111 $(MKDIR) $(I_DLIB)
113 install: install_dirs
114 $(CP) diouzhtu/lib/* $(I_LIB_D)
115 for library in `ls $(I_LIB_D)/*$(SOEXT)`; do \
116 $(LN) $$library $(I_LIB); \
117 done
118 $(CP) gwiad_wiki_service/interface/lib/*$(SOEXT) $(I_LIB_W)
119 for library in `ls $(I_LIB_W)/*$(SOEXT)`; do \
120 $(LN) $$library $(I_LIB); \
121 done
122 $(CP) diouzhtu/src/*.ad[sb] $(I_INC)
123 $(CP) gwiad_wiki_service/interface/src/*.ads $(I_INC_W)
124 $(CP) gwiad_wiki_service/lib/*$(SOEXT) $(I_DLIB)
125 $(CP) config/projects/diouzhtu.gpr $(I_GPR)
126 $(CP) config/projects/wiki_interface.gpr $(I_GPR)
128 install_gwiad_interface:
129 $(CP) gwiad_wiki_service/interface/lib/*wiki_interface$(SOEXT) \
130 $(GWIAD_DIR)/bin/
132 install_gwiad_service:
133 $(RM) $(GWIAD_SERVICES)/libwiki_service.so
134 $(CP) $(INSTALL)/lib/diouzhtu/*$(SOEXT) $(GWIAD_DIR)/bin/
135 $(CP) gwiad_wiki_service/lib/*wiki_service$(SOEXT) $(GWIAD_SERVICES)
137 install_gwiad_website:
138 $(RM) $(GWIAD_WEBSITES)/*wiki_website$(SOEXT)
139 $(MKDIR) $(GWIAD_DIR)/plugins/wiki_website/example/templates/
140 $(MKDIR) $(GWIAD_DIR)/plugins/wiki_website/example/css
141 $(MKDIR) $(GWIAD_DIR)/plugins/wiki_website/example/js
142 $(CP) gwiad_wiki_service/website/config/config.ini \
143 $(GWIAD_DIR)/plugins/wiki_website/example/
144 $(CP) gwiad_wiki_service/website/templates/*.thtml \
145 $(GWIAD_DIR)/plugins/wiki_website/example/templates/
146 $(CP) gwiad_wiki_service/website/css/*.css \
147 $(GWIAD_DIR)/plugins/wiki_website/example/css/
148 $(CP) external_libraries/highlight/*.js \
149 $(GWIAD_DIR)/plugins/wiki_website/example/js/
150 $(CP) -r external_libraries/highlight/languages \
151 $(GWIAD_DIR)/plugins/wiki_website/example/js/
152 $(CP) gwiad_wiki_service/lib/*wiki_website$(SOEXT) $(GWIAD_WEBSITES)
154 install_gwiad_all: install_gwiad_interface install_gwiad_service \
155 install_gwiad_website
157 gwiad_plugin_distrib:
158 $(MKDIR) -p $(PLUGIN_DISTRIB)
159 $(CP) gwiad_wiki_service/interface/lib/*wiki_interface$(SOEXT) \
160 $(PLUGIN_DISTRIB)/
161 $(CP) gwiad_wiki_service/lib/*wiki_website$(SOEXT) $(PLUGIN_DISTRIB)/
162 $(CP) gwiad_wiki_service/lib/*wiki_service$(SOEXT) $(PLUGIN_DISTRIB)/
163 $(CP) gwiad_wiki_service/plugin/install.sh $(PLUGIN_DISTRIB)/
164 $(CP) $(INSTALL)/lib/diouzhtu/*$(SOEXT) $(PLUGIN_DISTRIB)/
165 $(MKDIR) $(PLUGIN_DISTRIB)/example/templates/
166 $(MKDIR) $(PLUGIN_DISTRIB)/example/css
167 $(MKDIR) $(PLUGIN_DISTRIB)/example/js
168 $(CP) gwiad_wiki_service/website/config/config.ini \
169 $(PLUGIN_DISTRIB)/example/
170 $(CP) gwiad_wiki_service/website/templates/*.thtml \
171 $(PLUGIN_DISTRIB)/example/templates/
172 $(CP) gwiad_wiki_service/website/css/*.css \
173 $(PLUGIN_DISTRIB)/example/css/
174 $(CP) external_libraries/highlight/*.js \
175 $(PLUGIN_DISTRIB)/example/js/
176 $(CP) -r external_libraries/highlight/languages \
177 $(PLUGIN_DISTRIB)/example/js/
178 $(TAR_DIR) $(PLUGIN_DISTRIB).tgz $(PLUGIN_DISTRIB)
179 $(RM) -r $(PLUGIN_DISTRIB)
181 gcov_analyse:
182 (cd diouzhtu/obj/; gcov -abfu ../src/*)
183 (cd diouzhtu2html/obj/;gcov -abfu ../src/*)
185 regtests: force
186 make -C diouzhtu2html regtests $(GENERAL_OPTIONS)
187 # make -C diouzhtu2html/test MODE="Profile" $(GENERAL_OPTIONS)
188 # rm -f diouzhtu2html/test/obj/* # To avoid error in lcov_analyse ???
189 # rm -fr diouzhtu2html/obj/*
190 make -C gwiad_wiki_service/regtests MODE="Profile" $(GENERAL_OPTIONS)
191 make lcov_analyse
193 lcov_analyse: force
194 sh analyse.sh
196 force: