aboutsummaryrefslogtreecommitdiff
path: root/desiredata/src/makefile.in
blob: dfffa135a841964f4ddad5b1277f7244f08fff8e (plain)
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
cvs_root_dir = ../..
pd_src = $(cvs_root_dir)/pd
INCLUDE = -I$(pd_src)/src
GFLAGS = -DINSTALL_PREFIX=\"$(prefix)\"

EXT= @EXT@
LIBSUFFIX = @LIBSUFFIX@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
includedir = @includedir@
libdir = @libdir@
mandir = @mandir@
# varibles to match packages/Makefile.buildlayout so that they can be easily
# overridden when building Pd-extended builds. <hans@at.or.at>
libpddir = $(libdir)/pd
pddocdir = $(libpddir)/doc
libpdbindir = $(libpddir)/bin

MORECFLAGS = @MORECFLAGS@
LDFLAGS = @LDFLAGS@
LDSOFLAGS = @LDSOFLAGS@
CPPFLAGS = -DDESIRE -DDONTUSESIMD -DPD @CPPFLAGS@
CFLAGS = $(CPPFLAGS) @CFLAGS@ $(MORECFLAGS)
CFLAGS += -Wall -Wextra -Wno-unused-parameter -I.
CFLAGS += -DINSTALL_PREFIX=\"$(prefix)\"

STRIP = @STRIP@

# --------------------- win32 ---------------------------
WATCHDOG = @WATCHDOG@
WLIB = @WLIB@
EXE = @EXE@
# variables to build on mingw <colet.patrice@free.fr>
#-----------------------------------------------------------

SRCXX = desire.c kernel.c builtins.c builtins_dsp.c s_path.c s_inter.c s_main.c \
	m_sched.c s_loader.c d_soundfile.c d_ugen.c s_audio.c s_midi.c \
	m_fifo.c m_simd.c d_mayer_fft.c d_fftroutine.c @AUDIOSRC@ @MIDISRC@
OBJ = $(SRCXX:.c=.o) $(SRC:.c=.o)
SO = libpd$(LIBSUFFIX)

#  ------------------ targets ------------------------------------

.PHONY: bin externs all

all:: bin externs

bin:: pd$(EXE) $(WATCHDOG) pdsend$(EXE) pdreceive$(EXE)

$(SRCXX:.c=.o): %.o: %.c config.log
	$(CXX) $(CFLAGS) -xc++ -c -o $*.o $*.c

$(SO): $(OBJ) config.log
	$(CXX) $(LDSOFLAGS) $(LDFLAGS) $(DBG_CFLAGS) -I../src -o $(SO) $(OBJ) $(WLIB)

pd$(EXE): $(OBJ) config.log $(SO) main.c
	$(CXX) $(LDFLAGS) $(DBG_CFLAGS) $$PWD/$(SO) main.c -o pd$(EXE)

pd-watchdog$(EXE): s_watchdog.c
	$(CXX) $(CFLAGS) $(STRIPFLAG) -o pd-watchdog$(EXE) s_watchdog.c

pd.com: main.c
	$(CXX) $(LDFLAGS) $(DBG_CFLAGS) $(CFLAGS) -o pd.com main.c $(LIBS) -L../src -lpd
	strip --strip-unneeded -R .note -R .comment pd.com

# i should sort out the LDFLAGS thing so that pd,pdsend,pdreceive don't get linked to all libs that libpd.so is linked to.
# note that MinGW really wants LDFLAGS at the end of the line, not the middle, according to patco.

pdsend$(EXE): u_pdsend.c config.log
	$(CXX) $(CFLAGS) $(STRIPFLAG) -o pdsend$(EXE) u_pdsend.c $(LDFLAGS)
	$(STRIP) pdsend$(EXE)

pdreceive$(EXE): u_pdreceive.c config.log
	$(CXX) $(CFLAGS) $(STRIPFLAG) -o pdreceive$(EXE) u_pdreceive.c $(LDFLAGS)
	$(STRIP) pdreceive$(EXE)

externs::
	cd ../extra; for ext in bonk~ choice expr~ fiddle~ loop~ lrshift~ pique sigmund~; do \
		cd $$ext; make @EXTERNTARGET@ || break; cd ..; done

# note: will not install symlinks. you'd need another -o -type.
FINDFLAGS = -name .svn -prune -o -type f

install:: all
	install -d $(DESTDIR)$(bindir)
	install -d $(DESTDIR)$(libpdbindir)
	for file in defaults.ddrc pkgIndex.tcl poe.tcl bgerror.tcl; do \
		install $$file $(DESTDIR)$(libpdbindir)/$$file; done
	install $(BINARYMODE) $(SO) $(DESTDIR)$(libdir)/$(SO)
	test -w /etc/ld.so.cache && ldconfig || true
	$(CXX) $(LDFLAGS) $(DBG_CFLAGS) main.c -lpd -o $(DESTDIR)$(bindir)/pd$(EXE) $(WSTRIP)
	install -m755 desire.tk   $(DESTDIR)$(bindir)/desire.tk
	install -m755 desire   $(DESTDIR)$(bindir)/desire
	install -m755 pdsend$(EXE)      $(DESTDIR)$(bindir)/pdsend$(EXE)
	install -m755 pdreceive$(EXE)   $(DESTDIR)$(bindir)/pdreceive$(EXE)
	install -m755 $(WATCHDOG) $(DESTDIR)$(libpdbindir)/$(WATCHDOG)
	find locale   $(FINDFLAGS) -exec install -D -m644 '{}' $(DESTDIR)$(libpdbindir)/'{}' ';'
	find icons    $(FINDFLAGS) -exec install -D -m644 '{}' $(DESTDIR)$(libpddir)/'{}'    ';'
	find ../doc   $(FINDFLAGS) -exec install -D -m644 '{}' $(DESTDIR)$(pddocdir)/'{}'    ';'
	find ../extra $(FINDFLAGS) -exec install -D -m644 '{}' $(DESTDIR)$(libpddir)/'{}'    ';'
	install -d $(DESTDIR)$(includedir)
	for file in m_pd.h desire.h; do install -m644 $$file $(DESTDIR)$(includedir)/$$file; done
	install -d $(DESTDIR)$(mandir)/man1
	for page in pd.1 pdsend.1 pdreceive.1; do \
		gzip < ../man/$$page > $(DESTDIR)$(mandir)/man1/$$page.gz; chmod 644 $(DESTDIR)$(mandir)/man1/$$page.gz; done

local-clean::
	-rm -f *.o pd$(EXE) pdsend$(EXE) pdreceive$(EXE) $(WATCHDOG) m_stamp.c
	-rm -f *~
	-(cd ../doc/6.externs; rm -f *.$(EXT))
	-rm -f makefile.deps
	touch makefile.deps
	#chmod 666 makefile.deps # what was this for??

extra-clean::
	-rm -f `find ../extra/ -name "*.pd_*"`
	-rm -f tags

clean:: extra-clean local-clean

distclean:: clean
	-rm -f config.cache config.log config.status makefile tags \
		autom4te.cache/output.* autom4te.cache/traces.* autom4te.cache/requests
	-rmdir autom4te.cache
	-rm -rf autom4te-*.cache

tags:: $(SRC) $(GSRC); ctags *.[ch]

depend:: makefile.deps

makefile.deps: makefile
	$(CXX) $(CPPFLAGS) -MM $(SRC) $(SRCXX) > makefile.deps

uninstall::
	rm -f -r $(DESTDIR)$(libpddir)
	rm -f $(DESTDIR)$(libdir)/libpd*
	cd $(DESTDIR)$(bindir);      rm pd$(EXE) pdsend$(EXE) pdreceive$(EXE)
	cd $(DESTDIR)$(includedir);  rm m_pd.h desire.h
	cd $(DESTDIR)$(mandir)/man1; rm pd.1.gz pdsend.1.gz pdreceive.1.gz

test:: all
	cd ../extra/pureunity && make test

include makefile.deps

# echo $$LD_LIBRARY_PATH | sed 's/:/\n/g' | grep -q '^$(DESTDIR)$(libdir)$$'