From f00465eecdcf50965e8ca455527a49759bfcddbd Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 26 Aug 2010 14:39:08 +0200 Subject: Add meta-build subsystem Meta-build is used to create (or, more precisely, maintain) other build systems. The idea is to create templates for other build systems (automake, VC++ projects) which are then processed by meta-build to fill in the details such as files to compile, etc. The template system is built on top of GNU m4. Currently supported build systems are autoconf, automake, VC++ 9, and VC++ 10. --- build/meta/vc9proj.m4 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 build/meta/vc9proj.m4 (limited to 'build/meta/vc9proj.m4') diff --git a/build/meta/vc9proj.m4 b/build/meta/vc9proj.m4 new file mode 100644 index 0000000..a79355a --- /dev/null +++ b/build/meta/vc9proj.m4 @@ -0,0 +1,77 @@ +m4_divert(-1) +# file : build/meta/vc9proj.m4 +# author : Boris Kolpackov +# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +m4_include(__meta_base__`/common.m4') + +m4_define(`__path_impl__', `m4_translit(__env_impl__(`$1'),`/',`\')') +m4_define(`__path__', `m4_equote()__path_impl__(`$1')`'m4_dquote()') + +m4_define(`__file_impl__', `__env_impl__(`$1')') +m4_define(`__file__', `m4_equote()__file_impl__(`$1')`'m4_dquote()') + +# file +# +m4_define(`__file_entry_impl__',` + + ') + +m4_define(`__file_entry__', +`m4_equote()__file_entry_impl__(`$1')`'m4_equote()') + + +m4_define(`__file_entries_impl__', +`m4_foreach_w(`__f', __path_impl__(`$1'), `__file_entry_impl__(__f)')') + +m4_define(`__file_entries__', +`m4_equote()__file_entries_impl__(`$1')`'m4_equote()') + +# source +# + +# $1 - configuration +# $2 - directory +# +m4_define(`__source_config_entry_impl__',` + + + ') + +m4_define(`__source_config_impl__', +`m4_ifelse(`$1', `$2', `', +`m4_foreach(`__c', +`__value_impl__(`configurations')', +`__source_config_entry_impl__(__c, `$1')')')') + +m4_define(`__source_entry_impl__',` + m4_dnl +__source_config_impl__(m4_patsubst(`$1', `^\(.*\)\\\(.*\)$', `\1'), `$1') + ') + +m4_define(`__source_entry__', +`m4_equote()__source_entry_impl__(`$1')`'m4_equote()') + +m4_define(`__source_entries_impl__', +`m4_foreach_w(`__f', __path_impl__(`$1'), `__source_entry_impl__(__f)')') + +m4_define(`__source_entries__', +`m4_equote()__source_entries_impl__(`$1')`'m4_equote()') + +# Disable quoting. +# +m4_changequote(`') + +# + +m4_divert(0)m4_dnl -- cgit v1.1