You've already forked libadalang-tools
mirror of
https://github.com/AdaCore/libadalang-tools.git
synced 2026-02-12 12:58:11 -08:00
136 lines
3.2 KiB
Makefile
136 lines
3.2 KiB
Makefile
# To build in production mode, do "make LIBRARY_TYPE=static BUILD_MODE=prod".
|
|
# To build in development mode, do "make LIBRARY_TYPE=static BUILD_MODE=dev".
|
|
|
|
BUILD_MODE ?= dev
|
|
LIBRARY_TYPE ?= static
|
|
LALTOOLS_SET ?= all
|
|
PROCESSORS ?= 0
|
|
BUILD_ROOT ?=
|
|
|
|
ALL_LIBRARY_TYPES = static static-pic relocatable
|
|
ALL_BUILD_MODES = dev prod AddressSanitizer
|
|
|
|
LIB_PROJECTS = \
|
|
src/lal_tools.gpr
|
|
|
|
BIN_PROJECTS = \
|
|
src/build.gpr
|
|
|
|
TESTSUITE_PROJECTS ?= \
|
|
testsuite/ada_drivers/indent/indent.gpr \
|
|
testsuite/ada_drivers/outgoing_calls/outgoing_calls.gpr \
|
|
testsuite/ada_drivers/partial_gnatpp/partial_gnatpp.gpr
|
|
|
|
ALL_PROJECTS = \
|
|
$(BIN_PROJECTS) $(LIB_PROJECTS) $(TESTSUITE_PROJECTS)
|
|
|
|
ifeq ($(BUILD_ROOT),)
|
|
RELOCATE_BUILD=
|
|
BIN=bin
|
|
else
|
|
# build artifacts are relocated to $(BUILD_ROOT)
|
|
RELOCATE_BUILD=--relocate-build-tree="$(BUILD_ROOT)" --root-dir=.
|
|
BIN=$(BUILD_ROOT)/bin
|
|
endif
|
|
|
|
GPRBUILD = gprbuild -v -k -p -j$(PROCESSORS) $(RELOCATE_BUILD)
|
|
|
|
.PHONY: all
|
|
all:
|
|
which gprbuild
|
|
which gcc
|
|
for proj in $(ALL_PROJECTS) ; do \
|
|
$(GPRBUILD) \
|
|
-XLIBRARY_TYPE=$(LIBRARY_TYPE) \
|
|
-XXMLADA_BUILD=$(LIBRARY_TYPE) \
|
|
-XLALTOOLS_BUILD_MODE=$(BUILD_MODE) \
|
|
-XLALTOOLS_SET=$(LALTOOLS_SET) \
|
|
-P $$proj ; \
|
|
done
|
|
|
|
.PHONY: lib
|
|
lib:
|
|
which gprbuild
|
|
which gcc
|
|
for proj in $(LIB_PROJECTS) ; do \
|
|
for kind in $(ALL_LIBRARY_TYPES) ; do \
|
|
rm -f obj/lib/$$kind/*.lexch; \
|
|
$(GPRBUILD) \
|
|
-XLIBRARY_TYPE=$$kind \
|
|
-XLALTOOLS_BUILD_MODE=$(BUILD_MODE) \
|
|
-P $$proj ; \
|
|
done ; \
|
|
done
|
|
|
|
.PHONY: bin
|
|
bin:
|
|
which gprbuild
|
|
which gcc
|
|
for proj in $(BIN_PROJECTS) ; do \
|
|
$(GPRBUILD) \
|
|
-XLIBRARY_TYPE=$(LIBRARY_TYPE) \
|
|
-XXMLADA_BUILD=$(LIBRARY_TYPE) \
|
|
-XLALTOOLS_BUILD_MODE=$(BUILD_MODE) \
|
|
-XLALTOOLS_SET=$(LALTOOLS_SET) \
|
|
-P $$proj ; \
|
|
done
|
|
|
|
.PHONY: testsuite_drivers
|
|
testsuite_drivers:
|
|
which gprbuild
|
|
which gcc
|
|
for proj in $(TESTSUITE_PROJECTS) ; do \
|
|
$(GPRBUILD) \
|
|
-XLIBRARY_TYPE=$(LIBRARY_TYPE) \
|
|
-XXMLADA_BUILD=$(LIBRARY_TYPE) \
|
|
-XLALTOOLS_BUILD_MODE=$(BUILD_MODE) \
|
|
-XLALTOOLS_SET=$(LALTOOLS_SET) \
|
|
-P $$proj ; \
|
|
done
|
|
|
|
.PHONY: test
|
|
test: all
|
|
$(BIN)/utils-var_length_ints-test
|
|
testsuite/testsuite.py
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
for proj in $(ALL_PROJECTS) ; do \
|
|
for build_mode in $(ALL_BUILD_MODES) ; do \
|
|
for library_type in $(ALL_LIBRARY_TYPES) ; do \
|
|
gprclean $(RELOCATE_BUILD) \
|
|
-XLIBRARY_TYPE=$$library_type \
|
|
-XLALTOOLS_BUILD_MODE=$$build_mode \
|
|
-q -P $$proj; \
|
|
done ; \
|
|
done ; \
|
|
done
|
|
|
|
.PHONY: install-lib
|
|
install-lib:
|
|
for proj in $(LIB_PROJECTS) ; do \
|
|
for kind in $(ALL_LIBRARY_TYPES) ; do \
|
|
gprinstall $(RELOCATE_BUILD) \
|
|
-XLIBRARY_TYPE=$$kind \
|
|
-XLALTOOLS_BUILD_MODE=$(BUILD_MODE) \
|
|
--prefix="$(DESTDIR)" \
|
|
--sources-subdir=include/$$(basename $$proj | cut -d. -f1) \
|
|
--build-name=$$kind \
|
|
--build-var=LIBRARY_TYPE --build-var=LAL_TOOLS_BUILD \
|
|
-P $$proj -p -f ; \
|
|
done ; \
|
|
done
|
|
|
|
.PHONY: install-bin-strip
|
|
install-bin-strip:
|
|
mkdir -p "$(DESTDIR)"
|
|
cp -r "$(BIN)" "$(DESTDIR)/"
|
|
# Don't strip debug builds
|
|
test "$(BUILD_MODE)" = dev || strip "$(DESTDIR)/bin/"*
|
|
|
|
.PHONY: install-tgen
|
|
install-tgen:
|
|
mkdir -p "$(DESTDIR)/share/tgen"
|
|
cp -r src/tgen/tgen_rts "$(DESTDIR)/share/tgen/"
|
|
cp -r share/tgen/templates "$(DESTDIR)/share/tgen/"
|