From 03cc6a2b5c500ea5df2f5051ced24c138c1897bf Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 26 Mar 2010 12:12:01 +0200 Subject: Add build import/export stubs for cli --- build/export/cli/stub.make | 13 ++++++++ build/import/cli/LICENSE | 1 + build/import/cli/cli-cxx.make | 42 +++++++++++++++++++++++ build/import/cli/configuration-rules.make | 15 +++++++++ build/import/cli/configure | 55 +++++++++++++++++++++++++++++++ build/import/cli/stub.make | 30 +++++++++++++++++ 6 files changed, 156 insertions(+) create mode 100644 build/export/cli/stub.make create mode 120000 build/import/cli/LICENSE create mode 100644 build/import/cli/cli-cxx.make create mode 100644 build/import/cli/configuration-rules.make create mode 100755 build/import/cli/configure create mode 100644 build/import/cli/stub.make (limited to 'build') diff --git a/build/export/cli/stub.make b/build/export/cli/stub.make new file mode 100644 index 0000000..281b862 --- /dev/null +++ b/build/export/cli/stub.make @@ -0,0 +1,13 @@ +# file : build/export/cli/stub.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + +$(call include-once,$(src_root)/cli/makefile,$(out_root)) + +# Use the rules file from cli's import directory instead of the +# importing project's one. +# +$(call export,\ + cli: $(out_root)/cli/cli,\ + cli-rules: $(scf_root)/import/cli/cli-cxx.make) diff --git a/build/import/cli/LICENSE b/build/import/cli/LICENSE new file mode 120000 index 0000000..5853aae --- /dev/null +++ b/build/import/cli/LICENSE @@ -0,0 +1 @@ +../../../LICENSE \ No newline at end of file diff --git a/build/import/cli/cli-cxx.make b/build/import/cli/cli-cxx.make new file mode 100644 index 0000000..73ec32c --- /dev/null +++ b/build/import/cli/cli-cxx.make @@ -0,0 +1,42 @@ +# file : build/import/cli/cli-cxx.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + +# Here we are operating in the importing project's space, not in +# cli's. +# + +# Get the C++ file extensions. +# +$(call include,$(bld_root)/cxx/configuration-static.make) + +cli_pattern := \ +$(out_base)/%.$(cxx_s_suffix) \ +$(out_base)/%.$(cxx_h_suffix) \ +$(out_base)/%.$(cxx_i_suffix) \ +$(out_base)/%-fwd.$(cxx_h_suffix) + +.PRECIOUS: $(cli_pattern) + +ifeq ($(out_base),$(src_base)) + +$(cli_pattern): $(src_base)/%.cli + $(call message,cli $<,$(cli) $(cli_options) --output-dir $(dir $@) $<) + +else + +$(cli_pattern): $(src_base)/%.cli | $$(dir $$@). + $(call message,cli $<,$(cli) $(cli_options) --output-dir $(dir $@) $<) + +$(cli_pattern): $(out_base)/%.cli | $$(dir $$@). + $(call message,cli $<,$(cli) $(cli_options) --output-dir $(dir $@) $<) +endif + +.PHONY: $(out_base)/%.cxx.cli.clean + +$(out_base)/%.cxx.cli.clean: + $(call message,rm $$1,rm -f $$1,$(@:.cxx.cli.clean=.$(cxx_s_suffix))) + $(call message,rm $$1,rm -f $$1,$(@:.cxx.cli.clean=.$(cxx_h_suffix))) + $(call message,rm $$1,rm -f $$1,$(@:.cxx.cli.clean=.$(cxx_i_suffix))) + $(call message,rm $$1,rm -f $$1,$(@:.cxx.cli.clean=-fwd.$(cxx_h_suffix))) diff --git a/build/import/cli/configuration-rules.make b/build/import/cli/configuration-rules.make new file mode 100644 index 0000000..aeabd7a --- /dev/null +++ b/build/import/cli/configuration-rules.make @@ -0,0 +1,15 @@ +# file : build/import/cli/configuration-rules.make +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + +$(dcf_root)/import/cli/configuration-dynamic.make: | $(dcf_root)/import/cli/. + $(call message,,$(scf_root)/import/cli/configure $@) + +ifndef %foreign% + +disfigure:: + $(call message,rm $(dcf_root)/import/cli/configuration-dynamic.make,\ +rm -f $(dcf_root)/import/cli/configuration-dynamic.make) + +endif diff --git a/build/import/cli/configure b/build/import/cli/configure new file mode 100755 index 0000000..23f3080 --- /dev/null +++ b/build/import/cli/configure @@ -0,0 +1,55 @@ +#! /usr/bin/env bash + +# file : build/import/cli/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 'CLI' for '$project_name'." +$echo + +$echo +$echo "Would you like to configure dependency on the installed " +$echo "version of 'CLI' 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 'CLI'." +$echo + +src_root=`read_path --directory --exist` + +$echo +$echo "Please enter the out_root for 'CLI'." +$eche + +out_root=`read_path --directory $src_root` + +fi + +echo cli_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/cli/stub.make b/build/import/cli/stub.make new file mode 100644 index 0000000..250a5ee --- /dev/null +++ b/build/import/cli/stub.make @@ -0,0 +1,30 @@ +# file : build/import/cli/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/cli/configuration-rules.make,$(dcf_root)) + +cli_installed := + +$(call -include,$(dcf_root)/import/cli/configuration-dynamic.make) + +ifdef cli_installed + +ifeq ($(cli_installed),y) + +$(call export,cli: cli,cli-rules: $(scf_root)/import/cli/cli-cxx.make) + +else + +# Include export stub. +# +$(call include,$(scf_root)/export/cli/stub.make) + +endif + +else + +.NOTPARALLEL: + +endif -- cgit v1.1