diff options
Diffstat (limited to 'xsd/build/bootstrap.make')
-rw-r--r-- | xsd/build/bootstrap.make | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/xsd/build/bootstrap.make b/xsd/build/bootstrap.make index 7b4fdb9..56c20b3 100644 --- a/xsd/build/bootstrap.make +++ b/xsd/build/bootstrap.make @@ -1,9 +1,8 @@ # file : build/bootstrap.make -# author : Boris Kolpackov <boris@codesynthesis.com> -# copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +# copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC # license : GNU GPL v2 + exceptions; see accompanying LICENSE file -project_name := XSD +project_name := xsd # First try to include the bundled bootstrap.make if it exist. If that # fails, let make search for the external bootstrap.make. @@ -16,10 +15,17 @@ ifeq ($(patsubst %build/bootstrap.make,,$(lastword $(MAKEFILE_LIST))),) include $(build)/bootstrap.make endif +def_goal := $(.DEFAULT_GOAL) + # Configuration # $(call include,$(scf_root)/configuration.make) +# 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 # @@ -29,23 +35,17 @@ $(call include,$(scf_root)/configuration.make) $(out_base)/.dist \ $(out_base)/.dist-win \ $(out_base)/.dist-common \ - $(out_base)/.clean \ - $(out_base)/.cleandoc + $(out_base)/.clean ifdef %interactive% -.PHONY: test install dist dist-win clean cleandoc +.PHONY: test install dist dist-win clean test: $(out_base)/.test install: $(out_base)/.install dist: $(out_base)/.dist dist-win: $(out_base)/.dist-win clean: $(out_base)/.clean -cleandoc: $(out_base)/.cleandoc - -ifneq ($(filter $(.DEFAULT_GOAL),test install dist dist-win clean cleandoc),) -.DEFAULT_GOAL := -endif endif @@ -58,14 +58,28 @@ $(error dist_prefix is not set) endif endif - -# Don't include dependency info for certain targets. +# 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 -ifneq ($(filter $(MAKECMDGOALS),clean cleandoc disfigure),) +endif + +# Don't include dependency info for certain targets. +# +ifneq ($(filter $(MAKECMDGOALS),clean disfigure),) include-dep = endif @@ -84,3 +98,5 @@ include-dep = endif endif + +.DEFAULT_GOAL := $(def_goal) |