From cb249b85903c7e505a44c24ae47346e98f3485b9 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 17 Mar 2011 15:15:36 +0200 Subject: Development build system setup --- build/bootstrap.make | 72 +++++++++++++++++++++++++ build/export/libodb-qt/stub.make | 10 ++++ build/import/libodb-qt/LICENSE | 1 + build/import/libodb-qt/configuration-rules.make | 15 ++++++ build/import/libodb-qt/configure | 55 +++++++++++++++++++ build/import/libodb-qt/stub.make | 30 +++++++++++ build/import/libodb/LICENSE | 12 +++++ build/import/libodb/configuration-rules.make | 15 ++++++ build/import/libodb/configure | 55 +++++++++++++++++++ build/import/libodb/stub.make | 30 +++++++++++ 10 files changed, 295 insertions(+) create mode 100644 build/bootstrap.make create mode 100644 build/export/libodb-qt/stub.make create mode 120000 build/import/libodb-qt/LICENSE create mode 100644 build/import/libodb-qt/configuration-rules.make create mode 100755 build/import/libodb-qt/configure create mode 100644 build/import/libodb-qt/stub.make create mode 100644 build/import/libodb/LICENSE create mode 100644 build/import/libodb/configuration-rules.make create mode 100755 build/import/libodb/configure create mode 100644 build/import/libodb/stub.make (limited to 'build') diff --git a/build/bootstrap.make b/build/bootstrap.make new file mode 100644 index 0000000..a6976c6 --- /dev/null +++ b/build/bootstrap.make @@ -0,0 +1,72 @@ +# file : build/bootstrap.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +project_name := libodb-qt + +# 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 + + +# Aliases +# +.PHONY: $(out_base)/ \ + $(out_base)/.test \ + $(out_base)/.dist \ + $(out_base)/.clean + +ifdef %interactive% + +.PHONY: test dist clean + +test: $(out_base)/.test +dist: $(out_base)/.dist +clean: $(out_base)/.clean + +ifneq ($(filter $(.DEFAULT_GOAL),test dist clean),) +.DEFAULT_GOAL := +endif + +endif + +# Make sure the distribution prefix is set if the goal is dist. +# +ifneq ($(filter $(MAKECMDGOALS),dist),) +ifeq ($(dist_prefix),) +$(error dist_prefix is not set) +endif +endif + +# If we don't have dependency auto-generation then we need to manually +# make sure that generated files are generated before C++ file are +# compiler. 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 disfigure dist),) +include-dep = +endif diff --git a/build/export/libodb-qt/stub.make b/build/export/libodb-qt/stub.make new file mode 100644 index 0000000..6ec954e --- /dev/null +++ b/build/export/libodb-qt/stub.make @@ -0,0 +1,10 @@ +# file : build/export/libodb-qt/stub.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +$(call include-once,$(src_root)/odb/qt/makefile,$(out_root)) + +$(call export,\ + l: $(out_root)/odb/qt/odb-qt.l,\ + cpp-options: $(out_root)/odb/qt/odb-qt.l.cpp-options) diff --git a/build/import/libodb-qt/LICENSE b/build/import/libodb-qt/LICENSE new file mode 120000 index 0000000..5853aae --- /dev/null +++ b/build/import/libodb-qt/LICENSE @@ -0,0 +1 @@ +../../../LICENSE \ No newline at end of file diff --git a/build/import/libodb-qt/configuration-rules.make b/build/import/libodb-qt/configuration-rules.make new file mode 100644 index 0000000..1116405 --- /dev/null +++ b/build/import/libodb-qt/configuration-rules.make @@ -0,0 +1,15 @@ +# file : build/import/libodb-qt/configuration-rules.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +$(dcf_root)/import/libodb-qt/configuration-dynamic.make: | $(dcf_root)/import/libodb-qt/. + $(call message,,$(scf_root)/import/libodb-qt/configure $@) + +ifndef %foreign% + +$(dcf_root)/.disfigure:: + $(call message,rm $(dcf_root)/import/libodb-qt/configuration-dynamic.make,\ +rm -f $(dcf_root)/import/libodb-qt/configuration-dynamic.make) + +endif diff --git a/build/import/libodb-qt/configure b/build/import/libodb-qt/configure new file mode 100755 index 0000000..16d09fc --- /dev/null +++ b/build/import/libodb-qt/configure @@ -0,0 +1,55 @@ +#! /usr/bin/env bash + +# file : build/import/libodb-qt/configure +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; 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 'libodb-qt' for '$project_name'." +$echo + +$echo +$echo "Would you like to configure dependency on the installed version" +$echo "of 'libodb-qt' 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 'libodb-qt'." +$echo + +src_root=`read_path --directory --exist` + +$echo +$echo "Please enter the out_root for 'libodb-qt'." +$echo + +out_root=`read_path --directory $src_root` + +fi + +echo libodb_qt_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/libodb-qt/stub.make b/build/import/libodb-qt/stub.make new file mode 100644 index 0000000..fe6060d --- /dev/null +++ b/build/import/libodb-qt/stub.make @@ -0,0 +1,30 @@ +# file : build/import/libodb-qt/stub.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +$(call include-once,$(scf_root)/import/libodb-qt/configuration-rules.make,$(dcf_root)) + +libodb_qt_installed := + +$(call -include,$(dcf_root)/import/libodb-qt/configuration-dynamic.make) + +ifdef libodb_qt_installed + +ifeq ($(libodb_qt_installed),y) + +$(call export,l: -lodb-qt -lodb,cpp-options: ) + +else + +# Include export stub. +# +$(call include,$(scf_root)/export/libodb-qt/stub.make) + +endif + +else + +.NOTPARALLEL: + +endif diff --git a/build/import/libodb/LICENSE b/build/import/libodb/LICENSE new file mode 100644 index 0000000..ed9c55c --- /dev/null +++ b/build/import/libodb/LICENSE @@ -0,0 +1,12 @@ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License version 2 as +published by the Free Software Foundation. + +This program 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 details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/build/import/libodb/configuration-rules.make b/build/import/libodb/configuration-rules.make new file mode 100644 index 0000000..9263bb0 --- /dev/null +++ b/build/import/libodb/configuration-rules.make @@ -0,0 +1,15 @@ +# file : build/import/libodb/configuration-rules.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +$(dcf_root)/import/libodb/configuration-dynamic.make: | $(dcf_root)/import/libodb/. + $(call message,,$(scf_root)/import/libodb/configure $@) + +ifndef %foreign% + +$(dcf_root)/.disfigure:: + $(call message,rm $(dcf_root)/import/libodb/configuration-dynamic.make,\ +rm -f $(dcf_root)/import/libodb/configuration-dynamic.make) + +endif diff --git a/build/import/libodb/configure b/build/import/libodb/configure new file mode 100755 index 0000000..90e21d4 --- /dev/null +++ b/build/import/libodb/configure @@ -0,0 +1,55 @@ +#! /usr/bin/env bash + +# file : build/import/libodb/configure +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; 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 'libodb' for '$project_name'." +$echo + +$echo +$echo "Would you like to configure dependency on the installed " +$echo "version of 'libodb' 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 'libodb'." +$echo + +src_root=`read_path --directory --exist` + +$echo +$echo "Please enter the out_root for 'libodb'." +$echo + +out_root=`read_path --directory $src_root` + +fi + +echo libodb_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/libodb/stub.make b/build/import/libodb/stub.make new file mode 100644 index 0000000..97bb5ff --- /dev/null +++ b/build/import/libodb/stub.make @@ -0,0 +1,30 @@ +# file : build/import/libodb/stub.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +$(call include-once,$(scf_root)/import/libodb/configuration-rules.make,$(dcf_root)) + +libodb_installed := + +$(call -include,$(dcf_root)/import/libodb/configuration-dynamic.make) + +ifdef libodb_installed + +ifeq ($(libodb_installed),y) + +$(call export,l: -lodb,cpp-options: ) + +else + +# Include export stub. +# +$(call include,$(scf_root)/export/libodb/stub.make) + +endif + +else + +.NOTPARALLEL: + +endif -- cgit v1.1