1 | ################################################################# |
---|
2 | ### |
---|
3 | ### Top-level Makefile for Singular |
---|
4 | ### |
---|
5 | ### The main purpose of this Makefile is to call `make' |
---|
6 | ### recursively in the subdirectories determined at configuration |
---|
7 | ### time. |
---|
8 | ### |
---|
9 | ################################################################# |
---|
10 | |
---|
11 | @SET_MAKE@ |
---|
12 | SHELL = /bin/sh |
---|
13 | |
---|
14 | SINGULAR = @SINGULAR@ |
---|
15 | |
---|
16 | BUILD_SUBDIRS = @CONFIG_SUBDIRS@ @BUILD_SUBDIRS@ |
---|
17 | SUBDIRS = @SUBDIRS@ |
---|
18 | |
---|
19 | PERL = @PERL@ |
---|
20 | TMP_DIR = @TMP_DIR@ |
---|
21 | |
---|
22 | ############################################################## |
---|
23 | # default target |
---|
24 | ${SINGULAR}: |
---|
25 | ${MAKE} install |
---|
26 | |
---|
27 | ############################################################## |
---|
28 | # general targets |
---|
29 | # simply descend for these targets |
---|
30 | .PHONY: all install uninstall |
---|
31 | |
---|
32 | TEXINFO_TEX_FILES = epsf.tex texinfo.tex txi-cs.tex txi-de.tex txi-no.tex |
---|
33 | TEXINFO_TEX_DIR = Texinfo/doc |
---|
34 | all install uninstall: |
---|
35 | @ for SUBDIR in ${BUILD_SUBDIRS}; \ |
---|
36 | do \ |
---|
37 | echo ${MAKE} $@ in $${SUBDIR}; \ |
---|
38 | ( cd $${SUBDIR} && ${MAKE} $@;); \ |
---|
39 | (if test "$${SUBDIR}" = Texinfo && test -d doc; then \ |
---|
40 | for FILE in ${TEXINFO_TEX_FILES}; \ |
---|
41 | do \ |
---|
42 | if test "$@" = uninstall; then\ |
---|
43 | echo rm -f doc/$${FILE};\ |
---|
44 | rm -f doc/$${FILE}; \ |
---|
45 | else \ |
---|
46 | echo cp ${TEXINFO_TEX_DIR}/$${FILE} doc; \ |
---|
47 | cp ${TEXINFO_TEX_DIR}/$${FILE} doc; \ |
---|
48 | fi; \ |
---|
49 | done;\ |
---|
50 | fi;); \ |
---|
51 | done |
---|
52 | |
---|
53 | install-doc: |
---|
54 | cd doc; make install |
---|
55 | |
---|
56 | ############################################################## |
---|
57 | # cleaning up |
---|
58 | .PHONY: local-clean local-distclean local-maintainer-clean \ |
---|
59 | clean distclean mostlyclean maintainer-clean |
---|
60 | |
---|
61 | # we use a canned sequence to avoid code redundancy |
---|
62 | define recurse |
---|
63 | @ for SUBDIR in ${SUBDIRS}; \ |
---|
64 | do \ |
---|
65 | echo ${MAKE} $@ in $${SUBDIR}; \ |
---|
66 | ( cd $${SUBDIR} && ${MAKE} $@; ) \ |
---|
67 | done |
---|
68 | endef |
---|
69 | |
---|
70 | local-clean: |
---|
71 | rm -rf *~ a.out core *.o *.log |
---|
72 | |
---|
73 | local-distclean: local-clean |
---|
74 | rm -rf Makefile config.cache config.log config.status TAGS* *.gz *.tar |
---|
75 | |
---|
76 | local-maintainer-clean: local-distclean |
---|
77 | @ echo "This command is intended for maintainer use, only" |
---|
78 | rm -rf configure |
---|
79 | |
---|
80 | clean mostlyclean: local-clean |
---|
81 | $(recurse) |
---|
82 | |
---|
83 | distclean: local-distclean |
---|
84 | $(recurse) |
---|
85 | |
---|
86 | maintainer-clean: uninstall local-maintainer-clean |
---|
87 | $(recurse) |
---|
88 | |
---|
89 | ############################################################## |
---|
90 | # some extra targets for the specific packages |
---|
91 | .PHONY: factory libfac MP gmp smallgmp |
---|
92 | Singular factory libfac MP gmp smallgmp: |
---|
93 | cd $@; ${MAKE} all |
---|
94 | |
---|
95 | ############################################################## |
---|
96 | # documentation |
---|
97 | .PHONY: info dvi ps doc doc/singular.hlp html |
---|
98 | |
---|
99 | info dvi ps doc/singular.hlp html: ${SINGULAR} |
---|
100 | cd doc; ${MAKE} $@ |
---|
101 | |
---|
102 | doc info/singular.hlp: |
---|
103 | cd doc; ${MAKE} install |
---|
104 | |
---|
105 | ############################################################## |
---|
106 | # Tst targets |
---|
107 | .PHONY: Tst-All Tst Tst-Old Tst-Short Tst-Long |
---|
108 | Tst-All: Tst-Old Tst-Short Tst-Long |
---|
109 | |
---|
110 | Tst: Tst-Old Tst-Short |
---|
111 | |
---|
112 | Tst-Old: ${SINGULAR} Tst/Old/universal.lst Tst/regress.cmd |
---|
113 | ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Old/universal.lst |
---|
114 | |
---|
115 | Tst-Short: ${SINGULAR} Tst/Short Tst/regress.cmd |
---|
116 | ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Short/*.tst |
---|
117 | |
---|
118 | Tst-Long: ${SINGULAR} Tst/Short Tst/regress.cmd |
---|
119 | ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Long/*.tst |
---|
120 | |
---|
121 | |
---|
122 | |
---|
123 | |
---|
124 | ############################################################## |
---|
125 | # distribution targets |
---|
126 | # |
---|
127 | S_VERSION = $${SINGULAR_VERSION-@SINGULAR_VERSION@} |
---|
128 | SINGUNAME = @SINGUNAME@ |
---|
129 | localdir = /usr/local |
---|
130 | install_prefix = ${localdir}/Singular/${S_VERSION} |
---|
131 | |
---|
132 | BINDIST_DIRS = Singular doc |
---|
133 | SHAREDIST_DIRS = Singular doc emacs |
---|
134 | TMPDIR = ${TMP_DIR}/singdist |
---|
135 | |
---|
136 | LN_S = @LN_S@ |
---|
137 | MKINSTALLDIRS = ./mkinstalldirs |
---|
138 | BINDIST_NAME = Singular-${S_VERSION}-${SINGUNAME} |
---|
139 | SHAREDIST_NAME = Singular-${S_VERSION}-share |
---|
140 | |
---|
141 | |
---|
142 | install-dist: install-bindist install-sharedist |
---|
143 | |
---|
144 | install-bindist: |
---|
145 | for DIR in ${BINDIST_DIRS}; \ |
---|
146 | do \ |
---|
147 | (cd $${DIR}; ${MAKE} install-bindist install_prefix=${install_prefix});\ |
---|
148 | done |
---|
149 | |
---|
150 | install-sharedist: ${SINGULAR} |
---|
151 | for DIR in ${SHAREDIST_DIRS}; \ |
---|
152 | do \ |
---|
153 | (cd $${DIR}; ${MAKE} install-sharedist install_prefix=${install_prefix}); \ |
---|
154 | done |
---|
155 | |
---|
156 | dist: ${SHAREDIST_NAME}.tgz ${BINDIST_NAME}.tgz |
---|
157 | |
---|
158 | sharedist ${SHAREDIST_NAME}.tgz: |
---|
159 | if test -d ${TMPDIR}; then rm -rf ${TMPDIR}; fi |
---|
160 | ${MAKE} install-sharedist localdir=${TMPDIR} |
---|
161 | cd ${TMPDIR}; tar cf - Singular| gzip -c > ${SHAREDIST_NAME}.tgz |
---|
162 | mv ${TMPDIR}/${SHAREDIST_NAME}.tgz . |
---|
163 | rm -rf ${TMPDIR} |
---|
164 | |
---|
165 | bindist ${BINDIST_NAME}.tgz: |
---|
166 | if test -d ${TMPDIR}; then rm -fr ${TMPDIR}; fi |
---|
167 | ${MAKE} install-bindist localdir=${TMPDIR} |
---|
168 | cd ${TMPDIR}; tar cf - Singular | gzip -c > ${BINDIST_NAME}.tgz |
---|
169 | mv ${TMPDIR}/Singular-${S_VERSION}-${SINGUNAME}.tgz . |
---|
170 | rm -rf ${TMPDIR} |
---|
171 | |
---|
172 | install-local-dist: ${SHAREDIST_NAME}.tgz ${BINDIST_NAME}.tgz |
---|
173 | cp ${SHAREDIST_NAME}.tgz ${BINDIST_NAME}.tgz ${localdir} |
---|
174 | cd ${localdir} |
---|
175 | gunzip -c ${SHAREDIST_NAME}.tgz | tar xf - |
---|
176 | gunzip -c ${BINDIST_NAME}.tgz | tar xf - |
---|
177 | rm -rf ${localdir}/${SHAREDIST_NAME}.tgz ${localdir}/${BINDIST_NAME}.tgz |
---|
178 | ${MKINSTALLDIRS} ${localdir}/bin |
---|
179 | ${LN_S} ${localdir}/Singular/${S_VERSION}/${SINGUNAME}/Singular ${localdir}/bin/Singular-${S_VERSION} |
---|
180 | ${LN_S} ${localdir}/Singular/${S_VERSION}/${SINGUNAME}/ESingular ${localdir}/bin/ESingular-${S_VERSION} |
---|
181 | |
---|
182 | |
---|
183 | |
---|
184 | BINDIR_NAME = Singular/${S_VERSION}/${SINGUNAME} |
---|
185 | LIBDIR_NAME = Singular/${S_VERSION}/LIB |
---|
186 | GFTABLESDIR_NAME= Singular/${S_VERSION}/LIB/gftables |
---|
187 | DOCDIR_NAME = Singular/${S_VERSION}/doc |
---|
188 | HTMLDIR_NAME = Singular/${S_VERSION}/html |
---|
189 | INFODIR_NAME = Singular/${S_VERSION}/info |
---|
190 | EMACSDIR_NAME = Singular/${S_VERSION}/emacs |
---|
191 | |
---|
192 | ZIP = zip |
---|
193 | |
---|
194 | test_t: |
---|
195 | echo ${S_VERSION} |
---|
196 | |
---|
197 | .PHONY: sharedist bindist static-bindist infodist win-sharedist |
---|
198 | _sharedist: ${SINGULAR} |
---|
199 | cd doc; ${MAKE} all ps |
---|
200 | cd emacs; ${MAKE} all |
---|
201 | rm -rf ${TMPDIR}/ |
---|
202 | ${MKINSTALLDIRS} ${TMPDIR}/${LIBDIR_NAME} |
---|
203 | ${MKINSTALLDIRS} ${TMPDIR}/${GFTABLESDIR_NAME} |
---|
204 | ${MKINSTALLDIRS} ${TMPDIR}/${DOCDIR_NAME} |
---|
205 | ${MKINSTALLDIRS} ${TMPDIR}/${HTMLDIR_NAME} |
---|
206 | ${MKINSTALLDIRS} ${TMPDIR}/${INFODIR_NAME} |
---|
207 | ${MKINSTALLDIRS} ${TMPDIR}/${EMACSDIR_NAME} |
---|
208 | cp Singular/LIB/*.lib ${TMPDIR}/${LIBDIR_NAME} |
---|
209 | rm -f ${TMPDIR}/${LIBDIR_NAME}/tst.lib |
---|
210 | cp Singular/LIB/gftables/[0-9]* ${TMPDIR}/${GFTABLESDIR_NAME} |
---|
211 | cp doc/singular.idx doc/manual.ps doc/usercard.ps \ |
---|
212 | doc/manual.dvi doc/usercard.dvi \ |
---|
213 | ${TMPDIR}/${DOCDIR_NAME} |
---|
214 | cp doc/singular.hlp ${TMPDIR}/${INFODIR_NAME} |
---|
215 | cp -R doc/html/* ${TMPDIR}/${HTMLDIR_NAME} |
---|
216 | cp emacs/*.el ${TMPDIR}/${EMACSDIR_NAME} |
---|
217 | cp emacs/.emacs-singular ${TMPDIR}/${EMACSDIR_NAME} |
---|
218 | chmod -R a+rX ${TMPDIR}/Singular |
---|
219 | cd ${TMPDIR}; \ |
---|
220 | ${ZIP} -r ${SHAREDIST_NAME} Singular; \ |
---|
221 | tar cf ${SHAREDIST_NAME}.tar Singular; gzip ${SHAREDIST_NAME}.tar |
---|
222 | mv ${TMPDIR}/${SHAREDIST_NAME}.zip ${TMPDIR}/${SHAREDIST_NAME}.tar.gz . |
---|
223 | rm -rf ${TMPDIR}/ |
---|
224 | |
---|
225 | |
---|
226 | _bindist: ${SINGULAR} |
---|
227 | cd Singular; ${MAKE} Singular-$@ libparse |
---|
228 | rm -rf ${TMPDIR} |
---|
229 | ${MKINSTALLDIRS} ${TMPDIR}/${BINDIR_NAME} |
---|
230 | cp Singular/Singular-$@ ${TMPDIR}/${BINDIR_NAME}/Singular |
---|
231 | cp Singular/ESingular ${TMPDIR}/${BINDIR_NAME}/ESingular |
---|
232 | cp Singular/libparse ${TMPDIR}/${BINDIR_NAME} |
---|
233 | -strip ${TMPDIR}/${BINDIR_NAME}/* |
---|
234 | cd ${TMPDIR}; chmod -R a+rX *;\ |
---|
235 | tar cf ${BINDIST_NAME}.tar Singular; \ |
---|
236 | gzip ${BINDIST_NAME}.tar |
---|
237 | mv ${TMPDIR}/${BINDIST_NAME}.tar.gz . |
---|
238 | rm -rf ${TMPDIR} |
---|
239 | |
---|
240 | static-bindist: ${SINGULAR} |
---|
241 | cd Singular; ${MAKE} Singular-$@ libparse |
---|
242 | rm -rf ${TMPDIR} |
---|
243 | ${MKINSTALLDIRS} ${TMPDIR}/${BINDIR_NAME} |
---|
244 | cp Singular/Singular-$@ ${TMPDIR}/${BINDIR_NAME}/Singular-static |
---|
245 | cp Singular/libparse ${TMPDIR}/${BINDIR_NAME} |
---|
246 | -strip ${TMPDIR}/${BINDIR_NAME}/* |
---|
247 | cat INSTALL.unix | sed -e "s/<x-y-z>/${S_VERSION}/g" > \ |
---|
248 | ${TMPDIR}/Singular/INSTALL |
---|
249 | cd ${TMPDIR}; chmod -R a+rX *;\ |
---|
250 | tar cf ${BINDIST_NAME}-static.tar Singular; \ |
---|
251 | gzip ${BINDIST_NAME}-static.tar |
---|
252 | mv ${TMPDIR}/${BINDIST_NAME}-static.tar.gz . |
---|
253 | rm -rf ${TMPDIR} |
---|
254 | |
---|
255 | infodist: |
---|
256 | rm -rf ${TMPDIR} |
---|
257 | ${MKINSTALLDIRS} ${TMPDIR}/${SINGUNAME}/bin/ |
---|
258 | cp `which info` ${TMPDIR}/${SINGUNAME}/bin/ |
---|
259 | -strip ${TMPDIR}/${SINGUNAME}/bin/info |
---|
260 | cd ${TMPDIR}; tar cf info-${SINGUNAME}.tar ${SINGUNAME}; \ |
---|
261 | gzip info-${SINGUNAME}.tar |
---|
262 | mv ${TMPDIR}/info-${SINGUNAME}.tar.gz . |
---|
263 | rm -rf ${TMPDIR} |
---|
264 | |
---|
265 | INSTALL = ./Singular/install-sh -c |
---|
266 | SH_PROGRAM = /bin/sh |
---|
267 | INFO_PROGRAM = /bin/info |
---|
268 | CYGWIN_DLL = /bin/cygwin1.dll |
---|
269 | |
---|
270 | windist: ${SINGULAR} |
---|
271 | cd Singular; ${MAKE} Singular-bindist libparse |
---|
272 | rm -rf ${TMPDIR} |
---|
273 | ${MKINSTALLDIRS} ${TMPDIR}/${BINDIR_NAME} |
---|
274 | ${INSTALL} Singular/Singular-bindist \ |
---|
275 | ${TMPDIR}/${BINDIR_NAME}/Singular.exe |
---|
276 | ${INSTALL} Singular/libparse ${TMPDIR}/${BINDIR_NAME} |
---|
277 | ${INSTALL} ${SH_PROGRAM} ${TMPDIR}/${BINDIR_NAME} |
---|
278 | ${INSTALL} ${INFO_PROGRAM} ${TMPDIR}/${BINDIR_NAME} |
---|
279 | ${INSTALL} ${CYGWIN_DLL} ${TMPDIR}/${BINDIR_NAME} |
---|
280 | cat INSTALL.win | sed -e "s/<x-y-z>/${S_VERSION}/g" > \ |
---|
281 | ${TMPDIR}/Singular/INSTALL |
---|
282 | cd ${TMPDIR}; chmod -R a+rX *;\ |
---|
283 | ${ZIP} -r sing Singular |
---|
284 | mv ${TMPDIR}/sing.zip Singular-${S_VERSION}-${SINGUNAME}.zip |
---|
285 | rm -rf ${TMPDIR} |
---|
286 | srcdist: |
---|
287 | rm -rf ${TMPDIR} |
---|
288 | ${MKINSTALLDIRS} ${TMPDIR}/Singular-${S_VERSION} |
---|
289 | cd ${TMPDIR}/Singular-${S_VERSION}; cvs co All |
---|
290 | cd ${TMPDIR}; \ |
---|
291 | tar cf Singular-${S_VERSION}.tar Singular-${S_VERSION}; \ |
---|
292 | gzip Singular-${S_VERSION}.tar |
---|
293 | cp ${TMPDIR}/Singular-${S_VERSION}.tar.gz . |
---|
294 | rm -rf ${TMPDIR} |
---|
295 | |
---|
296 | # You can remeber the password with "iwd" == "ich war dabei" |
---|
297 | CRYPT = enigma # it does not seem to decrypt correctly with the HP crypt |
---|
298 | cryptdist: srcdist |
---|
299 | ${CRYPT} S-${S_VERSION}-iwd < Singular-${S_VERSION}.tar.gz > Singular-${S_VERSION}.tar.gz.crypt |
---|
300 | |
---|
301 | |
---|
302 | ############################################################## |
---|
303 | # stuff for configure |
---|
304 | Makefile : Makefile.in config.status |
---|
305 | CONFIG_FILES=Makefile ./config.status |
---|
306 | |
---|
307 | doc/Makefile: doc/Makefile.in config.status |
---|
308 | CONFIG_FILES=doc/Makefile ./config.status |
---|
309 | |
---|
310 | config.status: configure |
---|
311 | ./config.status --recheck |
---|
312 | |
---|
313 | configure: configure.in |
---|
314 | @echo "You need to rerun autoconf. I am proceeding, for now." |
---|
315 | @touch configure |
---|
316 | # autoconf |
---|
317 | # |
---|