## --------------------------------- ## -- Standard Autoconf variables -- ## --------------------------------- SHELL = /bin/bash VPATH = ../../../open-axiom/src/lisp prefix = /projects/77750c71-ec7b-4962-bf55-a49ff5065fb6 exec_prefix = ${prefix} bindir = ${exec_prefix}/bin sbindir = ${exec_prefix}/sbin libexecdir = ${exec_prefix}/libexec datarootdir = ${prefix}/share datadir = ${datarootdir} sysconfdir = ${prefix}/etc sharedstatedir = ${prefix}/com localstatedir = ${prefix}/var includedir = ${prefix}/include oldincludedir = /usr/include docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} infodir = ${datarootdir}/info htmldir = ${docdir} dvidir = ${docdir} pdfdir = ${docdir} psdir = ${docdir} libdir = ${exec_prefix}/lib lispdir = @lispdir@ localedir = ${datarootdir}/locale host = x86_64-unknown-linux-gnu host_alias = build = x86_64-unknown-linux-gnu build_alias = target = x86_64-unknown-linux-gnu target_alias = srcdir = ../../../open-axiom/src/lisp abs_srcdir = /projects/77750c71-ec7b-4962-bf55-a49ff5065fb6/open-axiom-build/../open-axiom/src/lisp top_srcdir = ../../../open-axiom abs_top_srcdir = /projects/77750c71-ec7b-4962-bf55-a49ff5065fb6/open-axiom-build/../open-axiom top_confdir = $(top_srcdir)/config # Notice that there is a bug in Autoconf 2.59 whereby the variable # top_builddir is not defined. So avoid to use it directly. Use # abs_top_builddir. builddir = . abs_builddir = /projects/77750c71-ec7b-4962-bf55-a49ff5065fb6/open-axiom-build/src/lisp top_builddir = ../.. abs_top_builddir = /projects/77750c71-ec7b-4962-bf55-a49ff5065fb6/open-axiom-build datadir = ${datarootdir} PACKAGE_VERSION = 1.5.0-2016-01-24 AR = ar CC = gcc CXX = g++ LD = /usr/bin/ld -m elf_x86_64 CPPFLAGS = -m64 -D_GNU_SOURCE CFLAGS = -g -O2 -O2 -Wall CXXFLAGS = -std=c++11 -g -O2 -O2 -Wall LDFLAGS = -m64 OBJEXT = o EXEEXT = # this includes leading period SHREXT = .so # extension of the archive library; this does not include period LIBEXT = a PACKAGE_STRING = OpenAxiom 1.5.0-2016-01-24 LIBTOOL_DEPS = ../open-axiom/config/ltmain.sh LIBTOOL = $(top_builddir)/libtool ## Command used to compile a C++ program COMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) ## Sadly, at the moment, the C parts of the OpenAxiom system is not ## well structured enough to allow for clean dynamic libraries ## and dynamic linking. So, we build static programs. ## This situation is to be fixed when I have time. LINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -static $(LDFLAGS) ## Libtool is a disaster for building DLLs on Cygwin, and insists ## on adding silly extensions where it should not on MinGW, so we have ## to be very selective about when and where to use. Sadly, that ends ## up negating the whole point of having Libtool in the first place. ifeq (no,no) LINK_SHRLIB = $(CC) $(LDFLAGS) CXXLINK_SHRLIB = $(CXX) $(LDFLAGS) else LINK_SHRLIB = $(LIBTOOL) --tag=CC --mode=link $(CC) $(LDFLAGS) CXXLINK_SHRLIB = $(LIBTOOL) --tag=CXX --mode=link $(CC) $(LDFLAGS) endif oa_shrobj_flags = -prefer-pic oa_shrlib_flags = -shared AWK = gawk INSTALL = /usr/bin/install -c install_sh = ${SHELL} /projects/77750c71-ec7b-4962-bf55-a49ff5065fb6/open-axiom/config/install-sh install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_script = $(install_sh) -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} ## FIXME: The test done with Autoconf-2.60 and later concludes ## that "ln -s" is unusable on msys, and therefore defaults to ## "cp -p", but that default is unusable for us. For our ## purpose "ln -s" is just fine on that platform. Consequently ## we are explicitly overrding that value here. LN_S = ln -s mkinstalldirs = $(top_srcdir)/config/mkinstalldirs RANLIB = ranlib TOUCH = touch # The list of make targets made recursively, by walking sub-directories # Normally, this is a template generated by Automake, but we don't # use Automake yet; so, we must do it the hard way. # See the corresponding rules in setup-dep.mk RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ uninstall-info-recursive uninstall-recursive ## Normally, Automake will substitute the value for this variable. ## But, we don't have Automake yet. So we punt on it. mkdir_p = mkdir -p STAMP = echo timestamp > ## ------------------------- ## -- OpenAxiom variables -- ## ------------------------- quiet_flags = --noinform --noprint eval_flags = --no-sysinit --no-userinit --disable-debugger --eval oa_standard_linking = no ## Absolute path to the toplevel source directory for OpenAxiom. This is ## almost like Autoconf-standard abs_top_srcdir except that, it retains ## the same syntactic values in subdirectories. ## Where The OpenAxiom distribution main source files are kept. ## Notice, this is the src/ directory within the toplevel source ## directory oa_src_srcdir = $(top_srcdir)/src oa_src_docdir = $(oa_src_srcdir)/doc oa_src_datadir = $(oa_src_srcdir)/share oa_src_algdir = $(oa_src_srcdir)/algebra oa_src_texdir = $(oa_src_datadir)/tex oa_configdir = $(top_builddir)/config oa_c_macros = $(oa_configdir)/axiom-c-macros.h LATEX = ## Staging directory for the target DESTDIR oa_targetdir = $(top_builddir)/$(target) oa_target_bindir = $(oa_targetdir)/bin oa_target_libdir = $(oa_targetdir)/lib oa_target_srcdir = $(oa_targetdir)/src oa_target_docdir = $(oa_targetdir)/doc oa_target_datadir = $(oa_targetdir)/share oa_target_texdir = $(oa_target_datadir)/texmf/tex oa_target_includedir = $(oa_targetdir)/include ## The final directory where OpenAxiom is installed. This is usually ## the directory deduced or specified at configuration time. open_axiom_installdir = ${exec_prefix}/lib/open-axiom/x86_64-unknown-linux-gnu/1.5.0-2016-01-24 INC=$(top_srcdir)/src/include oa_c_runtime_extra = -lutil -lm oa_c_libs = -lopen-axiom-core $(oa_c_runtime_extra) -lm oa_yesno_to_lisp_boolean = $(subst yes,t,$(subst no,nil,$(1))) oa_enable_profiling = no oa_enable_lisp_profiling = \ $(call oa_yesno_to_lisp_boolean,$(oa_enable_profiling)) oa_enable_threads = no oa_use_x = yes AXIOM_X11_CFLAGS = AXIOM_X11_LDFLAGS = -lXpm -lSM -lICE -lX11 oa_includes = -I$(oa_src_srcdir)/include -I$(oa_configdir) ## Where the staging build directory is found AXIOM = $(top_builddir)/$(target) ## Where to find OpenAxiom data bases. DAASE = $(oa_src_datadir) ## ------------------------------------------- ## -- Files generated for the build machine -- ## ------------------------------------------- oa_hammer = $(top_builddir)/src/utils/hammer$(EXEEXT) OA_LISP = sbcl # Extension of the output file name returned by compile-file FASLEXT = fasl # Extension of compiled FASLs appropriate for linking into executable # programs. For most Lisp systems, it is the same as FASLEXT because # they build programs by dumping images. ifeq (sbcl,ecl) LNKEXT = $(OBJEXT) else LNKEXT = $(FASLEXT) endif # Qt utilities OA_QT_MOC = moc OA_QT_QMAKE = qmake ## Clear suffix-based implicit rule table. .SUFFIXES: # Copyright (C) 2007-2014, 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. OUT = $(oa_target_bindir) oa_target_lispdir = $(oa_targetdir)/lisp subdir = src/lisp/ build_libdir = ./$(top_builddir)/src/lib ## Ideally, we would like to use Libtool for producing, and linking with, ## object files from C codes. That means any C source code ## explicitly included in OpenAxiom, or produced internally by a Lisp ## compiler. However, the SYSTEM calls by GCL on Windows is very tricky ## to convince to properly resolve path names to executables. ## Consequently we temporarily give up here, e.g., we don't ## instruct GCL to use Libtool on Windows. GCL_LTCC = $(if $(findstring mingw, $(target)),"","$(LIBTOOL) --tag=CC --mode=compile ") GCL_LTLD = $(if $(findstring mingw, $(target)),"$(CXX) $(LDFLAGS) ","$(LINK) ") ## Again, ideally, we would like GCL to link with the compiled Lisp ## code from core.lisp. However, the general interface compiler::link ## that GCL provides for that task is unsupported on Windows platforms. ## So, we instruct GCL so load the source file instead. fasl_ext = $(if $(findstring mingw, $(target)),.lisp,.$(FASLEXT)) FASLS = $(patsubst %,"%", $(addsuffix $(fasl_ext),core)) ifeq (sbcl,ecl) base_lisp_objects = ("core.$(LNKEXT)") oa_base_lisp_linkset = $(oa_target_lispdir)/linkset else base_lisp_objects = nil oa_base_lisp_linkset = endif .PHONY: all all-lisp all: all-ax all-lisp all-ax all-lisp: stamp stamp: $(OUT)/lisp$(EXEEXT) @rm -f stamp $(STAMP) $@ $(oa_target_lispdir)/core.$(LNKEXT): core.$(LNKEXT) $(mkdir_p) $(oa_target_lispdir)/ cp $< $@ ## Create a fresh image for building interpsys and AXIOMsys ## These objects files are the C runtime support ## and must be compiled into the Lisp image, ## as they must be present in the final interpreter ## and image. lisp_c_objects = \ $(build_libdir)/bsdsignal.$(OBJEXT) \ $(build_libdir)/cfuns-c.$(OBJEXT) \ $(build_libdir)/sockio-c.$(OBJEXT) ## The splitting shenaningan below about GCL's COMPILER::*LD* is because ## GCL does not -- currently -- separate the linker proper from arguments, ## therefore forcing us to use brittle tricks to guess what the linker is. $(OUT)/lisp$(EXEEXT): base-lisp$(EXEEXT) ifeq (sbcl,gcl) echo '(let* ((sys-cc compiler::*cc*) ' \ ' (sys-ld compiler::*ld*) ' \ ' (compiler::*cc* (concatenate (quote string) ' \ ' $(GCL_LTCC) ' \ ' sys-cc)) ' \ ' (compiler::*ld* ' \ ' (concatenate (quote string) ' \ ' $(GCL_LTLD) ' \ ' (subseq sys-ld ' \ ' (position (character " ") sys-ld))))) ' \ '(compiler::link (quote ($(FASLS))) "lisp$(EXEEXT)" ' \ ' (format nil "(progn (let ((*load-path* (cons ~S *load-path*))'\ ' (si::*load-types* ~S)))' \ ' (when (fboundp (quote si::sgc-on))' \ ' (si::sgc-on nil))' \ ' (setq si::*top-level-hook* (read-from-string \"|AxiomCore|::|topLevel|\")))"' \ ' si::*system-directory* (quote (list ".lsp")))' \ ' "$(lisp_c_objects) $(oa_c_runtime_extra)"))' \ | ./base-lisp$(EXEEXT) $(mkdir_p) $(OUT) cp -p lisp$(EXEEXT) $(OUT) else $(mkdir_p) $(OUT) cp -p $< $@ && cp -p $< lisp$(EXEEXT) endif base-lisp$(EXEEXT): core.$(FASLEXT) $(oa_base_lisp_linkset) $(OA_LISP) \ $(eval_flags) '(load "core")' \ $(eval_flags) '(|AxiomCore|::|link| "$@" (quote $(base_lisp_objects)) "|AxiomCore|::|topLevel|")' $(oa_target_lispdir)/linkset: $(oa_target_lispdir)/core.$(LNKEXT) rm -f $@ echo '$(base_lisp_objects)' > $@ oa_optimize_options = speed oa_delay_ffi = yes oa_use_llvm = yes oa_editor = /usr/bin/vi void_type = void char_type = char int_type = int float_type = float double_type = double string_type = c-string oa_comma =, oa_keep_files = $(patsubst %,|%|,$(subst $(oa_comma), ,)) edit = sed \ -e 's|@open_axiom_installdir[@]|$(open_axiom_installdir)|g' \ -e 's|@oa_optimize_options[@]|$(oa_optimize_options)|g' \ -e 's|@CXX[@]|$(CXX)|g' \ -e 's|@LDFLAGS[@]|$(LDFLAGS)|g' \ -e 's|@oa_editor[@]|$(oa_editor)|g' \ -e 's/@oa_keep_files[@]/$(oa_keep_files)/g' \ -e 's|@host[@]|$(host)|g' \ -e 's|@build[@]|$(build)|g' \ -e 's|@target[@]|$(target)|g' \ -e 's|@SHREXT[@]|$(SHREXT)|g' \ -e 's|@LIBEXT[@]|$(LIBEXT)|g' \ -e 's|@oa_c_runtime_extra[@]|$(patsubst %,"%",$(oa_c_runtime_extra))|g' \ -e 's|@oa_standard_linking[@]|$(oa_standard_linking)|g' \ -e 's|@oa_enable_profiling[@]|$(oa_enable_lisp_profiling)|g' \ -e 's|@oa_delay_ffi[@]|$(oa_delay_ffi)|g' \ -e 's|@oa_use_llvm[@]|$(oa_use_llvm)|g' \ -e 's|@void_type[@]|$(void_type)|g' \ -e 's|@char_type[@]|$(char_type)|g' \ -e 's|@int_type[@]|$(int_type)|g' \ -e 's|@float_type[@]|$(float_type)|g' \ -e 's|@double_type[@]|$(double_type)|g' \ -e 's|@string_type[@]|$(string_type)|g' core.lisp: $(srcdir)/core.lisp.in @echo "oa_enable_lisp_profiling= ${oa_enable_lisp_profiling}" $(edit) $< > [email protected] $(top_srcdir)/config/move-if-change [email protected] $@ core.$(FASLEXT): core.lisp ifeq (sbcl,ecl) $(OA_LISP) $(quiet_flags) \ $(eval_flags) '(require (quote cmp))' \ $(eval_flags) '(compile-file "$<" :system-p t)' \ $(eval_flags) '(c::build-fasl "$@" :lisp-files (quote ("core.$(LNKEXT)")))' \ $(eval_flags) '(quit)' else $(OA_LISP) $(quiet_flags) \ $(eval_flags) '(progn (compile-file "$<") (quit))' endif mostlyclean-local: rm -f core.$(FASLEXT) core.$(OBJEXT) core.lisp @if test -n "$(oa_base_lisp_linkset)"; then \ rm -f $(oa_base_lisp_linkset); fi @rm -f $(OUT)/lisp$(EXEEXT) lisp$(EXEEXT) base-lisp$(EXEEXT) rm -rf $(oa_target_lispdir) @rm -f stamp clean-local: mostlyclean distclean-local: clean-local @rm -f Makefile ## --------------------------------------- ## -- Standard boilerplate dependencies -- ## --------------------------------------- # Recursive rules, usually automatically generated by Automake. # Since we do not use (yet) Automake, we mimic the behaviour as # close as possible. # Recursive wall of sub-directories is based on the variable # SUBDIRS. That variable usually contains the of sub-directories # to be made in depth-first postfix. However, that order can # be changed to depth-first prefix by explicitly including "." # in SUBDIRS. Rules ending with '-ax' are those specific to the # the current directory. Notice that the '-ax' rules are similar # to Automake generated '-am'. .PHONY: $(RECURSIVE_TARGETS) $(RECURSIVE_TARGETS): failcmd='exit 1'; \ for f in $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*) ;; \ *k*) failcmd='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; list='$(SUBDIRS)'; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-ax"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $$local_target) || eval $$failcmd; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) "$$target-ax" || exit 1; \ fi; test -z "$$fail" # Recursive cleanup is done in reverse, postfix order of ordinary build. .PHONY: mostlyclean-recursive .PHONY: clean-recursive .PHONY: distclean-recursive .PHONY: maintainer-clean-recursive mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcmd='exit 1'; \ for f in $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*) ;; \ *k*) failcmd='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; \ for subdir in $$list; do \ if test "$$subdir" != "."; then \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-ax"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $$local_target) || eval $$failcmd; \ done && test -z "$$fail" ## Rules to make DVI files from pamphlets .PRECIOUS: %.tex .PRECIOUS: %.dvi DVI_FILES = $(addprefix $(oa_target_docdir)/$(subdir), \ $(pamphlets:.pamphlet=.dvi)) pamphlets_SOURCES = $(addprefix $(srcdir)/, $(pamphlets)) .PHONY: dvi dvi-ax dvi: dvi-recursive dvi-ax: $(oa_build_texdir)/axiom.sty $(DVI_FILES) $(oa_target_docdir)/$(subdir)%.dvi: $(builddir)/%.dvi $(mkinstalldirs) $(oa_target_docdir)/$(subdir) $(INSTALL_DATA) $< $@ %.dvi: %.tex $(oa_build_texdir)/axiom.sty TEXINPUTS=".:$(oa_build_texdir):$${TEXINPUTS}"; \ export TEXINPUTS; \ BIBINPUTS=".:$(oa_build_texdir):$${TEXINPUTS}"; \ export BIBINPUTS; \ $(oa_hammer) --latex $< %.tex: $(srcdir)/%.pamphlet $(oa_hammer) --weave --output=$@ $< .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_srcdir)/config/var-def.mk \ $(top_srcdir)/config/setup-dep.mk \ $(abs_top_builddir)/config.status cd $(abs_top_builddir) && $(SHELL) ./config.status $(subdir)$@ $(top_builddir)/src/lisp/core.lisp: \ $(top_srcdir)/src/lisp/core.lisp.in \ $(top_builddir)/config.status cd $(top_builddir) && \ $(SHELL) ./config.status src/lisp/core.lisp ## Cleanup. ## Each Makefile is responsible of defining targets named ## mostlyclean-local, clean-local, and distclean-local. .PHONY: mostlyclean-generic mostlyclean-local mostlyclean mostlyclean-ax mostlyclean-generic: @-rm -f *~ @-rm -f *.log *.aux *.toc mostlyclean: mostlyclean-recursive mostlyclean-ax: mostlyclean-generic mostlyclean-local .PHONY: clean-generic clean-local clean clean-ax clean-generic: mostlyclean-generic @-rm -f *.tex *.dvi clean: clean-recursive clean-ax: clean-generic clean-local .PHONY: distclean-generic distclean-local distclean distclean-ax distclean-generic: clean-generic @-rm -rf $(oa_target_docdir)/$(subdir) distclean: distclean-recursive distclean-ax: distclean-generic distclean-local