# file : build/bootstrap.make # author : Boris Kolpackov # copyright : Copyright (c) 2009 Code Synthesis Tools CC # license : MIT; see accompanying LICENSE file project_name := CLI # 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 def_goal := $(.DEFAULT_GOAL) # 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 # ifdef %interactive% .PHONY: test $(out_base)/.test \ install $(out_base)/.install \ dist $(out_base)/.dist \ clean $(out_base)/.clean test: $(out_base)/.test install: $(out_base)/.install dist: $(out_base)/.dist clean: $(out_base)/.clean 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 CLI files are compiled before C++ file. 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),) include-dep = endif .DEFAULT_GOAL := $(def_goal)