X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=stepmake%2Fstepmake%2Fgeneric-vars.make;h=6a8729df5f670e847b0307cf3b1fc7b65bc80d49;hb=d65a3a9777a9e96029f6aa408d86d13a88f6619d;hp=8ee0efd874c063bcd8d7a13429c436b150d653e6;hpb=d4ccda2bdfd21f3694d8a37d4088f8fe9acd6de8;p=lilypond.git diff --git a/stepmake/stepmake/generic-vars.make b/stepmake/stepmake/generic-vars.make index 8ee0efd874..6a8729df5f 100644 --- a/stepmake/stepmake/generic-vars.make +++ b/stepmake/stepmake/generic-vars.make @@ -1,75 +1,76 @@ -# directory names: +top-build-dir = $(shell cd $(depth) && pwd) +build-dir = $(shell cd . && pwd) +tree-dir = $(subst $(top-build-dir),,$(build-dir)) + +absdir = $(shell cd $(1) ; pwd) -# depth from group-dir -# internal, not normally used -DEPTH = $(depth)/$(package-depth) -ifeq ($(topdir),) -topdir := $(shell cd $(depth); pwd) +ifneq ($(configure-srcdir),.) +srcdir-build = 1 endif -pwd := $(shell pwd) -# $(depth) is deprecated, for most cases you'll want $(src-depth) -# -# Well, on second thought. -# It can do no harm, but using src-depth iso depth is only necessary -# for broken rules that do -# cd $(outdir) && foo $(depth) ... -src-depth = $(depth)/$(srcdir) +ifndef srcdir-build +src-depth = $(depth) +else +src-depth = $(configure-srcdir) +endif + +top-src-dir := $(shell cd $(src-depth); pwd) + +ifndef srcdir-build +src-dir = . +else +src-dir = $(top-src-dir)$(tree-dir) +VPATH = $(src-dir) +endif + +abs-src-dir = $(top-src-dir)$(tree-dir) + +.UNEXPORT: build-dir src-dir tree-dir + +src-wildcard = $(subst $(src-dir)/,,$(wildcard $(src-dir)/$(1))) -# derived names ifeq ($(distdir),) - distdir = $(topdir)/$(outdir)/$(DIST_NAME) + distdir = $(top-build-dir)/$(outdir)/$(DIST_NAME) DIST_NAME = $(package)-$(TOPLEVEL_VERSION) endif distname = $(package)-$(TOPLEVEL_VERSION) -# obsolete? -#makeout = $(depth)/make/$(outdir) -#docout = $(depth)/Documentation/$(outdir) -#binout = $(depth)/bin/$(outdir) - doc-dir = $(src-depth)/Documentation po-dir = $(src-depth)/po - -# sort-out which of these are still needed -# -$(package)_bindir = $(depth)/bin step-bindir = $(stepmake)/bin -group-dir = $(shell cd $(DEPTH)/..; pwd) -release-dir = $(group-dir)/releases +# stepmake package support. +DEPTH = $(depth)/$(package-depth) + +INSTALLPY=$(PYTHON) $(step-bindir)/install.py -c +INSTALL=$(INSTALLPY) + +group-dir = $(shell cd $(DEPTH);pwd)/.. patch-dir = $(group-dir)/patches -# -# i have in $HOME/.rpmrc -# topdir: /home/fred/usr/src/Redhat -# rpm-sources = $(release-dir) rpm-build = $(group-dir)/RedHat/BUILD -# - -# package-icon=$(outdir)/$(package)-icon.gif -package-icon=$(outdir)/$(package)-icon.xpm - +package-icon = $(outdir)/$(package)-icon.xpm -# need to be defined in local Makefiles: -# -FOOBAR = -# the version: -# -ifneq ($(MY_PATCH_LEVEL),$(FOOBAR)) +ifneq ($(strip $(MY_PATCH_LEVEL)),) VERSION=$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL).$(MY_PATCH_LEVEL) else VERSION=$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL) endif -ifneq ($(TOPLEVEL_MY_PATCH_LEVEL),$(FOOBAR)) +ifneq ($(strip $(TOPLEVEL_MY_PATCH_LEVEL)),) TOPLEVEL_VERSION=$(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL).$(TOPLEVEL_MY_PATCH_LEVEL) else TOPLEVEL_VERSION=$(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL) endif +# no locale settings in the build process. +LANG= +export LANG + + +INFO_DIRECTORIES = Documentation # clean file lists: # @@ -77,64 +78,46 @@ ERROR_LOG = 2> /dev/null SILENT_LOG = 2>&1 > /dev/null date := $(shell date +%x) #duplicated? -# compile and link options: -# -ARFLAGS = ru - -#INCLUDES = $(depth)/$(builddir) include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES) -INCLUDES = include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES) +INCLUDES = $(src-dir)/include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES) -# urg: for windows ? -# LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES) -lstdc++ -# - -# macro compiler: -# M4 = m4 -# -# -LD_COMMAND = $(LD) $(LDFLAGS) -o $@ -# - -# dependencies: -# -depfile = $(outdir)/$(subst .o,.dep,$(notdir $@))# -DODEP=rm -f $(depfile); DEPENDENCIES_OUTPUT="$(depfile) $(outdir)/$(notdir $@)" -# - -# - -#replace to do stripping of certain objects -STRIPDEBUG=true - -DIST_FILES=$(EXTRA_DIST_FILES) GNUmakefile $(ALL_SOURCES) +DIST_FILES=$(EXTRA_DIST_FILES) GNUmakefile $(ALL_SOURCES) $(call src-wildcard,SConscript) DOCDIR=$(depth)/$(outdir) - +#? +STRIPDEBUG=true STRIP=strip --strip-debug -ifdef stablecc - STABLEOBS=$(addprefix $(outdir)/,$(stablecc:.cc=.o)) -endif - -# substitute $(STRIP) in Site.make if you want stripping DO_STRIP=true -LOOP=$(foreach i, $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C $(i) $@ &&) true -# different redhat releases need different flags for etags. Just use defaults. -ETAGS_FLAGS= # -CT -CTAGS_FLAGS=-h +LOOP=+$(foreach i, $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C $(i) $@ &&) true -makeflags=$(patsubst %==, %, $(patsubst ---%,,$(patsubst ----%,,$(MAKEFLAGS:%=--%)))) +ETAGS_FLAGS = +CTAGS_FLAGS = -DEP_FILES := $(wildcard $(outdir)/*.dep) +makeflags=$(patsubst %==, %, $(patsubst ---%,,$(patsubst ----%,,$(MAKEFLAGS:%=--%)))) -IN_FILES := $(wildcard *.in) +IN_FILES := $(call src-wildcard,*.in) SOURCE_FILES += $(IN_FILES) # Preprocessed .in documentation _FILES: OUTIN_FILES = $(addprefix $(outdir)/, $(IN_FILES:%.in=%)) +# CSS source files are in a unique directory +CSS_DIRECTORY = $(top-src-dir)/Documentation/css +CSS_FILES := $(shell ls $(CSS_DIRECTORY)/*.css) +OUT_CSS_FILES = $(CSS_FILES:$(CSS_DIRECTORY)/%.css=$(outdir)/%.css) + ALL_SOURCES = $(SOURCE_FILES) +ifeq (cygwin,$(findstring cygwin,$(HOST_ARCH))) +CYGWIN_BUILD = yes +endif + +ifeq (mingw,$(findstring mingw,$(HOST_ARCH))) +MINGW_BUILD = yes +endif +ifeq (darwin,$(findstring darwin,$(HOST_ARCH))) +DARWIN_BUILD = yes +endif