From 2072ea2ef54b92775efc83c82d9a4b7a8ac4d616 Mon Sep 17 00:00:00 2001 From: Bryan Jurish Date: Fri, 28 Nov 2008 21:02:02 +0000 Subject: + new macro-free Makefile for pd-extended; old (elegant) Makefile moved to makefile.gnu svn path=/trunk/externals/moocow/; revision=10402 --- extended/Makefile | 262 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 225 insertions(+), 37 deletions(-) (limited to 'extended/Makefile') diff --git a/extended/Makefile b/extended/Makefile index 3fc3dd8..42de420 100644 --- a/extended/Makefile +++ b/extended/Makefile @@ -43,53 +43,241 @@ pd_src ?= $(CURDIR)/../../../pd all: build.stamp ##====================================================================== -## Templates: subdir +## Rules: subdirectory: dummy -## RULES = $(call subdir_template,$(dir_basename),$(dir_path),$(configure_args)) -define subdir_template -$(1).autogen_stamp: - (cd $(2); sh ./autogen.sh) || true - touch $$@ +DUMMY_DIR ?=../dummy +DUMMY_CONFIGURE_ARGS ?=--disable-shared +dummy.autogen_stamp: + (cd $(DUMMY_DIR); sh ./autogen.sh) || true + touch $@ + +dummy.configure_stamp: dummy.autogen_stamp + (cd $(DUMMY_DIR); sh ./configure $(CONFIGURE_ARGS) $(DUMMY_CONFIGURE_ARGS); make clean) || true + touch $@ + +dummy.build_stamp: dummy.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(DUMMY_DIR) all install || true + touch $@ + +dummy.extclean: + rm -f dummy.autogen_stamp dummy.configure_stamp dummy.build_stamp + +dummy.clean: dummy.extclean + $(MAKE) -C $(DUMMY_DIR) clean || true + +dummy.distclean: dummy.extclean + $(MAKE) -C $(DUMMY_DIR) distclean || true + +dummy.cvsclean: dummy.extclean + $(MAKE) -C $(DUMMY_DIR) cvsclean || true + +##====================================================================== +## Rules: subdirectory: flite + +FLITE_DIR ?=../flite +#FLITE_CONFIGURE_ARGS ?=--with-flite-dir=/NOPE +#FLITE_CONFIGURE_ARGS ?= + +flite.autogen_stamp: + (cd $(FLITE_DIR); sh ./autogen.sh) || true + touch $@ + +flite.configure_stamp: flite.autogen_stamp + (cd $(FLITE_DIR); sh ./configure $(CONFIGURE_ARGS) $(FLITE_CONFIGURE_ARGS); make clean) || true + touch $@ + +flite.build_stamp: flite.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(FLITE_DIR) all install || true + touch $@ + +flite.extclean: + rm -f flite.autogen_stamp flite.configure_stamp flite.build_stamp + +flite.clean: flite.extclean + $(MAKE) -C $(FLITE_DIR) clean || true + +flite.distclean: flite.extclean + $(MAKE) -C $(FLITE_DIR) distclean || true + +flite.cvsclean: flite.extclean + $(MAKE) -C $(FLITE_DIR) cvsclean || true + +##====================================================================== +## Rules: subdirectory: gfsm + +GFSM_DIR ?=../gfsm +#GFSM_CONFIGURE_ARGS ?=--disable-gfsm +#GFSM_CONFIGURE_ARGS ?= + +gfsm.autogen_stamp: + (cd $(GFSM_DIR); sh ./autogen.sh) || true + touch $@ + +gfsm.configure_stamp: gfsm.autogen_stamp + (cd $(GFSM_DIR); sh ./configure $(CONFIGURE_ARGS) $(GFSM_CONFIGURE_ARGS); make clean) || true + touch $@ + +gfsm.build_stamp: gfsm.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(GFSM_DIR) all install || true + touch $@ + +gfsm.extclean: + rm -f gfsm.autogen_stamp gfsm.configure_stamp gfsm.build_stamp + +gfsm.clean: gfsm.extclean + $(MAKE) -C $(GFSM_DIR) clean || true + +gfsm.distclean: gfsm.extclean + $(MAKE) -C $(GFSM_DIR) distclean || true + +gfsm.cvsclean: gfsm.extclean + $(MAKE) -C $(GFSM_DIR) cvsclean || true + +##====================================================================== +## Rules: subdirectory: deque + +DEQUE_DIR ?=../deque +DEQUE_CONFIGURE_ARGS ?= +deque.autogen_stamp: + (cd $(DEQUE_DIR); sh ./autogen.sh) || true + touch $@ + +deque.configure_stamp: deque.autogen_stamp + (cd $(DEQUE_DIR); sh ./configure $(CONFIGURE_ARGS) $(DEQUE_CONFIGURE_ARGS); make clean) || true + touch $@ + +deque.build_stamp: deque.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(DEQUE_DIR) all install || true + touch $@ -$(1).configure_stamp: $(1).autogen_stamp - (cd $(2); sh ./configure $(CONFIGURE_ARGS) $(3); make clean) || true - touch $$@ +deque.extclean: + rm -f deque.autogen_stamp deque.configure_stamp deque.build_stamp -$(1).build_stamp: $(1).configure_stamp - $(MAKE) $(MOOCOW_MFLAGS) -C $(2) all install || true - touch $$@ +deque.clean: deque.extclean + $(MAKE) -C $(DEQUE_DIR) clean || true -$(1).extclean: - rm -f $(1).autogen_stamp $(1).configure_stamp $(1).build_stamp +deque.distclean: deque.extclean + $(MAKE) -C $(DEQUE_DIR) distclean || true -$(1).clean: $(1).extclean - $(MAKE) -C $(2) clean || true +deque.cvsclean: deque.extclean + $(MAKE) -C $(DEQUE_DIR) cvsclean || true -$(1).distclean: $(1).extclean - $(MAKE) -C $(2) distclean || true +##====================================================================== +## Rules: subdirectory: pdstring + +PDSTRING_DIR ?=../pdstring +PDSTRING_CONFIGURE_ARGS ?=--enable-object-externals +pdstring.autogen_stamp: + (cd $(PDSTRING_DIR); sh ./autogen.sh) || true + touch $@ + +pdstring.configure_stamp: pdstring.autogen_stamp + (cd $(PDSTRING_DIR); sh ./configure $(CONFIGURE_ARGS) $(PDSTRING_CONFIGURE_ARGS); make clean) || true + touch $@ + +pdstring.build_stamp: pdstring.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(PDSTRING_DIR) all install || true + touch $@ + +pdstring.extclean: + rm -f pdstring.autogen_stamp pdstring.configure_stamp pdstring.build_stamp + +pdstring.clean: pdstring.extclean + $(MAKE) -C $(PDSTRING_DIR) clean || true + +pdstring.distclean: pdstring.extclean + $(MAKE) -C $(PDSTRING_DIR) distclean || true + +pdstring.cvsclean: pdstring.extclean + $(MAKE) -C $(PDSTRING_DIR) cvsclean || true -$(1).cvsclean: $(1).extclean - $(MAKE) -C $(2) cvsclean || true +##====================================================================== +## Rules: subdirectory: readdir + +READDIR_DIR ?=../readdir +READDIR_CONFIGURE_ARGS ?= +readdir.autogen_stamp: + (cd $(READDIR_DIR); sh ./autogen.sh) || true + touch $@ -endef +readdir.configure_stamp: readdir.autogen_stamp + (cd $(READDIR_DIR); sh ./configure $(CONFIGURE_ARGS) $(READDIR_CONFIGURE_ARGS); make clean) || true + touch $@ + +readdir.build_stamp: readdir.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(READDIR_DIR) all install || true + touch $@ + +readdir.extclean: + rm -f readdir.autogen_stamp readdir.configure_stamp readdir.build_stamp + +readdir.clean: readdir.extclean + $(MAKE) -C $(READDIR_DIR) clean || true + +readdir.distclean: readdir.extclean + $(MAKE) -C $(READDIR_DIR) distclean || true + +readdir.cvsclean: readdir.extclean + $(MAKE) -C $(READDIR_DIR) cvsclean || true ##====================================================================== -## Rules: subdirectories - -##-- flite, gfsm: simulate failed builds -#$(eval $(call subdir_template,flite,../flite,--with-flite-dir=/NOPE)) -#$(eval $(call subdir_template,gfsm,../gfsm,--disable-gfsm)) - -##-- flite, gfsm: build 'em if you got 'em -$(eval $(call subdir_template,flite,../flite,)) -$(eval $(call subdir_template,gfsm,../gfsm,)) - -##-- the usual suspects -$(eval $(call subdir_template,deque,../deque,)) -$(eval $(call subdir_template,pdstring,../pdstring,--enable-object-externals)) -$(eval $(call subdir_template,readdir,../readdir,)) -$(eval $(call subdir_template,sprinkler,../../sprinkler,)) -$(eval $(call subdir_template,weightmap,../weightmap,)) +## Rules: subdirectory: sprinkler +## + one directory higher in the tree than usual... + +SPRINKLER_DIR ?=../../sprinkler +SPRINKLER_CONFIGURE_ARGS ?= +sprinkler.autogen_stamp: + (cd $(SPRINKLER_DIR); sh ./autogen.sh) || true + touch $@ + +sprinkler.configure_stamp: sprinkler.autogen_stamp + (cd $(SPRINKLER_DIR); sh ./configure $(CONFIGURE_ARGS) $(SPRINKLER_CONFIGURE_ARGS); make clean) || true + touch $@ + +sprinkler.build_stamp: sprinkler.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(SPRINKLER_DIR) all install || true + touch $@ + +sprinkler.extclean: + rm -f sprinkler.autogen_stamp sprinkler.configure_stamp sprinkler.build_stamp + +sprinkler.clean: sprinkler.extclean + $(MAKE) -C $(SPRINKLER_DIR) clean || true + +sprinkler.distclean: sprinkler.extclean + $(MAKE) -C $(SPRINKLER_DIR) distclean || true + +sprinkler.cvsclean: sprinkler.extclean + $(MAKE) -C $(SPRINKLER_DIR) cvsclean || true + +##====================================================================== +## Rules: subdirectory: weightmap + +WEIGHTMAP_DIR ?=../weightmap +WEIGHTMAP_CONFIGURE_ARGS ?= +weightmap.autogen_stamp: + (cd $(WEIGHTMAP_DIR); sh ./autogen.sh) || true + touch $@ + +weightmap.configure_stamp: weightmap.autogen_stamp + (cd $(WEIGHTMAP_DIR); sh ./configure $(CONFIGURE_ARGS) $(WEIGHTMAP_CONFIGURE_ARGS); make clean) || true + touch $@ + +weightmap.build_stamp: weightmap.configure_stamp + $(MAKE) $(MOOCOW_MFLAGS) -C $(WEIGHTMAP_DIR) all install || true + touch $@ + +weightmap.extclean: + rm -f weightmap.autogen_stamp weightmap.configure_stamp weightmap.build_stamp + +weightmap.clean: weightmap.extclean + $(MAKE) -C $(WEIGHTMAP_DIR) clean || true + +weightmap.distclean: weightmap.extclean + $(MAKE) -C $(WEIGHTMAP_DIR) distclean || true + +weightmap.cvsclean: weightmap.extclean + $(MAKE) -C $(WEIGHTMAP_DIR) cvsclean || true ##====================================================================== -- cgit v1.2.1