From 065bc09074d2e78f30306e75e195f3ac5f386b64 Mon Sep 17 00:00:00 2001
From: Sojourner Truth <jon.w.wilkes@gmail.com>
Date: Fri, 5 Aug 2016 21:46:09 -0400
Subject: [PATCH] move rtcmix-in-pd to externals/, update externals/Makefile

---
 .gitmodules                              |  2 +-
 externals/Makefile                       | 24 +++++++++++++-
 {l2ork_addons => externals}/rtcmix-in-pd |  0
 l2ork_addons/tar_em_up.sh                | 42 +++++++++++++++---------
 4 files changed, 51 insertions(+), 17 deletions(-)
 rename {l2ork_addons => externals}/rtcmix-in-pd (100%)

diff --git a/.gitmodules b/.gitmodules
index 713afee51..0c5b89732 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,7 +2,7 @@
         path = Gem
         url = git://git.code.sf.net/p/pd-gem/gem
 [submodule "l2ork_addons/rtcmix-in-pd"]
-	path = l2ork_addons/rtcmix-in-pd
+	path = externals/rtcmix-in-pd
 	url = https://github.com/jwmatthys/rtcmix-in-pd.git
 [submodule "l2ork_addons/cwiid"]
 	path = l2ork_addons/cwiid
diff --git a/externals/Makefile b/externals/Makefile
index 74d9146e5..3b6aabc7c 100644
--- a/externals/Makefile
+++ b/externals/Makefile
@@ -128,7 +128,7 @@ CXXFLAGS = $(CFLAGS)
 #
 # WARNING!  this MUST be all on one line because the automatic package
 # building scripts rely on it being that way.
-LIB_TARGETS = adaptive arraysize autotune bassemu boids bsaylor comport creb cxc cyclone earplug ekext ext13 fftease freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-hexloader loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdogg plugin pmpd sigpack smlib tof unauthorized vbap windowing zexy flext
+LIB_TARGETS = adaptive arraysize autotune bassemu boids bsaylor comport creb cxc cyclone earplug ekext ext13 fftease freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-hexloader loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdogg plugin pmpd rtcmix sigpack smlib tof unauthorized vbap windowing zexy flext
 
 # DISABLED: flatgui
 
@@ -1614,6 +1614,28 @@ postlude_clean:
 	-rm -f -- $(externals_src)/postlude/*/*.*~
 
 
+#------------------------------------------------------------------------------#
+# RTCMIX~
+
+rtcmix:
+	cd $(externals_src)/rtcmix-in-pd/RTcmix* && ./configure && make
+	make -C $(externals_src)/rtcmix-in-pd \
+		PD_PATH=$(pd_src) \
+		CFLAGS="$(CFLAGS)" \
+		LINUXINCLUDE=-I$(pd_src)/src
+
+rtcmix_install:
+	install -d $(DESTDIR)$(objectsdir)/rtcmix
+	install -p $(externals_src)/rtcmix-in-pd/rtcmix~.$(EXTENSION) \
+		$(DESTDIR)/$(objectsdir)
+	install -p $(externals_src)/rtcmix-in-pd/rtcmix~-help.pd \
+		$(DESTDIR)/$(objectsdir)
+	cp -rf $(externals_src)/rtcmix-in-pd/lib $(DESTDIR)/$(objectsdir)
+	cp -rf $(externals_src)/rtcmix-in-pd/scores $(DESTDIR)/$(objectsdir)
+
+rtcmix_clean:
+	make -C $(externals_src)/rtcmix-in-pd clean
+	make -C $(externals_src)/rtcmix-in-pd/RTcmix*
 
 #------------------------------------------------------------------------------#
 # SIGPACK
diff --git a/l2ork_addons/rtcmix-in-pd b/externals/rtcmix-in-pd
similarity index 100%
rename from l2ork_addons/rtcmix-in-pd
rename to externals/rtcmix-in-pd
diff --git a/l2ork_addons/tar_em_up.sh b/l2ork_addons/tar_em_up.sh
index 460ce8405..ff88a69e8 100755
--- a/l2ork_addons/tar_em_up.sh
+++ b/l2ork_addons/tar_em_up.sh
@@ -39,6 +39,32 @@ pkg=1
 
 inst_dir=${inst_dir:-/usr/local}
 
+# Fetch the nw.js binary if we haven't already. We want to fetch it even
+# for building with no libs, so we do it before all options
+echo nwjs-sdk-v0.16.0-`uname | tr '[:upper:]' '[:lower:]'`
+if [ ! -d "../pd/nw/nw" ]; then
+	# fetch the nw.js binary (unfortunately over http...)
+	os=`uname | tr '[:upper:]' '[:lower:]'`
+	arch=""
+	if [ `getconf LONG_BIT` -eq 32 ]; then
+		arch="ia32"
+	else
+		arch="x64"
+	fi
+	ext="tar.gz"
+	nwjs="nwjs-sdk"
+	nwjs_version="v0.16.0"
+	nwjs_dirname=${nwjs}-${nwjs_version}-${os}-${arch}
+	nwjs_filename=${nwjs_dirname}.${ext}
+	nwjs_url=https://dl.nwjs.io/v0.16.0/$nwjs_filename
+	echo "Fetching the nwjs binary from"
+	echo "$nwjs_url"
+	wget $nwjs_url
+	tar -xf $nwjs_filename
+	mv $nwjs_dirname ../pd/nw/nw
+	rm $nwjs_filename
+fi
+
 while getopts ":abBcdefFnRruw" Option
 do case $Option in
 		a)		addon=1;;
@@ -320,21 +346,7 @@ then
 	cp -f disis_spi/disis_spi-help.pd ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
 	cd ../
 	#fi
-	# install rtcmix~ external
-	cd rtcmix-in-pd/
-	#git submodule update
-	cd RTcmix*
-	./configure
-	#make clean
-	make
-	cd ../
-	make clean
-	make LINUXINCLUDE=-I../../pd/src
-	cp -f rtcmix~.pd_linux ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
-	cp -f rtcmix~-help.pd ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
-	cp -rf lib ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
-	cp -rf scores ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
-	cd ../
+
 	echo "done with l2ork addons."
 	cd ../
 	# finish install
-- 
GitLab