aboutsummaryrefslogtreecommitdiff
path: root/libcommon/makefile
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-09-08 21:23:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-09-08 21:23:37 +0200
commitff5bb2accee87c24ee64e8fdcf5169e674c4b7b4 (patch)
tree321a74c1f48331cb44e3b90943501646c5024836 /libcommon/makefile
parentb3b1fac433a20e5ab6abb3729ecc5473a658718b (diff)
Add suppor for VC++ build
Diffstat (limited to 'libcommon/makefile')
-rw-r--r--libcommon/makefile121
1 files changed, 16 insertions, 105 deletions
diff --git a/libcommon/makefile b/libcommon/makefile
index cdb57bc..8f72324 100644
--- a/libcommon/makefile
+++ b/libcommon/makefile
@@ -1,119 +1,30 @@
# file : libcommon/makefile
# author : Boris Kolpackov <boris@codesynthesis.com>
# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC
-# license : GNU GPL v2; see accompanying LICENSE file
+# license : GNU GPL; see accompanying LICENSE file
include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
-# Options file.
-#
-cli_tun := options.cli
-cxx_tun := common.cxx
+dirs := common
-cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o) $(cli_tun:.cli=.o))
-cxx_od := $(cxx_obj:.o=.o.d)
+default := $(out_base)/
+dist := $(out_base)/.dist
+clean := $(out_base)/.clean
-common.l := $(out_base)/common.l
-common.l.cpp-options := $(out_base)/common.l.cpp-options
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(dirs)))
-default := $(out_base)/
-dist := $(out_base)/.dist
-clean := $(out_base)/.clean
-
-# Import.
-#
-$(call import,\
- $(scf_root)/import/cli/stub.make,\
- cli: cli,cli-rules: cli_rules)
-
-$(call import,\
- $(scf_root)/import/libodb/stub.make,\
- l: odb.l,cpp-options: odb.l.cpp-options)
-
-ifdef db_id
-$(call import,\
- $(scf_root)/import/libodb-$(db_id)/stub.make,\
- l: odb_db.l,cpp-options: odb_db.l.cpp-options)
-endif
-
-ifeq ($(odb_db.l.cpp-options),)
-odb_db.l.cpp-options := $(out_base)/.unbuildable
-endif
-
-# Build.
-#
-$(common.l): $(cxx_obj) $(odb.l) $(odb_db.l)
-
-$(cxx_obj) $(cxx_od): $(common.l.cpp-options) $(out_base)/config.h
-$(common.l.cpp-options): value := -I$(out_base) -I$(src_base)
-$(common.l.cpp-options): $(odb_db.l.cpp-options) $(odb.l.cpp-options)
-
-genf := $(cli_tun:.cli=.hxx) $(cli_tun:.cli=.ixx) $(cli_tun:.cli=.cxx)
-gen := $(addprefix $(out_base)/,$(genf))
-
-$(gen): $(cli)
-$(gen): cli := $(cli)
-$(gen): cli_options += \
---generate-specifier \
---generate-file-scanner \
---guard-prefix LIBCOMMON
-
-$(call include-dep,$(cxx_od),$(cxx_obj),$(gen))
-
-$(out_base)/config.h: $(dcf_root)/configuration-dynamic.make
- @echo '// file : libcommon/config.h' >$@
- @echo '// author : automatically generated' >>$@
- @echo '' >>$@
- @echo '#ifndef LIBCOMMON_CONFIG_H' >>$@
- @echo '#define LIBCOMMON_CONFIG_H' >>$@
- @echo '' >>$@
-ifeq ($(db_id),mysql)
- @echo '#define DB_ID_MYSQL 1' >>$@
-endif
- @echo '' >>$@
- @echo '#endif // LIBCOMMON_CONFIG_H' >>$@
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(common.l)
-
-# Dist.
-#
-$(dist): export sources := $(cxx_tun) $(cli_tun:.cli=.cxx)
-$(dist): export headers = $(subst $(src_base)/,,$(shell find $(src_base) \
--name '*.hxx' -o -name '*.ixx' -o -name '*.txx'))
-$(dist): data_dist := $(cli_tun)
-$(dist): export extra_dist := $(data_dist)
-
-$(dist): $(gen)
- $(call dist-data,$(sources) $(headers) $(data_dist) config.h.in)
+$(dist): export dirs := $(dirs)
+$(dist): export extra_dist := $(call vc9slns,libcommon) \
+$(call vc10slns,libcommon)
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(dirs)))
$(call meta-automake)
+ $(call meta-vc9slns,libcommon)
+ $(call meta-vc10slns,libcommon)
-# Clean.
-#
-$(clean): $(common.l).o.clean \
- $(common.l.cpp-options).clean \
- $(addsuffix .cxx.clean,$(cxx_obj)) \
- $(addsuffix .cxx.clean,$(cxx_od))
- $(call message,rm $$1,rm -f $$1,$(out_base)/config.h)
-
-# Generated .gitignore.
-#
-ifeq ($(out_base),$(src_base))
-$(common.l): | $(out_base)/.gitignore
-
-$(out_base)/.gitignore: files := config.h
-$(clean): $(out_base)/.gitignore.clean
-
-$(call include,$(bld_root)/git/gitignore.make)
-endif
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(dirs)))
-# How to.
-#
-$(call include,$(bld_root)/dist.make)
+$(call include,$(bld_root)/meta/vc9sln.make)
+$(call include,$(bld_root)/meta/vc10sln.make)
$(call include,$(bld_root)/meta/automake.make)
-$(call include,$(cli_rules))
-$(call include,$(bld_root)/cxx/cxx-d.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/o-l.make)
+$(foreach d,$(dirs),$(call import,$(src_base)/$d/makefile))