You've already forked templates-parser
mirror of
https://github.com/AdaCore/templates-parser.git
synced 2026-02-12 12:29:55 -08:00
Symptom: ``` make setup PRJ_BUILD=Debug make ``` answers `gprbuild -p "-XPRJ_BUILD=Release" ...`.
215 lines
5.6 KiB
Makefile
215 lines
5.6 KiB
Makefile
############################################################################
|
|
# Ada Web Server #
|
|
# #
|
|
# Copyright (C) 2003-2020, AdaCore #
|
|
# #
|
|
# This is free software; you can redistribute it and/or modify it #
|
|
# under terms of the GNU General Public License as published by the #
|
|
# Free Software Foundation; either version 3, or (at your option) any #
|
|
# later version. This software is distributed in the hope that it will #
|
|
# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty #
|
|
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU #
|
|
# General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU General Public License #
|
|
# distributed with this software; see file COPYING3. If not, go #
|
|
# to http://www.gnu.org/licenses for a complete copy of the license. #
|
|
############################################################################
|
|
|
|
ifndef VERBOSE_MAKE
|
|
.SILENT:
|
|
endif
|
|
|
|
VERSION = 22.0
|
|
|
|
DEBUG = false
|
|
TP_TASKING = Standard_Tasking
|
|
PROCESSORS = 0
|
|
HOST := $(shell gcc -dumpmachine)
|
|
TARGET := $(shell gcc -dumpmachine)
|
|
prefix := $(dir $(shell which gnatls))..
|
|
DEFAULT_LIBRARY_TYPE = static
|
|
|
|
GNAT := gnat
|
|
|
|
ENABLE_STATIC = true
|
|
ENABLE_SHARED := $(shell $(GNAT) make -c -q -p -XTARGET=$(TARGET) \
|
|
-Pconfig/setup/test_shared 2>/dev/null && echo "true")
|
|
|
|
ifeq ($(shell gnat ls -Pxmlada_dom 2>&1 | grep 'project file .* not found'),)
|
|
TP_XMLADA := Installed
|
|
else
|
|
TP_XMLADA := Disabled
|
|
endif
|
|
|
|
ifeq ($(HOST), $(TARGET))
|
|
GPROPTS =
|
|
TPREFIX=$(DESTDIR)$(prefix)
|
|
else
|
|
GPROPTS = --target=$(TARGET)
|
|
TPREFIX=$(DESTDIR)$(prefix)/$(TARGET)
|
|
endif
|
|
|
|
MODE = $(if $(filter-out true,$(DEBUG)),release,debug)
|
|
SDIR = $(TARGET)/$(MODE)
|
|
|
|
GPRBUILD = gprbuild
|
|
GPRINSTALL = gprinstall
|
|
GPRCLEAN = gprclean
|
|
|
|
# Compute the default library kind, and possibly the other that are to
|
|
# be built.
|
|
|
|
ifeq ($(DEFAULT_LIBRARY_TYPE),shared)
|
|
ifneq ($(ENABLE_SHARED),true)
|
|
$(error shared not enabled, cannot be the default)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(DEFAULT_LIBRARY_TYPE),static)
|
|
ifneq ($(ENABLE_STATIC),true)
|
|
$(error static not enabled, cannot be the default)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(ENABLE_STATIC), true)
|
|
LIBRARY_TYPES += static
|
|
endif
|
|
|
|
ifeq ($(ENABLE_SHARED), true)
|
|
LIBRARY_TYPES += relocatable static-pic
|
|
endif
|
|
|
|
ifeq ($(DEBUG), true)
|
|
PRJ_BUILD := Debug
|
|
else
|
|
PRJ_BUILD := Release
|
|
endif
|
|
|
|
ifeq ($(strip $(findstring linux, $(TARGET))),linux)
|
|
PRJ_TARGET=Linux
|
|
else
|
|
ifeq ($(strip $(findstring mingw32, $(TARGET))),mingw32)
|
|
PRJ_TARGET=Windows
|
|
else
|
|
ifeq ($(strip $(findstring cygwin, $(TARGET))),cygwin)
|
|
PRJ_TARGET=Windows
|
|
else
|
|
ifeq ($(strip $(findstring darwin, $(TARGET))),darwin)
|
|
PRJ_TARGET=macOS
|
|
else
|
|
ifeq ($(strip $(findstring freebsd, $(TARGET))),freebsd)
|
|
PRJ_TARGET=FreeBSD
|
|
else
|
|
PRJ_TARGET=UNIX
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
-include makefile.setup
|
|
|
|
ALL_OPTIONS := \
|
|
DEBUG \
|
|
DEFAULT_LIBRARY_TYPE \
|
|
ENABLE_SHARED \
|
|
ENABLE_STATIC \
|
|
GNAT \
|
|
GPRBUILD \
|
|
GPRCLEAN \
|
|
PRJ_BUILD \
|
|
PRJ_TARGET \
|
|
PROCESSORS \
|
|
SDIR \
|
|
TARGET \
|
|
TP_XMLADA \
|
|
VERSION \
|
|
prefix
|
|
|
|
override GPROPTS += $(foreach v, \
|
|
PRJ_BUILD PRJ_TARGET TP_XMLADA PROCESSORS TARGET VERSION \
|
|
,"-X$(v)=$($(v))")
|
|
|
|
GPR_DEFAULT = -XLIBRARY_TYPE=$(DEFAULT_LIBRARY_TYPE) \
|
|
-XXMLADA_BUILD=$(DEFAULT_LIBRARY_TYPE)
|
|
|
|
#########
|
|
# build #
|
|
#########
|
|
|
|
build: $(LIBRARY_TYPES:%=build-%) build-tools
|
|
|
|
build-%: tp_xmlada.gpr makefile.setup
|
|
$(GPRBUILD) -p $(GPROPTS) -XLIBRARY_TYPE=$* -XXMLADA_BUILD=$* \
|
|
--subdirs=$(SDIR)/$* -Ptemplates_parser
|
|
|
|
build-tools: build-$(DEFAULT_LIBRARY_TYPE)
|
|
$(GPRBUILD) -p $(GPROPTS) $(GPR_DEFAULT) \
|
|
--subdirs=$(SDIR)/$(DEFAULT_LIBRARY_TYPE) -Ptools/tools
|
|
|
|
run_regtests test: build makefile.setup
|
|
$(MAKE) -C regtests test
|
|
|
|
DOC_FORMATS := html latexpdf
|
|
build-doc: tp_xmlada.gpr makefile.setup
|
|
$(MAKE) -C docs $(DOC_FORMATS)
|
|
echo Templates_Parser Documentation built with success.
|
|
|
|
#########
|
|
# setup #
|
|
#########
|
|
|
|
tp_xmlada.gpr:
|
|
ifeq ($(TP_XMLADA), Installed)
|
|
cp config/tp_xmlada_installed.gpr tp_xmlada.gpr
|
|
else
|
|
cp config/tp_xmlada_dummy.gpr tp_xmlada.gpr
|
|
endif
|
|
|
|
force:
|
|
|
|
makefile.setup: setup
|
|
|
|
setup: tp_xmlada.gpr force
|
|
printf " $(foreach v,$(ALL_OPTIONS),$(v) = $($(v))\n)" > makefile.setup
|
|
|
|
###########
|
|
# install #
|
|
###########
|
|
|
|
uninstall:
|
|
ifneq (,$(wildcard $(TPREFIX)/share/gpr/manifests/templates_parser))
|
|
-$(GPRINSTALL) $(GPROPTS) -f --uninstall \
|
|
--prefix=$(TPREFIX) templates_parser
|
|
endif
|
|
|
|
GPRINST_OPTS=-p -f --prefix=$(TPREFIX) \
|
|
--build-var=LIBRARY_TYPE --build-var=TEMPLATES_PARSER_BUILD
|
|
|
|
install: uninstall $(LIBRARY_TYPES:%=install-%)
|
|
$(GPRINSTALL) $(GPROPTS) $(GPR_DEFAULT) $(GPRINST_OPTS) \
|
|
--mode=usage --subdirs=$(SDIR)/$(DEFAULT_LIBRARY_TYPE) \
|
|
--install-name=templates_parser -Ptools/tools
|
|
|
|
install-%:
|
|
$(GPRINSTALL) $(GPROPTS) -XLIBRARY_TYPE=$* -XXMLADA_BUILD=$*\
|
|
$(GPRINST_OPTS) --subdirs=$(SDIR)/$* --build-name=$* -Ptemplates_parser
|
|
|
|
#########
|
|
# clean #
|
|
#########
|
|
|
|
clean: $(LIBRARY_TYPES:%=clean-%)
|
|
-$(GPRCLEAN) $(GPR_DEFAULT) $(GPROPTS) -Ptools/tools
|
|
$(MAKE) -C docs clean
|
|
$(MAKE) -C regtests clean
|
|
rm -f auto.cgpr config/setup/auto.cgpr
|
|
rm -fr .build makefile.setup
|
|
rm -f config/setup/foo.ali config/setup/foo.o tp_xmlada.gpr
|
|
rm -f config/setup/foo.ads.std*
|
|
|
|
clean-%:
|
|
-$(GPRCLEAN) -XLIBRARY_TYPE=$* -XXMLADA_BUILD=$* $(GPROPTS) \
|
|
-Ptemplates_parser
|