-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
219 lines (167 loc) · 6.46 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
ifndef GO4SYS
GO4SYS = .
endif
GO4PACKAGE = go4
# rules which are used to produce packages
PACKAGERULES = compress go4-package fit-package \
thrd-package task-package win-bin \
fast-packages packages
ifneq ($(findstring $(MAKECMDGOALS), $(PACKAGERULES)),)
DOPACKAGE = true
endif
# rules which are used to produce packages
DOCRULES = docs clean-docs go4-doxygen clean-go4-doxygen
ifneq ($(findstring $(MAKECMDGOALS), $(DOCRULES)),)
DODOCS = true
endif
FASTRULES += clean-qt4 clean-bak clean-dep \
clean-plugin clean-bin clean-prefix clean-svn \
$(PACKAGERULES)
.PHONY: all includes libs gui plugin install uninstall \
clean clean-qt4 clean-bak clean-plugin clean-mainlibs clean-prefix clean-svn \
package $(PACKAGERULES)
all:: gui
include build/Makefile.discover
ifeq ($(GO4_OS), Win32)
GO4_GENERATED_FILES = go4login.bat go4.bat
else
GO4_GENERATED_FILES = go4login bin/go4-config
endif
include Makefile.config
# scan old dict to exclude them from makefile
OLD_DICT = $(wildcard */$(DICT_PREFIX)*.*)
ifdef QTPATH
ifeq ($(wildcard $(QTPATH)/*),)
$(error No files found in $(QTPATH), check your Qt installation)
endif
endif
Go4_Makefile_Rules = included
ifdef GO4_WIN32
GO4SYS = .
endif
# new staff concerning big libraries
GO4BASE_LIBNAME = $(LIB_PREFIX)Go4Base
GO4BASE_LIB = $(GO4DLLPATH)/$(GO4BASE_LIBNAME).$(DllSuf)
THRDMNGR_LIBNAME = $(LIB_PREFIX)Go4ThreadManager
THRDMNGR_LIB = $(GO4DLLPATH)/$(THRDMNGR_LIBNAME).$(DllSuf)
GO4TSKH_LIBNAME = $(LIB_PREFIX)Go4TaskHandler
GO4TSKH_LIB = $(GO4DLLPATH)/$(GO4TSKH_LIBNAME).$(DllSuf)
GO4ANBASE_LIBNAME = $(LIB_PREFIX)Go4AnalBase
GO4ANBASE_LIB = $(GO4DLLPATH)/$(GO4ANBASE_LIBNAME).$(DllSuf)
GO4AN_LIBNAME = $(LIB_PREFIX)Go4Analysis
GO4AN_LIB = $(GO4DLLPATH)/$(GO4AN_LIBNAME).$(DllSuf)
GO4BGUI_LIBNAME = $(LIB_PREFIX)Go4GUI
GO4BGUI_LIB = $(GO4DLLPATH)/$(GO4BGUI_LIBNAME).$(DllSuf)
BUILDGO4LIBS += $(GO4FIT_LIB) \
$(GO4BASE_LIB) \
$(THRDMNGR_LIB) \
$(GO4TSKH_LIB) \
$(GO4ANBASE_LIB) \
$(GO4AN_LIB) \
$(GO4BGUI_LIB)
MODULES = MbsAPIbase MbsAPI RawAPI \
Go4Fit Go4Log Go4LockGuard \
Go4ThreadManager \
Go4CommandsAnalysis Go4CommandsBase \
Go4CommandsTaskHandler Go4TaskHandler \
Go4ConditionsBase Go4DynamicList Go4Event \
Go4EventServer Go4Exceptions \
Go4Display Go4Proxies \
Go4ObjectManager \
Go4Queue Go4Socket Go4StatusAnalysis Go4StatusBase Go4HDF5 \
Go4Http Go4HistogramServer Go4Analysis Go4AnalysisClient Go4Dict
EXMODULES = Go4ExampleSimple Go4Example1Step Go4Example2Step Go4ExampleAdvanced \
Go4ExampleUserSource Go4ExampleUserStore Go4ExampleMesh Go4FitExample \
Go4ThreadManagerExample Go4TaskHandlerExample Go4EventServerExample
include $(patsubst %,%/Module.mk,$(MODULES))
include $(patsubst %,%/Makefile, $(EXMODULES))
-include qt4/Module.mk
bin/go4-config: Makefile $(GO4SYS)/build/dummy.d
@echo Producing $@
@sed -e "s|@go4arch@|$(GO4_OS)|" \
-e "s|@go4vers@|$(VERSSUF)|" \
-e "s|@go4topdir@|$(GO4TOPPATH)|" \
-e "s|@go4bindir@|$(GO4EXEPATH)|" \
-e "s|@go4libdir@|$(GO4LIBPATH)|" \
-e "s|@go4incdir@|$(GO4INCPATH)|" \
-e "s|@go4mainlibs@|'$(subst -Llib,-L$(GO4LIBPATH),$(LIBS_FULLSET))'|" \
-e "s|@go4guilibs@|'$(subst -L../../lib,-L$(GO4LIBPATH),$(LIBS_GUISET))'|" \
-e "s|@go4cflags@|'$(subst -Iinclude -I.,-I$(GO4INCPATH),$(OPTFLAGS) $(CXXFLAGS))'|" \
< build/go4-config.ini > $@
@chmod 755 $@
$(GO4SYS)/build/dummy.d: Makefile $(GO4QTHEADS) $(ALLHDRS)
@(if [ ! -d bin ] ; then mkdir -p bin; fi)
@(if [ ! -d lib ] ; then mkdir -p lib; fi)
@(if [ ! -f $(GO4MAP) ] ; then touch $(GO4MAP); fi)
@(if [ ! -f $@ ] ; then touch $@; fi)
libs:: $(BUILDGO4LIBS) $(GO4_GENERATED_FILES)
gui:: libs
ifdef GO4PREFIX
@echo Call make install to copy all binary files into $(GO4PREFIX)
endif
ifndef GO4PREFIX
install:
@echo "Go4 compiled without prefix set - install is not allowed"
uninstall:
@echo "Go4 compiled without prefix set - uninstall is not allowed"
else
uninstall:
@rm -rf $(GO4TOPPATH)
@rm -f $(GO4EXEPATH)/go4 $(GO4EXEPATH)/go4analysis $(GO4EXEPATH)/go4-config
@rm -f $(GO4LIBPATH)/libGo4*.*
@rm -rf $(GO4INCPATH)
install: uninstall
@echo "Installing Go4 in directory $(GO4PREFIX) ..."
@mkdir -p $(GO4EXEPATH); cp bin/go4 bin/go4analysis bin/go4-config go4login $(GO4EXEPATH)
@mkdir -p $(GO4LIBPATH); cp lib/* $(GO4LIBPATH)
@mkdir -p $(GO4INCPATH); cp include/* $(GO4INCPATH)
@mkdir -p $(GO4TOPPATH); cp Makefile.config Makefile.rules $(GO4TOPPATH)
@mkdir -p $(GO4TOPPATH)/build; cp build/*.sh build/Makefile.* $(GO4TOPPATH)/build
@mkdir -p $(GO4TOPPATH)/etc; cp -r etc/* $(GO4TOPPATH)/etc
@mkdir -p $(GO4TOPPATH)/html; cp -r html/* $(GO4TOPPATH)/html
@mkdir -p $(GO4TOPPATH)/html5; cp -r html5/* $(GO4TOPPATH)/html5
@mkdir -p $(GO4TOPPATH)/macros; cp macros/* $(GO4TOPPATH)/macros
@mkdir -p $(GO4TOPPATH)/docs; cp docs/* $(GO4TOPPATH)/docs
@mkdir -p $(GO4TOPPATH)/qt4
@mkdir -p $(GO4TOPPATH)/qt4/Go4UserGUI; cp qt4/Go4UserGUI/libGo4UserGui.$(DllSuf) $(GO4TOPPATH)/qt4/Go4UserGUI
@mkdir -p $(GO4TOPPATH)/icons; cp icons/* $(GO4TOPPATH)/icons
@echo "Installation completed"
endif
clean:: clean-bin clean-mainlibs clean-plugin
@rm -f $(GO4MAP) */$(DICT_PREFIX)*.*
@rm -f include/*.h
@rm -rf bin lib
@rm -f build/dummy.d build/Makefile.gener go4login go4login.bat go4.bat
@echo "Clean go4 done"
clean-bin::
@echo "Clean binary (generated) files"
clean-bak:
@echo "Delete bak files"
@rm -f $(patsubst %,%/*.bak,$(MODULES))
@rm -f $(patsubst %,%/*.*~,$(MODULES))
@rm -f $(patsubst %,%/*.bak,$(EXMODULES))
@rm -f $(patsubst %,%/*.*~,$(EXMODULES))
@rm -f go4logfile.txt $(patsubst %,%/go4logfile.txt,$(EXMODULES))
clean-dep:
@rm -f $(LIBDEPENDENC) $(EXAMPDEPENDENCS)
@echo "Delete all dependency files"
clean-prefix:
@rm -f Go4Log/TGo4Log.o Go4Log/TGo4Log.d
@rm -f qt4/Go4GUI/Makefile.qt
@rm -f build/Makefile.gener go4login go4login.bat go4.bat
@rm -f bin/*
@echo "Clean prefix-dependend files done"
clean-svn:
find . -name ".svn" -type d -exec rm -rf {} \;
@echo "Clean svn-specific files done"
ifdef DOPACKAGE
-include build/Makefile.packaging
endif
ifdef DODOCS
-include build/Makefile.docs
endif
Go4_Makefile_Rules =
include Makefile.rules
ifeq ($(findstring $(MAKECMDGOALS), $(FASTRULES)),)
-include build/dummy.d
endif