aboutsummaryrefslogtreecommitdiff
path: root/Makefile.in
blob: b680205b33f9c71e1f56dd1218a50dc1e6292b9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
## Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
## All rights reserved.
## Copyright (C) 2007-2010, Gabriel Dos Reis.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions are
## met:
##
##     - Redistributions of source code must retain the above copyright
##       notice, this list of conditions and the following disclaimer.
##
##     - Redistributions in binary form must reproduce the above copyright
##       notice, this list of conditions and the following disclaimer in
##       the documentation and/or other materials provided with the
##       distribution.
##
##     - Neither the name of The Numerical ALgorithms Group Ltd. nor the
##       names of its contributors may be used to endorse or promote products
##       derived from this software without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
## IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
## TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
## PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
## OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
## LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
## NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
##

# The build system is set up  so that if `make all' completes successfully
# then `make install' will not modify any file in the build directory.
# Consequently it is possible to issue `make all' as an one user
# to build the whole system, and install it as another user.  The typical
# case is: on Unix-like system, build as ordinary user, then install as
# superuser.

# The build flow of OpenAxiom seems, at first sight, a bit intricate to
# describe.  This description is STILL IN WORK IN PROGRESS.  Therefore
# it is incorrekt, incomplet, and iNconSiStenT.


## --------------------------------------------
## -- Old-style OpenAxiom makefile variables --
## --------------------------------------------

GCLOPTS=@GCLOPTS@

pamphlets = configure.ac.pamphlet Makefile.pamphlet


subdir = 

SUBDIRS = src

build_srcdir = $(builddir)/src

AXIOM_SRC_TARGETS = all-algebra all-asq all-axiomsys all-boot all-share \
	all-clef all-doc all-graph all-hyper all-input all-interpsys \
	all-lib all-lisp all-sman all-driver all-src  all-databases all-utils

.PHONY: all $(AXIOM_SRC_TARGETS)
all: all-ax

all-ax: all-src
	@echo finished system build on `date` | tee > lastBuildDate

$(AXIOM_SRC_TARGETS): stamp-rootdirs
all-src: stamp-rootdirs @oa_all_prerequisites@

ifeq ($(strip $(oa_include_gcl)),yes)
all-boot all-lisp all-interpsys all-axiomsys \
  all-algebra all-input: all-gcl
endif

$(AXIOM_SRC_TARGETS):
	cd "$(build_srcdir)" && $(MAKE) $@

.PHONY: all-algstrap
all-algstrap:
	cd src/algebra && $(MAKE) $@

stamp-rootdirs:
	@$(STAMP) stamp-rootdirs


.PHONY: all-gcl
all-gcl: $(axiom_build_bindir)/gcl$(EXEEXT)

$(axiom_build_bindir)/gcl$(EXEEXT):
	if test "$(srcdir)" != "$(builddir)" -a ! -d gcl; then \
	   cp -r "$(srcdir)"/gcl "$(builddir)"; \
	fi; cd gcl; \
	./configure --prefix="$(axiom_abs_builddir)" ${GCLOPTS} && \
		$(MAKE) && $(MAKE) install
.PHONY: install
install:
	@echo Installing OpenAxiom in $(DESTDIR)$(prefix)
	@$(mkinstalldirs) "$(DESTDIR)$(open_axiom_installdir)"
	cp -pr "$(builddir)"/$(target)/* "$(DESTDIR)$(open_axiom_installdir)"
	rm -f "$(DESTDIR)$(bindir)"/open-axiom
	@$(mkinstalldirs) "$(DESTDIR)$(bindir)"
	$(INSTALL_PROGRAM) src/driver/open-axiom$(EXEEXT) "$(DESTDIR)$(bindir)"
	@echo OpenAxiom installation finished.

.PHONY: check
check:
	cd src && $(MAKE) all-check


mostlyclean-local:
	@-rm -f lastBuildDate

clean-local: mostlyclean-local
	@ rm -f stamp-*
	@ rm -rf int

distclean-local: clean-local
	@-rm -rf build
	@-rm -rf "$(axiom_targetdir)"
	@-rm -f config.status config.log
	@-rm -f Makefile

$(top_builddir)/config.status: $(top_srcdir)/configure
	$(SHELL) ./config.status --recheck