1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
## -*- Mode: Makefile -*-
##
## File: externals/moocow/extended/Makefile
## Author: Bryan Jurish <moocow@bbaw.de>
## Description: pd-extended makefile for moocow's externals
##
##======================================================================
## Variables
SUBDIRS = \
../flite \
../gfsm \
../deque \
../readdir \
../weightmap \
../pdstring \
../../sprinkler
##-- 'pdstring' and 'sprinkler' are already in 'flatspace' ... should they be moved here?
##-- local variables
MOOCOW_DIR ?=$(shell pwd)
MOOCOW_BUILD ?=$(MOOCOW_DIR)/build.moo
MOOCOW_MFLAGS ?=DESTDIR=""
CONFIGURE_ARGS=\
CFLAGS="$(CFLAGS)" \
--with-pd-include="$(pd_src)/src" \
--with-pd-dir="$(MOOCOW_BUILD)"
# --with-pd-extdir="$(MOOCOW_BUILD)/externs"
##-- defaults
CFLAGS ?= -g -O2
pd_src ?= $(CURDIR)/../../../pd
##======================================================================
## Rules: default
all: build.stamp
autogen: $(SUBDIRS:=-autogen)
configure: $(SUBDIRS:=-configure)
build.stamp: $(SUBDIRS:=/build.stamp)
touch $@
reamde: README.txt
README.txt: README.pod
pod2text README.pod $@
clean:
for d in $(SUBDIRS); do $(MAKE) $(MOOCOW_MFLAGS) -C $$d clean || true; rm -f $$d/build.stamp; done;
rm -f build.stamp config.log
rm -rf $(MOOCOW_BUILD)
realclean: clean
for d in $(SUBDIRS); do $(MAKE) $(MOOCOW_MFLAGS) -C $$d realclean || true; done;
distclean: clean
for d in $(SUBDIRS); do $(MAKE) $(MOOCOW_MFLAGS) -C $$d distclean || true; done;
cvsclean: clean
for d in $(SUBDIRS); do $(MAKE) $(MOOCOW_MFLAGS) -C $$d cvsclean || true; done;
##======================================================================
## Templates: subdir
## RULES = $(call subdir_template,$(dir_path),$(configure_args))
define subdir_template
$(1)-autogen: $(1)-distclean
(cd $(1); sh ./autogen.sh) || true
$(1)-configure: $(1)-autogen
(cd $(1); sh ./configure $(CONFIGURE_ARGS) $(2)) || true
$(1)/build.stamp: $(1)-configure
$(MAKE) $(MOOCOW_MFLAGS) -C $(1) all install || true
touch $$@
$(1)-clean:
$(MAKE) -C $(1) clean || true
$(1)-distclean:
$(MAKE) -C $(1) distclean || true
endef
##======================================================================
## Rules: subdirectories
##-- flite, gfsm: simulate failed builds
#$(eval $(call subdir_template,../flite,--with-flite-dir=/NOPE))
#$(eval $(call subdir_template,../gfsm,--disable-gfsm))
##-- flite, gfsm: build 'em if you got 'em
$(eval $(call subdir_template,../flite))
$(eval $(call subdir_template,../gfsm))
##-- the usual suspects
$(eval $(call subdir_template,../deque))
$(eval $(call subdir_template,../pdstring,--enable-object-externals))
$(eval $(call subdir_template,../readdir))
$(eval $(call subdir_template,../../sprinkler))
$(eval $(call subdir_template,../weightmap))
|