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