# This file is part of XEmacs. # Copyright (C) 2002, 2003 Ben Wing. # XEmacs is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any # later version. # XEmacs is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # You should have received a copy of the GNU General Public License # along with XEmacs; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. # # This is used by subdirectories that directly contain packages. # Higher-level subdirectories should use meta-iterate.rules instead. # XEMACS_PACKAGES_BASE:= $(shell while [ ! -f XEmacs.rules ]; do \ cd ..; \ done; \ pwd) include ${XEMACS_PACKAGES_BASE}/meta-targets.rules ITERATE:= $(PACKAGES) include ${XEMACS_PACKAGES_BASE}/iterate-1.rules # Master rule to pass down actual building # Use a static pattern because of the extra dependencies $(ALL_TARGETS) : %.target: [ -d $(*D) ] && $(MAKE) $(MFLAGS) -C $(*D) $(*F) .PHONY: $(ALL_TARGETS) # Standard dependencies # $(BYTECOMPILE_TARGETS): %bytecompile.target: %autoloads.target # Optionally put in fake rules for packages that we cannot # recursively build (yet) ifneq ($(strip (ASSUMED_PRESENT)),) ASSUMED_TARGETS = $(foreach package,$(ASSUMED_PRESENT), \ $(package)/autoloads.target \ $(package)/compile.target ) $(ASSUMED_TARGETS): - endif # Generate and load inter-package dependencies DEPENDS_FILE_NAME = pdepends.mk DEPENDS_FILES = $(PACKAGES:=/$(DEPENDS_FILE_NAME)) $(DEPENDS_FILES): %$(DEPENDS_FILE_NAME): %Makefile $(XEMACS_PACKAGES_BASE)/XEmacs.rules $(MAKE) $(MFLAGS) -C $(*D) TARGET_BASE=$(dir $(*D)) \ $(DEPENDS_FILE_NAME) # Compute, based on the target given on the command line, whether we need # to load and recompute the pdepends.mk files (this happens automatically # for any Makefile loaded or executed, if the name of the file appears # as a target) # ifeq ($($(MAKECMDGOALS)_NEED_PDEPENDS),t) include $(DEPENDS_FILES) endif # Local Variables: # mode: Makefile # end: