root / JX / trunk / lib / Makefile

Revision 3, 5.7 kB (checked in by daboo, 2 years ago)

Full commit of JX-2.5.0 code

Line 
1# Makefile for JX distribution
2
3JX_ROOT := ..
4
5JX_CORE_LIBS := ../libjcore/. \
6                ../libjx/. \
7                ../libjtree/. \
8                ../libjtoolbar/.
9
10DISTR_PROGS := ../programs/makemake/. \
11               ../programs/compile_jstrings/. \
12               ../programs/jxlayout/. \
13               ../programs/jx_project_wizard/. \
14               ../programs/ssh_askpass/.
15
16include ${JX_ROOT}/include/make/jx_constants
17include ${JX_ROOT}/include/make/jx_config
18
19# useful macros
20
21BEGIN_DIR = if test -d ${dir}; then ( cd ${dir}
22END_DIR   = ) fi
23
24#
25# build all Makefiles
26#
27
28.PHONY : Makefiles
29Makefiles:
30        @${foreach dir, \
31          ${filter-out %/CVS/., \
32            ${wildcard ../lib?*/. ./util/*/. ../programs/*/.}} \
33          ../ACE/test/ ../tutorial/, \
34       ${BEGIN_DIR}; makemake; ${MAKE} Makefiles; ${END_DIR};}
35
36#
37# install binaries
38#
39
40.PHONY : install
41install: install1 install2
42
43.PHONY: install1
44install1:
45        @cd ../ACE; ${MAKE} jxinstall
46        @cd ../programs/makemake; ${MAKE} -f Makefile.port jxinstall
47        @${MAKE} Makefiles
48
49.PHONY: install2
50install2:
51        @cd ../libjcore; ${MAKE} COMPILE_STRINGS=0
52        @cd ../programs/compile_jstrings; ${MAKE} jxinstall
53        @${foreach dir, \
54          ${wildcard ../lib?*/.}, \
55       ${BEGIN_DIR}; ${MAKE}; ${END_DIR};}
56        @${foreach dir, \
57          ${filter-out %/CVS/., ${wildcard ./util/*/. ../programs/*/.}}, \
58       ${BEGIN_DIR}; ${MAKE} jxinstall; ${END_DIR};}
59
60#
61# build all libraries
62#
63
64.PHONY : alllib
65alllib:
66        @${foreach dir, ${wildcard ../lib?*/.}, \
67       ${BEGIN_DIR}; makemake; ${MAKE}; ${END_DIR};}
68
69#
70# build all test suites
71#
72
73.PHONY : alltest
74alltest:
75        @${foreach dir, \
76          ${wildcard ../lib?*/test/.} \
77          ../ACE/test/ ../tutorial/, \
78       ${BEGIN_DIR}; makemake; ${MAKE} all; ${END_DIR};}
79
80#
81# build all for ~/bin
82#
83
84PERSONAL_PROGS := code_crusader code_medic code_mill systemg leibnitz arrow
85
86.PHONY : allpersonal
87allpersonal: Makefiles
88        @${foreach dir, \
89          ${addprefix ../programs/, ${PERSONAL_PROGS}}, \
90       ${BEGIN_DIR}; ${MAKE} personal; ${END_DIR};}
91
92#
93# source distribution
94#
95
96SRC_TAR_FILE := JX_source-${JX_VERSION}.tar
97
98.PHONY : jxsource
99jxsource:
100        @cd ${J_DISTR_TAR_DIR}; \
101     tar -cf ${SRC_TAR_FILE} ${JX}/README ${JX}/FAQ ${JX}/CHANGES \
102                             ${JX}/LICENSE ${JX}/COPYING \
103                             ${JX}/INSTALL ${JX}/Makefile ${JX}/*.dsw ${JX}/*.bat
104
105        @${foreach dir, \
106          ${JX_CORE_LIBS} ../ACE/ ../tutorial/ ../misc/ ${DISTR_PROGS} \
107          ${filter-out %/CVS/., ${wildcard ./util/*/.}}, \
108       ${BEGIN_DIR}; \
109       ${MAKE} DISTR_TAR_FILE=${SRC_TAR_FILE} jxsource; \
110       ${END_DIR}; }
111
112        @cd ${J_DISTR_TAR_DIR}; \
113     tar -rf ${SRC_TAR_FILE} ${filter-out %~, \
114                               ${shell cd ${J_DISTR_TAR_DIR}; echo \
115             ${JX}/doc/ \
116             ${JX}/include/missing_proto/* \
117             ${JX}/include/make/jx_constants \
118             ${JX}/include/make/nps_constants \
119             ${JX}/include/make/jx_config_common \
120             ${JX}/include/make/jx_targets \
121             ${JX}/include/make/default_lib_target \
122             ${JX}/include/make/sys/* \
123             ${addprefix ${JX}/lib/, \
124               Makefile* README.* \
125               util/j_has_ace.c \
126               ${filter-out util/encode_site_name, \
127                            ${shell grep -l /usr/bin/perl util/*}} } }}; \
128     gzip ${SRC_TAR_FILE}
129
130.PHONY : alllibsource
131alllibsource: Makefiles jxsource
132        @${foreach dir, \
133          ${filter-out ${JX_CORE_LIBS} ${DISTR_PROGS}, \
134            ${wildcard ../lib?*/.}}, \
135       ${BEGIN_DIR}; ${MAKE} source; ${END_DIR};}
136
137.PHONY : allsource
138allsource: Makefiles jxsource
139        @${foreach dir, \
140          ${filter-out ${JX_CORE_LIBS} ${DISTR_PROGS} %/CVS/., \
141            ${wildcard ../lib?*/. ../programs/*/.}}, \
142       ${BEGIN_DIR}; ${MAKE} source; ${END_DIR};}
143
144#
145# Release
146#
147
148RELEASE_PROGS := ${addprefix ../programs/, \
149                   code_crusader code_medic code_mill \
150                   systemg leibnitz}
151
152.PHONY : all_release
153all_release:
154        @if ! test -e ../ACE/ACE_wrappers/${ACE_VERSION}; then echo 'Wrong ACE version!'; false; fi
155        @${foreach dir, ${RELEASE_PROGS}, \
156       ${BEGIN_DIR}; ${MAKE} release_static; ${END_DIR}; }
157
158.PHONY : all_rpm
159all_rpm:
160        @${foreach dir, ${RELEASE_PROGS}, \
161       ${BEGIN_DIR}; ${MAKE} release_rpm; ${END_DIR}; }
162
163#
164# Demo
165#
166
167DEMO_PROGS := ${addprefix ../programs/, \
168                code_crusader}
169
170.PHONY : all_demo
171all_demo:
172        @${foreach dir, ${DEMO_PROGS}, \
173       ${BEGIN_DIR}; ${MAKE} demo; ${END_DIR}; }
174
175.PHONY : all_demo_rpm
176all_demo_rpm:
177        @${foreach dir, ${DEMO_PROGS}, \
178       ${BEGIN_DIR}; ${MAKE} demo_rpm; ${END_DIR}; }
179
180DEMO_LIMIT_PROGS := ${addprefix ../programs/, \
181                      code_crusader code_medic}
182
183.PHONY : all_demo_limit
184all_demo_limit:
185        @${foreach dir, ${DEMO_LIMIT_PROGS}, \
186       ${BEGIN_DIR}; ${MAKE} demo_limit; ${END_DIR}; }
187#       @${foreach dir, ../programs/glove, \
188#       ${BEGIN_DIR}; ${MAKE} beta_limit; ${END_DIR}; }
189
190.PHONY : all_demo_limit_rpm
191all_demo_limit_rpm:
192        @${foreach dir, ${DEMO_LIMIT_PROGS}, \
193       ${BEGIN_DIR}; ${MAKE} demo_limit_rpm; ${END_DIR}; }
194
195#
196# clean up
197#
198
199.PHONY : tidy
200tidy:
201        @${foreach dir, \
202          ${filter-out %/CVS/., \
203            ${wildcard ../lib?*/. ../programs/*/. ./util/*/.}} \
204          ../ACE/ ../misc/ ../tutorial/, \
205       ${BEGIN_DIR}; ${MAKE} tidy; ${END_DIR};}
206
207.PHONY : clean
208clean:
209        @${foreach dir, \
210          ${filter-out %/CVS/., \
211            ${wildcard ../lib?*/. ../programs/*/. ./util/*/.}} \
212          ../ACE/ ../misc/ ../tutorial/, \
213       ${BEGIN_DIR}; ${MAKE} clean; ${END_DIR};}
214
215.PHONY : uninstall
216uninstall:
217        @${foreach dir, \
218          ${filter-out %/CVS/., \
219            ${wildcard ../lib?*/. ../programs/*/. ./util/*/.}} \
220          ../ACE/, \
221       ${BEGIN_DIR}; ${MAKE} jxuninstall; ${END_DIR};}
Note: See TracBrowser for help on using the browser.