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@ |
---|
17 | SUBDIRS = @SUBDIRS@ |
---|
18 | |
---|
19 | PERL = @PERL@ |
---|
20 | |
---|
21 | ############################################################## |
---|
22 | # default target |
---|
23 | ${SINGULAR}: |
---|
24 | ${MAKE} install |
---|
25 | |
---|
26 | ############################################################## |
---|
27 | # general targets |
---|
28 | # simply descend for these targets |
---|
29 | .PHONY: all install uninstall |
---|
30 | |
---|
31 | all install uninstall: |
---|
32 | @ for SUBDIR in ${BUILD_SUBDIRS}; \ |
---|
33 | do \ |
---|
34 | echo ${MAKE} $@ in $${SUBDIR}; \ |
---|
35 | ( cd $${SUBDIR} && ${MAKE} $@; ) \ |
---|
36 | done |
---|
37 | |
---|
38 | ############################################################## |
---|
39 | # cleaning up |
---|
40 | .PHONY: local-clean local-distclean local-maintainer-clean \ |
---|
41 | clean distclean mostlyclean maintainer-clean |
---|
42 | |
---|
43 | # we use a canned sequence to avoid code redundancy |
---|
44 | define recurse |
---|
45 | @ for SUBDIR in ${SUBDIRS}; \ |
---|
46 | do \ |
---|
47 | echo ${MAKE} $@ in $${SUBDIR}; \ |
---|
48 | ( cd $${SUBDIR} && ${MAKE} $@; ) \ |
---|
49 | done |
---|
50 | endef |
---|
51 | |
---|
52 | local-clean: |
---|
53 | rm -rf *~ a.out core *.o *.log |
---|
54 | |
---|
55 | local-distclean: local-clean |
---|
56 | rm -rf Makefile config.cache config.log config.status TAGS* *.gz *.tar |
---|
57 | |
---|
58 | local-maintainer-clean: local-distclean |
---|
59 | @ echo "This command is intended for maintainer use, only" |
---|
60 | rm -rf configure |
---|
61 | |
---|
62 | clean mostlyclean: uninstall local-clean |
---|
63 | $(recurse) |
---|
64 | |
---|
65 | distclean: uninstall local-distclean |
---|
66 | $(recurse) |
---|
67 | |
---|
68 | maintainer-clean: uninstall local-maintainer-clean |
---|
69 | $(recurse) |
---|
70 | |
---|
71 | ############################################################## |
---|
72 | # some extra targets for the specific packages |
---|
73 | .PHONY: factory libfac MP gmp smallgmp |
---|
74 | Singular factory libfac MP gmp smallgmp: |
---|
75 | cd $@; ${MAKE} all |
---|
76 | |
---|
77 | ############################################################## |
---|
78 | # documentation |
---|
79 | .PHONY: info dvi ps doc doc/singular.hlp html |
---|
80 | |
---|
81 | info dvi ps doc/singular.hlp html: ${SINGULAR} |
---|
82 | cd doc; ${MAKE} $@ |
---|
83 | |
---|
84 | doc info/singular.hlp: |
---|
85 | cd doc; ${MAKE} install |
---|
86 | |
---|
87 | ############################################################## |
---|
88 | # Tst targets |
---|
89 | .PHONY: Tst-All Tst Tst-Old Tst-Short Tst-Long |
---|
90 | Tst-All: Tst-Old Tst-Short Tst-Long |
---|
91 | |
---|
92 | Tst: Tst-Old Tst-Short |
---|
93 | |
---|
94 | Tst-Old: ${SINGULAR} Tst/Old/universal.lst Tst/regress.cmd |
---|
95 | ${PERL} Tst/regress.cmd -s ${SINGULAR} Tst/Old/universal.lst |
---|
96 | |
---|
97 | Tst-Short: ${SINGULAR} Tst/Short Tst/regress.cmd |
---|
98 | ${PERL} Tst/regress.cmd -s ${SINGULAR} Tst/Short/*.tst |
---|
99 | |
---|
100 | Tst-Long: ${SINGULAR} Tst/Short Tst/regress.cmd |
---|
101 | ${PERL} Tst/regress.cmd -s ${SINGULAR} Tst/Long/*.tst |
---|
102 | |
---|
103 | |
---|
104 | |
---|
105 | |
---|
106 | ############################################################## |
---|
107 | # distribution targets |
---|
108 | LN_S = @LN_S@ |
---|
109 | MKINSTALLDIRS = ./mkinstalldirs |
---|
110 | TMPDIR = /tmp/singdist |
---|
111 | SINGUNAME = @SINGUNAME@ |
---|
112 | S_VERSION = $${SINGULAR_VERSION-@SINGULAR_VERSION@} |
---|
113 | SINGULAR_DOS_VERSION = @SINGULAR_DOS_VERSION@ |
---|
114 | DISTROOT_NAME = Singular-${S_VERSION} |
---|
115 | BINDIST_NAME = ${DISTROOT_NAME}-${SINGUNAME} |
---|
116 | SHAREDIST_NAME = ${DISTROOT_NAME}-share |
---|
117 | |
---|
118 | test_t: |
---|
119 | echo ${S_VERSION} |
---|
120 | |
---|
121 | .PHONY: sharedist bindist static-bindist infodist win-sharedist |
---|
122 | sharedist: ${SINGULAR} |
---|
123 | cd doc; ${MAKE} all ps |
---|
124 | rm -rf ${TMPDIR} |
---|
125 | ${MKINSTALLDIRS} ${TMPDIR}/Singular/LIB/${S_VERSION} |
---|
126 | ${MKINSTALLDIRS} ${TMPDIR}/Singular/doc/${S_VERSION} |
---|
127 | ${MKINSTALLDIRS} ${TMPDIR}/Singular/html/${S_VERSION} |
---|
128 | ${MKINSTALLDIRS} ${TMPDIR}/info |
---|
129 | ${MKINSTALLDIRS} ${TMPDIR}/Singular/LIB/gftables |
---|
130 | cp Singular/LIB/*.lib ${TMPDIR}/Singular/LIB/${S_VERSION} |
---|
131 | cp Singular/LIB/gftables/[0-9]* ${TMPDIR}/Singular/LIB/gftables |
---|
132 | cd ${TMPDIR}/Singular/LIB/${S_VERSION}; \ |
---|
133 | ${LN_S} ../gftables . |
---|
134 | cp doc/singular.hlp doc/singular.ps doc/usercard.ps \ |
---|
135 | doc/singular.dvi doc/usercard.dvi \ |
---|
136 | ${TMPDIR}/Singular/doc/${S_VERSION} |
---|
137 | cp -R doc/html/* ${TMPDIR}/Singular/html/${S_VERSION} |
---|
138 | cd ${TMPDIR}/info; \ |
---|
139 | ${LN_S} ../Singular/doc/${S_VERSION}/singular.hlp . |
---|
140 | cat README.share | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
141 | ${TMPDIR}/Singular/README.share |
---|
142 | cat README.general | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
143 | ${TMPDIR}/Singular/README.general |
---|
144 | cp COPYING ${TMPDIR}/Singular |
---|
145 | cd ${TMPDIR}; \ |
---|
146 | tar -cf sing.tar Singular info; \ |
---|
147 | gzip sing.tar |
---|
148 | cp ${TMPDIR}/sing.tar.gz ${SHAREDIST_NAME}.tar.gz |
---|
149 | # rm -rf ${TMPDIR} |
---|
150 | |
---|
151 | win-sharedist: |
---|
152 | export SINGULAR_VERSION=${SINGULAR_DOS_VERSION} && ${MAKE} sharedist |
---|
153 | |
---|
154 | bindist: ${SINGULAR} |
---|
155 | cd Singular; ${MAKE} Singular-$@ libparse |
---|
156 | rm -rf ${TMPDIR} |
---|
157 | ${MKINSTALLDIRS} ${TMPDIR}/${SINGUNAME}/bin/ |
---|
158 | ${MKINSTALLDIRS} ${TMPDIR}/Singular |
---|
159 | cp Singular/Singular-$@ \ |
---|
160 | ${TMPDIR}/${SINGUNAME}/bin/Singular-${S_VERSION} |
---|
161 | cd ${TMPDIR}/${SINGUNAME}/bin; \ |
---|
162 | ${LN_S} Singular-${S_VERSION} Singular |
---|
163 | cp Singular/libparse ${TMPDIR}/${SINGUNAME}/bin/ |
---|
164 | cp COPYING ${TMPDIR}/Singular |
---|
165 | cat README.bin | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
166 | ${TMPDIR}/Singular/README.bin |
---|
167 | cat README.general | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
168 | ${TMPDIR}/Singular/README.general |
---|
169 | cat INSTALL | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
170 | ${TMPDIR}/Singular/INSTALL |
---|
171 | cd ${TMPDIR}; \ |
---|
172 | tar cf ${BINDIST_NAME}.tar ${SINGUNAME} Singular; \ |
---|
173 | gzip ${BINDIST_NAME}.tar |
---|
174 | cp ${TMPDIR}/${BINDIST_NAME}.tar.gz . |
---|
175 | rm -rf ${TMPDIR} |
---|
176 | |
---|
177 | static-bindist: ${SINGULAR} |
---|
178 | cd Singular; ${MAKE} Singular-$@ libparse |
---|
179 | rm -rf ${TMPDIR} |
---|
180 | ${MKINSTALLDIRS} ${TMPDIR}/${SINGUNAME}/bin/ |
---|
181 | ${MKINSTALLDIRS} ${TMPDIR}/Singular |
---|
182 | cp Singular/Singular-$@ \ |
---|
183 | ${TMPDIR}/${SINGUNAME}/bin/Singular-${S_VERSION}-static |
---|
184 | cd ${TMPDIR}/${SINGUNAME}/bin; \ |
---|
185 | ${LN_S} Singular-${S_VERSION}-static Singular |
---|
186 | cp COPYING ${TMPDIR}/Singular |
---|
187 | cat README.bin | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
188 | ${TMPDIR}/Singular/README.bin |
---|
189 | cat README.general | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
190 | ${TMPDIR}/Singular/README.general |
---|
191 | cat INSTALL | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
192 | ${TMPDIR}/Singular/INSTALL |
---|
193 | cd ${TMPDIR}; \ |
---|
194 | tar cf ${BINDIST_NAME}-static.tar ${SINGUNAME} Singular;\ |
---|
195 | gzip ${BINDIST_NAME}-static.tar |
---|
196 | cp ${TMPDIR}/${BINDIST_NAME}-static.tar.gz . |
---|
197 | rm -rf ${TMPDIR} |
---|
198 | |
---|
199 | infodist: |
---|
200 | rm -rf ${TMPDIR} |
---|
201 | ${MKINSTALLDIRS} ${TMPDIR}/${SINGUNAME}/bin/ |
---|
202 | cp `which info` ${TMPDIR}/${SINGUNAME}/bin/ |
---|
203 | cd ${TMPDIR}; tar cf info-${SINGUNAME}.tar ${SINGUNAME}; \ |
---|
204 | gzip info-${SINGUNAME}.tar |
---|
205 | cp ${TMPDIR}/info-${SINGUNAME}.tar.gz . |
---|
206 | rm -rf ${TMPDIR} |
---|
207 | |
---|
208 | ZIP = zip |
---|
209 | INSTALL = ./Singular/install-sh -c |
---|
210 | SH_PROGRAM = /bin/sh |
---|
211 | INFO_PROGRAM = /bin/info |
---|
212 | CYGWIN_DLL = /bin/cygwinb19.dll |
---|
213 | WIN_BINDIR = ${TMPDIR}/Singular/${S_VERSION} |
---|
214 | WIN_SHAREDIST_NAME = Singular-${SINGULAR_DOS_VERSION}-share |
---|
215 | |
---|
216 | windist: ${WIN_SHAREDIST_NAME}.tar.gz ${SINGULAR} |
---|
217 | cd Singular; ${MAKE} Singular-bindist libparse |
---|
218 | rm -rf ${TMPDIR} |
---|
219 | ${MKINSTALLDIRS} ${WIN_BINDIR} |
---|
220 | ${INSTALL} Singular/Singular-bindist ${WIN_BINDIR}/Singular.exe |
---|
221 | ${INSTALL} Singular/libparse ${WIN_BINDIR} |
---|
222 | ${INSTALL} ${SH_PROGRAM} ${WIN_BINDIR} |
---|
223 | ${INSTALL} ${INFO_PROGRAM} ${WIN_BINDIR} |
---|
224 | ${INSTALL} ${CYGWIN_DLL} ${WIN_BINDIR} |
---|
225 | cp ${WIN_SHAREDIST_NAME}.tar.gz ${TMPDIR} |
---|
226 | cd ${TMPDIR}; gunzip ${WIN_SHAREDIST_NAME}.tar.gz; \ |
---|
227 | tar xf ${WIN_SHAREDIST_NAME}.tar |
---|
228 | rm -rf ${TMPDIR}/info ${TMPDIR}/Singular/README.share |
---|
229 | cat INSTALL.win | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
230 | ${TMPDIR}/Singular/INSTALL |
---|
231 | cat README.win | sed -e "s/<x.y.z>/${S_VERSION}/" > \ |
---|
232 | ${TMPDIR}/Singular/README |
---|
233 | cd ${TMPDIR}; \ |
---|
234 | ${ZIP} -r sing Singular |
---|
235 | cp ${TMPDIR}/sing.zip Singular-${S_VERSION}-${SINGUNAME}.zip |
---|
236 | rm -rf ${TMPDIR} |
---|
237 | |
---|
238 | |
---|
239 | ############################################################## |
---|
240 | # stuff for configure |
---|
241 | Makefile : Makefile.in config.status |
---|
242 | CONFIG_FILES=Makefile ./config.status |
---|
243 | |
---|
244 | doc/Makefile: doc/Makefile.in config.status |
---|
245 | CONFIG_FILES=doc/Makefile ./config.status |
---|
246 | |
---|
247 | config.status: configure |
---|
248 | ./config.status --recheck |
---|
249 | |
---|
250 | configure: configure.in |
---|
251 | @echo "You need to rerun autoconf. I am proceeding, for now." |
---|
252 | @touch configure |
---|
253 | # autoconf |
---|
254 | # |
---|