From 35e65b0420e1c815a31505d42a5dd514ba778bd3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 9 Mar 2010 17:14:35 +0200 Subject: Establish the build system --- build/bootstrap.make | 86 +++++++++++++++++++++++++++ build/import/libcutl/LICENSE | 21 +++++++ build/import/libcutl/configuration-rules.make | 15 +++++ build/import/libcutl/configure | 55 +++++++++++++++++ build/import/libcutl/stub.make | 30 ++++++++++ 5 files changed, 207 insertions(+) create mode 100644 build/bootstrap.make create mode 100644 build/import/libcutl/LICENSE create mode 100644 build/import/libcutl/configuration-rules.make create mode 100755 build/import/libcutl/configure create mode 100644 build/import/libcutl/stub.make (limited to 'build') diff --git a/build/bootstrap.make b/build/bootstrap.make new file mode 100644 index 0000000..8522153 --- /dev/null +++ b/build/bootstrap.make @@ -0,0 +1,86 @@ +# file : build/bootstrap.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +project_name := odb + +# First try to include the bundled bootstrap.make if it exist. If that +# fails, let make search for the external bootstrap.make. +# +build := build-0.3 + +-include $(dir $(lastword $(MAKEFILE_LIST)))../../$(build)/bootstrap.make + +ifeq ($(patsubst %build/bootstrap.make,,$(lastword $(MAKEFILE_LIST))),) +include $(build)/bootstrap.make +endif + +def_goal := $(.DEFAULT_GOAL) + +# Include C++ configuration. We need to know if we are using the generic +# C++ compiler in which case we need to compensate for missing dependency +# auto-generation (see below). +# +$(call include,$(bld_root)/cxx/configuration.make) + +# Aliases +# +.PHONY: $(out_base)/ \ + $(out_base)/.test \ + $(out_base)/.install \ + $(out_base)/.clean \ + $(out_base)/.cleandoc + +ifdef %interactive% + +.PHONY: test install clean cleandoc + +test: $(out_base)/.test +install: $(out_base)/.install +clean: $(out_base)/.clean +cleandoc: $(out_base)/.cleandoc + +endif + +# If we don't have dependency auto-generation then we need to manually +# make sure that C++ header files are compiled before C++ source files. +# To do this we make the object files ($2) depend in order-only on +# generated files ($3). +# +ifeq ($(cxx_id),generic) + +define include-dep +$(if $2,$(eval $2: | $3)) +endef + +else + +define include-dep +$(call -include,$1) +endef + +endif + + +# Don't include dependency info for certain targets. +# +ifneq ($(filter $(MAKECMDGOALS),clean cleandoc disfigure),) +include-dep = +endif + +# For install, don't include dependecies in examples, and tests. +# +ifneq ($(filter $(MAKECMDGOALS),install),) + +ifneq ($(subst $(src_root)/tests/,,$(src_base)),$(src_base)) +include-dep = +endif + +ifneq ($(subst $(src_root)/examples/,,$(src_base)),$(src_base)) +include-dep = +endif + +endif + +.DEFAULT_GOAL := $(def_goal) diff --git a/build/import/libcutl/LICENSE b/build/import/libcutl/LICENSE new file mode 100644 index 0000000..5306eea --- /dev/null +++ b/build/import/libcutl/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) Code Synthesis Tools CC, 2009. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/build/import/libcutl/configuration-rules.make b/build/import/libcutl/configuration-rules.make new file mode 100644 index 0000000..9f62e17 --- /dev/null +++ b/build/import/libcutl/configuration-rules.make @@ -0,0 +1,15 @@ +# file : build/import/libcutl/configuration-rules.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + +$(dcf_root)/import/libcutl/configuration-dynamic.make: | $(dcf_root)/import/libcutl/. + $(call message,,$(scf_root)/import/libcutl/configure $@) + +ifndef %foreign% + +disfigure:: + $(call message,rm $(dcf_root)/import/libcutl/configuration-dynamic.make,\ +rm -f $(dcf_root)/import/libcutl/configuration-dynamic.make) + +endif diff --git a/build/import/libcutl/configure b/build/import/libcutl/configure new file mode 100755 index 0000000..34903a9 --- /dev/null +++ b/build/import/libcutl/configure @@ -0,0 +1,55 @@ +#! /usr/bin/env bash + +# file : build/import/libcutl/configure +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + + +# $1 - out file +# +# bld_root - build root +# project_name - project name +# + +source $bld_root/dialog.bash + + +$echo +$echo "Configuring external dependency on 'libcutl' for '$project_name'." +$echo + +$echo +$echo "Would you like to configure dependency on the installed " +$echo "version of 'libcutl' as opposed to the development build?" +$echo + +installed=`read_y_n y` + +path= + +if [ "$installed" = "n" ]; then + +$echo +$echo "Please enter the src_root for 'libcutl'." +$echo + +src_root=`read_path --directory --exist` + +$echo +$echo "Please enter the out_root for 'libcutl'." +$echo + +out_root=`read_path --directory $src_root` + +fi + +echo libcutl_installed := $installed >$1 + +if [ "$installed" = "n" ]; then + +echo src_root := $src_root >>$1 +echo scf_root := \$\(src_root\)/build >>$1 +echo out_root := $out_root >>$1 + +fi diff --git a/build/import/libcutl/stub.make b/build/import/libcutl/stub.make new file mode 100644 index 0000000..3267822 --- /dev/null +++ b/build/import/libcutl/stub.make @@ -0,0 +1,30 @@ +# file : build/import/libcutl/stub.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + +$(call include-once,$(scf_root)/import/libcutl/configuration-rules.make,$(dcf_root)) + +libcutl_installed := + +$(call -include,$(dcf_root)/import/libcutl/configuration-dynamic.make) + +ifdef libcutl_installed + +ifeq ($(libcutl_installed),y) + +$(call export,l: -lcutl,cpp-options: ) + +else + +# Include export stub. +# +$(call include,$(scf_root)/export/libcutl/stub.make) + +endif + +else + +.NOTPARALLEL: + +endif -- cgit v1.1