PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/Makefile

http://github.com/daly/axiom
Makefile | 373 lines | 317 code | 27 blank | 29 comment | 16 complexity | 5d30c4f4a36b54688d227bbe220c0450 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. VERSION:="Axiom (May 2017)"
  2. ##### special paths
  3. SPD:=$(shell pwd)
  4. SRC:=${SPD}/src
  5. LSP:=${SPD}/lsp
  6. INT:=${SPD}/int
  7. OBJ:=${SPD}/obj
  8. MNT:=${SPD}/mnt
  9. TMP:=${OBJ}/tmp
  10. ZIPS:=${SPD}/zips
  11. BOOKS:=${SPD}/books
  12. SRCDIRS:="interpdir sharedir algebradir etcdir docdir \
  13. graphdir smandir hyperdir browserdir inputdir"
  14. SYS:=$(notdir $(AXIOM))
  15. DAASE:=${SRC}/share
  16. PROOFS:=${OBJ}/${SYS}/proofs
  17. SPAD:=${SPD}/mnt/${SYS}
  18. SPADBIN:=${MNT}/${SYS}/bin
  19. DOCUMENT:=${SPADBIN}/document
  20. EXTRACT:=${BOOKS}/extract
  21. ##### installation paths
  22. DESTDIR:=/usr/local/axiom
  23. COMMAND:=${DESTDIR}/mnt/${SYS}/bin/axiom
  24. ##### functions we need
  25. AWK:=gawk
  26. PATCH:=patch
  27. RANLIB:=ranlib
  28. TAR:=tar
  29. TOUCH:=touch
  30. UNCOMPRESS:=gunzip
  31. ####K C Related variables
  32. PLF=${SYS}platform
  33. CCF="-O2 -fno-strength-reduce -D_GNU_SOURCE -D${PLF} \
  34. -I/usr/X11/include \
  35. -Wno-absolute-value -std=gnu89 -w"
  36. INC:=${SPD}/src/include
  37. CC:=gcc
  38. XLIB:=/usr/X11R6/lib
  39. LDF="-L/usr/X11/lib -L/usr/X11R6/lib64 -L/usr/local/lib64 -L/usr/openwin/lib64 -L/usr/lib64 "
  40. O:=o
  41. ##### lisp related variables
  42. BYE:=bye
  43. #GCLVERSION=gcl-2.4.1
  44. #GCLVERSION=gcl-2.5
  45. #GCLVERSION=gcl-2.5.2
  46. #GCLVERSION=gcl-2.6.1
  47. #GCLVERSION=gcl-2.6.2
  48. #GCLVERSION=gcl-2.6.2a
  49. #GCLVERSION=gcl-2.6.3
  50. #GCLVERSION=gcl-2.6.5
  51. #GCLVERSION=gcl-2.6.6
  52. #GCLVERSION=gcl-2.6.7pre
  53. #GCLVERSION=gcl-2.6.7
  54. #GCLVERSION=gcl-2.6.8pre
  55. #GCLVERSION=gcl-2.6.8pre2
  56. #GCLVERSION=gcl-2.6.8pre3
  57. #GCLVERSION=gcl-2.6.8pre4
  58. #GCLVERSION=gcl-2.6.8pre7
  59. #GCLVERSION=gcl-cygwin
  60. #GCLVERSION=gcl-2.6.9
  61. #GCLVERSION=gcl-2.6.10
  62. #GCLVERSION=gcl-2.6.11
  63. GCLVERSION=gcl-2.6.12
  64. #GCLVERSION=gcl-2.6.13pre
  65. GCLDIR:=${LSP}/${GCLVERSION}
  66. GCLOPTS="--enable-vssize=65536*2 --disable-xgcl --disable-tkconfig"
  67. LISP:=lsp
  68. ##### command line control
  69. NOISE:="-o ${TMP}/trace"
  70. PART:= cprogs
  71. SUBPART:= everything
  72. RUNTYPE:=serial
  73. # can be richtests, catstests, regresstests (see src/input/Makefile)
  74. # alltests, notests
  75. TESTSET:=notests
  76. BUILD:=full
  77. ACL2:=
  78. COQ:=
  79. ENV:= \
  80. ACL2=${ACL2} \
  81. AWK=${AWK} \
  82. BOOKS=${BOOKS} \
  83. BUILD=${BUILD} \
  84. BYE=${BYE} \
  85. CC=${CC} \
  86. CCF=${CCF} \
  87. COMMAND=${COMMAND} \
  88. COQ=${COQ} \
  89. DAASE=${DAASE} \
  90. DESTDIR=${DESTDIR} \
  91. DOCUMENT=${DOCUMENT} \
  92. EXTRACT=${EXTRACT} \
  93. GCLDIR=${GCLDIR} \
  94. GCLOPTS=${GCLOPTS} \
  95. GCLVERSION=${GCLVERSION} \
  96. INC=${INC} \
  97. INT=${INT} \
  98. LDF=${LDF} \
  99. LISP=${LISP} \
  100. LSP=${LSP} \
  101. MNT=${MNT} \
  102. NOISE=${NOISE} \
  103. O=${O} \
  104. OBJ=${OBJ} \
  105. PART=${PART} \
  106. PATCH=${PATCH} \
  107. PLF=${PLF} \
  108. PROOFS=${PROOFS} \
  109. RANLIB=${RANLIB} \
  110. RUNTYPE=${RUNTYPE} \
  111. SPAD=${SPAD} \
  112. SPADBIN=${SPADBIN} \
  113. SPD=${SPD} \
  114. SRC=${SRC} \
  115. SRCDIRS=${SRCDIRS} \
  116. SUBPART=${SUBPART} \
  117. SYS=${SYS} \
  118. TANGLE=${TANGLE} \
  119. TAR=${TAR} \
  120. TESTSET=${TESTSET} \
  121. TMP=${TMP} \
  122. TOUCH=${TOUCH} \
  123. UNCOMPRESS=${UNCOMPRESS} \
  124. VERSION=${VERSION} \
  125. WEAVE=${WEAVE} \
  126. XLIB=${XLIB} \
  127. ZIPS=${ZIPS}
  128. all: rootdirs axiom.sty tanglec libspad lspdir
  129. @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART}
  130. @ echo 2 Environment ${ENV}
  131. @ ${BOOKS}/tanglec Makefile.pamphlet "Makefile.${SYS}" >Makefile.${SYS}
  132. @ cp ${BOOKS}/dvipdfm.def ${MNT}/${SYS}/doc
  133. @ cp ${BOOKS}/changepage.sty ${MNT}/${SYS}/doc
  134. @ ${EXTRACT} Makefile.pamphlet
  135. @ cp Makefile.pdf ${MNT}/${SYS}/doc/src/root.Makefile.pdf
  136. @ if [ "${RUNTYPE}" = "parallel" ] ; then \
  137. ( echo p4 starting parallel make of input files ; \
  138. ${ENV} ${MAKE} input ${NOISE} & ) ; \
  139. else \
  140. if [ "${BUILD}" = "full" ] ; then \
  141. ( echo s4 starting serial make of input files ; \
  142. cd ${MNT}/${SYS}/doc/src/input ; \
  143. cp ${BOOKS}/axiom.sty . ; \
  144. cp ${SRC}/input/*.eps . ; \
  145. for i in `ls ${SRC}/input/*.input.pamphlet` ; do \
  146. if [ .${NOISE} = . ] ; \
  147. then \
  148. latex $$i ; \
  149. else \
  150. ( echo p4a making $$i ; \
  151. latex $$i >${TMP}/trace ) ; \
  152. fi ; \
  153. done ; \
  154. rm -f *~ ; \
  155. rm -f *.pamphlet~ ; \
  156. rm -f *.log ; \
  157. rm -f *.tex ; \
  158. rm -f *.toc ; \
  159. rm -f *.aux ) ; fi ; \
  160. fi
  161. @ if [ "${RUNTYPE}" = "parallel" ] ; then \
  162. ( echo s2 starting parallel make of books ; \
  163. echo s3 ${SPD}/books/Makefile from \
  164. ${SPD}/books/Makefile.pamphlet ; \
  165. cd ${SPD}/books ; \
  166. ${EXTRACT} Makefile ; \
  167. cp Makefile.pdf ${MNT}/${SYS}/doc/src/books.Makefile.pdf ; \
  168. ${ENV} ${MAKE} & ) ; \
  169. else \
  170. ( echo s2 starting serial make of books ; \
  171. echo s3 ${SPD}/books/Makefile from \
  172. ${SPD}/books/Makefile.pamphlet ; \
  173. cd ${SPD}/books ; \
  174. ${EXTRACT} Makefile ; \
  175. cp Makefile.pdf ${MNT}/${SYS}/doc/src/books.Makefile.pdf ; \
  176. if [ "${BUILD}" = "full" ] ; then \
  177. ${ENV} ${MAKE} ; fi ) ; \
  178. fi
  179. @ echo p7 starting make of src
  180. @ ${ENV} $(MAKE) -f Makefile.${SYS}
  181. @ echo 3 finished system build on `date` | tee >lastBuildDate
  182. lspdir: ${LSP}/Makefile
  183. @echo 19 making ${LSP}
  184. @mkdir -p ${OBJ}/${SYS}/bin
  185. @mkdir -p ${OBJ}/${SYS}/lsp
  186. @echo =====================================
  187. @echo lsp BUILDING GCL COMMON LISP
  188. @echo =====================================
  189. (cd lsp ; ${ENV} DESTDIR= ${MAKE} gcldir )
  190. @(cp ${GCLDIR}/unixport/saved_gcl ${SPADBIN}/${GCLVERSION})
  191. ${LSP}/Makefile: ${LSP}/Makefile.pamphlet
  192. @echo 20 making ${LSP}/Makefile from ${LSP}/Makefile.pamphlet
  193. @( cd lsp ; \
  194. ${EXTRACT} Makefile.pamphlet ; \
  195. if [ "${GCLVERSION}" != "gcl-2.4.1" ] ; then \
  196. ${BOOKS}/tanglec Makefile.pamphlet ${GCLVERSION} >Makefile ; \
  197. fi ; \
  198. cp Makefile.pdf ${MNT}/${SYS}/doc/src/lsp.Makefile.pdf )
  199. lspclean:
  200. @echo 21 cleaning ${OBJ}/${SYS}/ccl
  201. @rm -rf ${LSP}/${GCLVERSION}
  202. @rm -rf ${INT}/ccl
  203. @rm -rf ${OBJ}/${SYS}/ccl
  204. @rm -rf ${LSP}/gcldir
  205. @rm -f ${LSP}/Makefile ${LSP}/Makefile.dvi
  206. libspad:
  207. @ echo 11a making libspad
  208. @ ( cd ${OBJ}/${SYS}/lib ; \
  209. ${BOOKS}/tanglec ${BOOKS}/bookvol8.pamphlet Makefile >Makefile ; \
  210. ${ENV} ${MAKE} libspad.a )
  211. axiom.sty:
  212. @ echo 11c copying books/axiom.sty
  213. @ cp ${BOOKS}/axiom.sty .
  214. rootdirs:
  215. @ echo 11 checking directory structure
  216. mkdir -p ${TMP}
  217. mkdir -p ${INT}/algebra
  218. mkdir -p ${INT}/hyper
  219. mkdir -p ${INT}/input
  220. mkdir -p ${INT}/interp
  221. mkdir -p ${INT}/sman
  222. mkdir -p ${OBJ}/${SYS}/bin
  223. mkdir -p ${OBJ}/${SYS}/etc
  224. mkdir -p ${OBJ}/${SYS}/graph
  225. mkdir -p ${OBJ}/${SYS}/hyper/pages
  226. mkdir -p ${OBJ}/${SYS}/interp
  227. mkdir -p ${OBJ}/${SYS}/lib
  228. mkdir -p ${OBJ}/${SYS}/sman
  229. mkdir -p ${OBJ}/${SYS}/proofs
  230. mkdir -p ${MNT}/doc
  231. mkdir -p ${MNT}/${SYS}/algebra
  232. mkdir -p ${MNT}/${SYS}/src/algebra
  233. mkdir -p ${MNT}/${SYS}/autoload
  234. mkdir -p ${MNT}/${SYS}/bin
  235. mkdir -p ${MNT}/${SYS}/doc/axbook
  236. mkdir -p ${MNT}/${SYS}/doc/bitmaps
  237. mkdir -p ${MNT}/${SYS}/doc/hypertex/bitmaps
  238. mkdir -p ${MNT}/${SYS}/doc/msgs
  239. mkdir -p ${MNT}/${SYS}/doc/ps
  240. mkdir -p ${MNT}/${SYS}/doc/cookbook
  241. mkdir -p ${MNT}/${SYS}/doc/spadhelp
  242. mkdir -p ${MNT}/${SYS}/doc/src/input
  243. mkdir -p ${MNT}/${SYS}/graph/parabola.view
  244. mkdir -p ${MNT}/${SYS}/input
  245. mkdir -p ${MNT}/${SYS}/lib/graph
  246. mkdir -p ${MNT}/${SYS}/lib/scripts
  247. input:
  248. @ echo p9 making input documents
  249. @ if [ "${BUILD}" = "full" ] ; then \
  250. ( cd ${MNT}/${SYS}/doc/src/input ; \
  251. cp ${BOOKS}/axiom.sty . ; \
  252. for i in `ls ${SRC}/input/*.input.pamphlet` ; \
  253. do latex $$i ; \
  254. done ; \
  255. rm -f *~ ; \
  256. rm -f *.pamphlet~ ; \
  257. rm -f *.log ; \
  258. rm -f *.tex ; \
  259. rm -f *.toc ; \
  260. rm -f *.aux ) ; fi
  261. book:
  262. @ echo 79 building the book as ${MNT}/${SYS}/doc/book.dvi
  263. @ cp ${SRC}/doc/book.pamphlet ${MNT}/${SYS}/doc
  264. @ cp -pr ${SRC}/doc/ps ${MNT}/${SYS}/doc
  265. @ (cd ${MNT}/${SYS}/doc ; \
  266. if [ .${NOISE} = . ] ; then \
  267. ( latex book.pamphlet --interaction nonstopmode ; \
  268. latex book.pamphlet --interaction nonstopmode ) ; \
  269. else \
  270. ( latex book.pamphlet --interaction nonstopmode >${TMP}/trace ; \
  271. latex book.pamphlet --interaction nonstopmode >${TMP}/trace ) ; \
  272. fi ; \
  273. rm book.pamphlet ; \
  274. rm book.toc ; \
  275. rm book.log ; \
  276. rm book.aux )
  277. @ echo 80 The book is at ${MNT}/${SYS}/doc/book.dvi
  278. tanglec: books/tanglec.c
  279. @echo t01 making tanglec from books/tanglec.c
  280. @( cd books ; gcc -o tanglec tanglec.c )
  281. install:
  282. @echo 78 installing Axiom in ${DESTDIR}
  283. @mkdir -p ${DESTDIR}
  284. @cp -pr ${MNT} ${DESTDIR}
  285. @echo '#!/bin/sh -' >${COMMAND}
  286. @echo AXIOM=${DESTDIR}/mnt/${SYS} >>${COMMAND}
  287. @echo export AXIOM >>${COMMAND}
  288. @echo PATH='$${AXIOM}/bin':'$${PATH}' >>${COMMAND}
  289. @echo export PATH >>${COMMAND}
  290. @cat ${INT}/sman/axiom >>${COMMAND}
  291. @chmod +x ${COMMAND}
  292. @echo 79 Axiom installation finished.
  293. @echo
  294. @echo Please add $(shell dirname ${COMMAND}) to your PATH variable
  295. @echo Start Axiom with the command $(shell basename ${COMMAND})
  296. @echo
  297. document:
  298. @ echo 4 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART}
  299. @ echo 5 Environment ${ENV}
  300. @ ${BOOKS}/tanglec Makefile.pamphlet "Makefile.${SYS}" >Makefile.${SYS}
  301. @ ${ENV} $(MAKE) -f Makefile.${SYS} document
  302. @echo 6 finished system build on `date` | tee >lastBuildDate
  303. clean:
  304. @ echo 7 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART}
  305. @ echo 8 Environment ${ENV}
  306. @ rm -f axiom.sty
  307. @ rm -f Makefile.pdf
  308. @ rm -f Makefile.dvi
  309. @ rm -f Makefile.${SYS}
  310. @ rm -f books/Makefile
  311. @ rm -f books/Makefile.dvi
  312. @ rm -f books/Makefile.pdf
  313. @ rm -f books/axiom.bib
  314. @ rm -f books/sortsig.lisp
  315. @ rm -f lsp/axiom.sty
  316. @ rm -f lsp/Makefile lsp/Makefile.dvi lsp/Makefile.pdf
  317. @ rm -rf lsp/gcl*
  318. @ rm -f src/axiom.sty
  319. @ rm -f src/Makefile
  320. @ rm -f src/Makefile.dvi
  321. @ rm -f src/Makefile.pdf
  322. @ rm -f src/algebra/book*pamphlet
  323. @ rm -f src/algebra/*.spad
  324. @ rm -f src/algebra/Makefile
  325. @ rm -f src/etc/axiom.sty
  326. @ rm -f src/etc/Makefile src/etc/Makefile.dvi src/etc/Makefile.pdf
  327. @ rm -f src/interp/book*pamphlet
  328. @ rm -f src/interp/axiom.sty
  329. @ rm -f src/input/axiom.sty
  330. @ rm -f src/share/axiom.sty
  331. @ rm -f src/share/Makefile src/share/Makefile.dvi
  332. @ rm -f src/share/Makefile.pdf
  333. @ rm -rf int
  334. @ rm -rf obj
  335. @ rm -rf mnt
  336. @ for i in `find . -name "*~"` ; do rm -f $$i ; done
  337. @ rm -f lastBuildDate
  338. @ rm -f books/tanglec
  339. @ rm -f src/input/Makefile src/input/Makefile.dvi
  340. @ rm -f src/input/Makefile.pdf
  341. @ rm -f src/interp/Makefile src/interp/Makefile.dvi
  342. @ rm -f src/interp/Makefile.pdf
  343. @ rm -f src/share/Makefile src/share/Makefile.dvi
  344. @ rm -f src/share/Makefile.pdf
  345. @ rm -f Makefile.aux
  346. @ rm -f Makefile.log