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 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
#
# Copyright (c) 2007-2013 Tero Koskinen <tero.koskinen@iki.fi>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
PREFIX?=$(HOME)/libraries/ahven
INSTALL=install
OS_VERSION?=unix
LIBDIR?=$(PREFIX)/lib
LIBTYPE=static
VERSION=24
SOURCES=src/ahven-framework.adb src/ahven-framework.ads \
src/ahven-listeners-basic.adb src/ahven-listeners-basic.ads \
src/ahven-listeners.ads \
src/ahven-results.adb src/ahven-results.ads \
src/ahven-runner.adb src/ahven-runner.ads \
src/ahven-text_runner.adb src/ahven-text_runner.ads \
src/ahven.adb src/ahven.ads \
src/ahven-temporary_output.adb \
src/ahven-temporary_output.ads \
src/ahven-parameters.adb src/ahven-parameters.ads \
src/ahven-xml_runner.adb src/ahven-xml_runner.ads \
src/ahven-tap_runner.adb src/ahven-tap_runner.ads \
src/ahven-astrings.ads \
src/ahven-long_astrings.ads \
src/${OS_VERSION}/ahven_compat.adb src/${OS_VERSION}/ahven_compat.ads \
src/ahven-slist.adb src/ahven-slist.ads
ALI_FILES=lib/dynamic/ahven.ali \
lib/dynamic/ahven_compat.ali \
lib/dynamic/ahven-framework.ali \
lib/dynamic/ahven-listeners-basic.ali \
lib/dynamic/ahven-listeners.ali \
lib/dynamic/ahven-results.ali \
lib/dynamic/ahven-runner.ali \
lib/dynamic/ahven-slist.ali \
lib/dynamic/ahven-tap_runner.ali \
lib/dynamic/ahven-parameters.ali \
lib/dynamic/ahven-temporary_output.ali \
lib/dynamic/ahven-text_runner.ali \
lib/dynamic/ahven-astrings.ali \
lib/dynamic/ahven-long_astrings.ali \
lib/dynamic/ahven-xml_runner.ali
STATIC_LIBRARY=libahven.a
SO_LIBRARY=libahven.so.$(VERSION).0
GPR_FILE=gnat/ahven.gpr
default: build_all
objects:
mkdir -p objects
test_objects:
mkdir -p test_objects
lib:
mkdir -p lib
build_all: objects test_objects build_lib build_tests
build_lib: objects lib
OS_VERSION=$(OS_VERSION) gnatmake -p -Pgnat/ahven_lib \
-XLIBTYPE="$(LIBTYPE)" -XVERSION="$(VERSION)" -XLDFLAGS="$(LDFLAGS)" \
-cargs $(ADAFLAGS)
build_tests: test_objects build_lib
OS_VERSION=$(OS_VERSION) gnatmake -p -Pgnat/ahven_tests
clean: clean_lib clean_tests clean_docs
clean_lib:
gnatclean -q -Pgnat/ahven_lib
clean_tests:
gnatclean -q -Pgnat/ahven_tests
clean_docs:
rm -f doc/api/*.html ahven.specs
distclean:
rm -rf lib objects results test_objects tester tap_tester
install: install_lib install_docs
install_lib: build_lib
mkdir -p $(PREFIX)/include/ahven
mkdir -p $(LIBDIR)/ahven
mkdir -p $(PREFIX)/lib/gnat
$(INSTALL) -m 644 $(SOURCES) $(PREFIX)/include/ahven
$(INSTALL) -m 444 $(ALI_FILES) $(LIBDIR)/ahven
$(INSTALL) -m 644 lib/static/$(STATIC_LIBRARY) $(LIBDIR)
$(INSTALL) -m 644 lib/dynamic/$(SO_LIBRARY) $(LIBDIR)
cd $(LIBDIR) && ln -sf $(SO_LIBRARY) libahven.so
$(INSTALL) -m 644 $(GPR_FILE) $(PREFIX)/lib/gnat
install_docs: userguide
mkdir -p $(PREFIX)/share/doc/ahven
cp -r doc/manual/en/build/html $(PREFIX)/share/doc/ahven
check: build_tests
./tester -c
check_xml: build_tests
-mkdir -p results
./tester -c -x -d results
check_tap: build_tests
./tap_tester
control:
rm -f objects/*.adt objects/*.ali
cd objects && adactl -f ../rules/ahven.aru ../src/*.ad[bs] ../test/*.ad[bs] ../src/unix/*.ad[bs]
rm -f objects/*.adt objects/*.ali
docs: userguide
old_docs: ahven.specs
echo This method is deprecated. Please use 'docs' target.
mkdir -p doc/api
adabrowse -c adabrowse.conf -i -f@ahven.specs -o doc/api/
userguide:
$(MAKE) -C doc/manual/en html
ahven.specs: $(SOURCES)
find src/ -name "*.ads" -print |sort|uniq > ahven.specs
README.html: README.rst
rst2html --stylesheet-path=css/html4css1.css,css/my-docutils.css README.rst > README.html
tags: $(SOURCES)
ectags src/*.adb
|