-# 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),)
-#abs-srcdir := $(shell cd $(depth); pwd)
-##deprecated
-#topdir := $(abs-srcdir)
-#endif
-pwd := $(shell pwd)
+ifneq ($(configure-srcdir),.)
+srcdir-build = 1
+endif
-ifeq ($(srcdir),.)
+ifndef srcdir-build
src-depth = $(depth)
else
-src-depth = $(srcdir)
+src-depth = $(configure-srcdir)
endif
-ifeq ($(topdir),)
-abs-srcdir := $(shell cd $(src-depth); pwd)
-topdir := $(abs-srcdir)
+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
-# derived names
+.UNEXPORT: build-dir src-dir tree-dir
+
+src-wildcard = $(subst $(src-dir)/,,$(wildcard $(src-dir)/$(1)))
+
ifeq ($(distdir),)
- distdir = $(topdir)/$(outdir)/$(DIST_NAME)
+ distdir = $(top-src-dir)/$(outdir)/$(DIST_NAME)
DIST_NAME = $(package)-$(TOPLEVEL_VERSION)
endif
distname = $(package)-$(TOPLEVEL_VERSION)
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)
+# stepmake package support.
+DEPTH = $(depth)/$(package-depth)
+
+INSTALLPY=$(PYTHON) $(step-bindir)/install.py -c
+INSTALL=$(INSTALLPY)
+
+group-dir = $(shell cd $(DEPTH);pwd)/..
release-dir = $(group-dir)/releases
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 local settings in the build process.
+LANG=
+export LANG
# clean file lists:
#
SILENT_LOG = 2>&1 > /dev/null
date := $(shell date +%x) #duplicated?
-INCLUDES = include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES)
+INCLUDES = $(src-dir)/include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES)
M4 = m4
-#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
-
-# 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:
ALL_SOURCES = $(SOURCE_FILES)
-HOST_ARCH=$(shell $(CC) -dumpmachine)
-ifeq ($(HOST_ARCH),i686-pc-cygwin)
+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