Commit 44c4a014 authored by Albert Gräf's avatar Albert Gräf
Browse files

Add light build option.

parent 4eace14d
......@@ -21,6 +21,10 @@
# ` -tk`), bypassing Gem which takes an eternity to compile; please
# check the script for details
# light: like `incremental`, but does a light build (equivalent to
# ` -tkl`) which only includes the most essential externals;
# please check the script for details
# checkout: convenience target to check out all submodules in preparation for
# a subsequent build (the `all`, `incremental` and `dist` targets also do this
# automatically when needed)
......@@ -36,6 +40,13 @@
# The incremental and light builds assume an existing staging area
# (packages/*/build directory) which is *not* cleaned before installing. This
# makes it possible to update the existing staging area after recompiling just
# a part of the system (all but Gem in the case of "incremental", only the
# Pd core and a few essential externals in the case of "light"). Use `make
# clean` beforehand if you want to install into a clean staging area.
# The realclean and dist targets use git commands and thus only work in a
# working copy of the git repo, not in the static tarball snapshots produced
# by the dist target.
......@@ -65,6 +76,9 @@ all:
cd l2ork_addons && $(env) ./ -tk
cd l2ork_addons && $(env) ./ -tkl
git submodule update --init
......@@ -129,7 +129,13 @@ CXXFLAGS = $(CFLAGS)
# WARNING! this MUST be all on one line because the automatic package
# building scripts rely on it being that way.
ifeq ($(LIGHT),yes)
# minimal set of extensions for the "light" build
LIB_TARGETS = loaders-libdir pddp
LIB_TARGETS = adaptive arraysize autotune bassemu boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease fluid 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-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy
# DISABLED: flatgui
......@@ -147,8 +153,9 @@ else
ifneq ($(shell uname -r | sed 's|10\.[0-9][0-9]*\.[0-9][0-9]*|10|'),10)
# GNU/Linux, BSD, IRIX, etc. (we use exported variable INCREMENTAL to avoid rebuilding entire Gem lib that takes a long time to compile)
else ifneq ($(LIGHT),yes)
# GNU/Linux, BSD, IRIX, etc. (we use exported variable INCREMENTAL to
# avoid rebuilding entire Gem lib that takes a long time to compile)
ifeq ($(INCREMENTAL),yes)
LIB_TARGETS += hid pdp iem16
......@@ -21,6 +21,7 @@ then
echo " -f full tarball installer (incremental)"
echo " -F full tarball installer (complete recompile)"
echo " -k keep previous build products"
echo " -l do a light build (only essential externals)"
echo " -n skip package creation (-bB, -fF)"
echo " -r build a Raspberry Pi deb (incremental)"
echo " -R build a Raspberry Pi deb (complete recompile)"
......@@ -57,8 +58,9 @@ inno=0
while getopts ":bBcfFknRrTtXzZ" Option
while getopts ":bBcfFklnRrTtXzZ" Option
do case $Option in
b) deb=1
......@@ -74,6 +76,8 @@ do case $Option in
k) clean=0;;
l) light=1;;
n) pkg=0;;
R) deb=2
......@@ -103,6 +107,13 @@ done
# configure a light build if requested
if [ $light -gt 0 ]; then
export LIGHT=yes
export LIGHT=
export TAR_EM_UP_PREFIX=$inst_dir
# Get the OS we're running under, normalized to names that can be used
......@@ -315,7 +326,7 @@ then
if [[ $os == "win" ]]; then
echo "Making Windows package..."
echo `pwd`
make install INCREMENTAL=$INCREMENTAL && make package
make install INCREMENTAL=$INCREMENTAL LIGHT=$LIGHT && make package
elif [[ $os == "osx" ]]; then
echo "Making OSX package (dmg)..."
echo `pwd`
......@@ -332,7 +343,7 @@ then
cd ../../l2ork_addons
elif [[ $os == "osx" ]]; then
cd ../../l2ork_addons
elif [ $light -eq 0 ]; then
cd ../../l2ork_addons/spectdelay/spectdelay~
cp -f spectdelay~.pd_linux ../../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
......@@ -340,9 +351,11 @@ then
cp -f array* ../../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
# return to l2ork_addons folder
cd ../../
cd ../../l2ork_addons
# install raspberry pi externals (if applicable)
if [ $inno -eq 0 -a $dmg -eq 0 ]; then
if [ $inno -eq 0 -a $dmg -eq 0 -a $light -eq 0 ]; then
cd raspberry_pi
cp -f disis_gpio/disis_gpio.pd_linux ../../packages/linux_make/build$inst_dir/lib/pd-l2ork/extra
......@@ -193,7 +193,9 @@ devel_install: pd_devel_install
# abstractions_install
ifneq ($(LIGHT),yes)
$(MAKE) -C $(abstractions_src) $(DEST_PATHS) install
# extensions_install
......@@ -204,7 +206,7 @@ extensions_install:
# externals_install
$(MAKE) -C $(externals_src) $(DEST_PATHS) install INCREMENTAL=$(INCREMENTAL)
......@@ -83,10 +83,12 @@ tarbz2: installer_settings installer_makefile installer_readme
# Any special staging for the "Burrito Supreme" installer goes here.
debstage: $(bindir)
ifneq ($(LIGHT),yes)
# add K12 mode
cp -rf ../../l2ork_addons/K12/ $(DESTDIR)$(libpddir)/extra/
# add arduino library
cp -rf ../../externals/hardware/arduino $(DESTDIR)$(libpddir)/extra/
# free desktop menu, mime, and icon support
# perhaps the icons should go in /usr/share/pixmaps like 'scribus'
install -d $(DESTDIR)/usr/share/icons/hicolor/128x128/apps
......@@ -62,7 +62,7 @@ install: pd_install prebuilt_install lib_install exe_install
$(MAKE) -C $(packages_src) $(DEST_PATHS) extended_install INCREMENTAL=$(INCREMENTAL)
$(MAKE) -C $(packages_src) $(DEST_PATHS) extended_install INCREMENTAL=$(INCREMENTAL) LIGHT=$(LIGHT)
$(MAKE) -C $(packages_src) $(DEST_PATHS) doc_format
install -p pd-settings.reg $(DESTDIR)$(prefix)
......@@ -95,6 +95,7 @@ lib_install:
install -p $(bin_src)/libvorbisenc-2.dll $(DESTDIR)$(bindir)/
install -p $(bin_src)/libvorbisfile-3.dll $(DESTDIR)$(bindir)/
install -p $(bin_src)/libmp3lame-0.dll $(DESTDIR)$(bindir)/
ifneq ($(LIGHT),yes)
# I think these two are needed for zexy/matchbox and zexy/regex
install -p $(bin_src)/libsystre-0.dll $(DESTDIR)$(bindir)/
install -p $(bin_src)/libtre-5.dll $(DESTDIR)$(bindir)/
......@@ -127,6 +128,7 @@ lib_install:
-install -p $(DESTDIR)/extra/Gem/gem_model*.dll $(DESTDIR)$(bindir)/
-install -p $(DESTDIR)/extra/Gem/gem_record*.dll $(DESTDIR)$(bindir)/
-install -p $(DESTDIR)/extra/Gem/gem_video*.dll $(DESTDIR)$(bindir)/
# these stay with pd.exe
# if these are installed, include them in the build root
-install -p $(system32)/msvcp71.dll $(DESTDIR)$(bindir)
......@@ -135,12 +137,14 @@ lib_install:
install -p $(bin_src)/libwinpthread-1.dll $(DESTDIR)$(bindir)
install -p $(bin_src)/libgcc_s_dw2-1.dll $(DESTDIR)$(bindir)
install -p $(bin_src)/libstdc++-6.dll $(DESTDIR)$(bindir)
ifneq ($(LIGHT),yes)
# lyonpotpourri compiles its own shared lib. On Windows it needs to be
# in the path of the pd executable in order to get loaded. (There's probably
# also a way to add the external lib's path but I don't know how to do that.)
install -p $(DESTDIR)/extra/lyonpotpourri/liblyonpotpourri.dll $(DESTDIR)$(bindir)
# fftease also uses a shared lib...
install -p $(DESTDIR)/extra/fftease/libfftease.dll $(DESTDIR)$(bindir)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment