Browse Source

Remove cbox from build system

master
Nils 2 years ago
parent
commit
763a663021
  1. 32
      template/Makefile.in
  2. 6
      template/configure.template
  3. 16
      template/documentation/readme.template

32
template/Makefile.in

@ -5,45 +5,22 @@
#VERSION #VERSION
#This is a makefile and needs tabs, not spaces. #This is a makefile and needs tabs, not spaces.
.PHONY: install uninstall clean gitclean resources calfbox .PHONY: install uninstall clean gitclean resources
all: | calfbox all:
#Our Program #Our Program
mkdir -p build mkdir -p build
cd build && printf "prefix = \"$(PREFIX)\"" > compiledprefix.py cd build && printf "prefix = \"$(PREFIX)\"" > compiledprefix.py
#Only copy the needed files #Only copy the needed files
cp -r "$(PROGRAM)" __main__.py engine qtgui sitepackages template build cp -r "$(PROGRAM)" __main__.py engine qtgui template build
#We only need the installed calfbox in local sitepackages. The repo in template is full with build data anyway, don't zip that in.
rm -rf build/template/calfbox
#Clean all pycache in build #Clean all pycache in build
cd build && find . -type d -name "__pycache__" -exec rm -r {} + cd build && find . -type d -name "__pycache__" -exec rm -r {} +
python3 -m zipapp "build" --output="$(PROGRAM).bin" --python="/usr/bin/env python3" python3 -m zipapp "build" --output="$(PROGRAM).bin" --python="/usr/bin/env python3"
rm build/compiledprefix.py rm build/compiledprefix.py
#A mode that just compiles calfbox locally so you can run the whole program standalone
calfbox:
mkdir -p sitepackages
#First build the shared lib. Instead of running make install we create the lib ourselves directly
cd template/calfbox && echo $(shell pwd)
#cd template/calfbox && make && make install DESTDIR=$(shell pwd)/../../sitepackages
cd template/calfbox && make
cp template/calfbox/.libs/libcalfbox.so.0.0.0 sitepackages/"lib$(PROGRAM).so.$(VERSION)"
#We need to be in the directory, make uses subshells which will forget the work-dir in the next line. So here is a trick:
#cd template/calfbox && python3 setup.py build && python3 setup.py install --user --install-lib ../../sitepackages
#The line above is too much for our specialized use-case. We just copy the few files we need manually.
mkdir -p sitepackages/calfbox
cp template/calfbox/py/cbox.py sitepackages/calfbox
cp template/calfbox/py/_cbox2.py sitepackages/calfbox
cp template/calfbox/py/__init__.py sitepackages/calfbox
cp template/calfbox/py/metadata.py sitepackages/calfbox
cp template/calfbox/py/sfzparser.py sitepackages/calfbox
cp template/calfbox/py/nullbox.py sitepackages/calfbox
clean: clean:
cd template/calfbox && make distclean && rm -rf build
cd template/calfbox && rm -rf .deps/ Makefile.in aclocal.m4 autom4te.cache/ compile config.guess config.h.in config.h.in~ config.sub configure depcomp install-sh ltmain.sh missing
rm -rf build/ rm -rf build/
rm -rf sitepackages
rm -f "$(PROGRAM).bin" rm -f "$(PROGRAM).bin"
rm Makefile rm Makefile
find . -type d -name "__pycache__" -exec rm -r {} + find . -type d -name "__pycache__" -exec rm -r {} +
@ -78,8 +55,6 @@ install:
done done
install -D -m 644 desktop/images/256x256.png $(DESTDIR)$(PREFIX)/share/pixmaps/$(PROGRAM).png install -D -m 644 desktop/images/256x256.png $(DESTDIR)$(PREFIX)/share/pixmaps/$(PROGRAM).png
install -D -m 755 sitepackages/lib$(PROGRAM).so.$(VERSION) -t $(DESTDIR)$(PREFIX)/lib/$(PROGRAM)
install -d $(DESTDIR)$(PREFIX)/share/$(PROGRAM) install -d $(DESTDIR)$(PREFIX)/share/$(PROGRAM)
cp -r engine/resources/* $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/ cp -r engine/resources/* $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/
install -D -m 644 template/engine/resources/metronome/* -t $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/template/metronome install -D -m 644 template/engine/resources/metronome/* -t $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/template/metronome
@ -89,7 +64,6 @@ uninstall:
rm -rf $(DESTDIR)$(PREFIX)/share/template/$(PROGRAM) rm -rf $(DESTDIR)$(PREFIX)/share/template/$(PROGRAM)
rm -rf $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM) rm -rf $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)
rm -rf $(DESTDIR)$(PREFIX)/share/$(PROGRAM) rm -rf $(DESTDIR)$(PREFIX)/share/$(PROGRAM)
rm -rf $(DESTDIR)$(PREFIX)/lib/$(PROGRAM)
#Files #Files
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM) rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM)

6
template/configure.template

@ -46,12 +46,6 @@ python3 -c 'import PyQt5' >/dev/null 2>&1 || { echo >&2 "PyQt for Python3 >= $re
PYQTVERSION=$(python3 -c 'from PyQt5.QtCore import QT_VERSION_STR; print(QT_VERSION_STR)') PYQTVERSION=$(python3 -c 'from PyQt5.QtCore import QT_VERSION_STR; print(QT_VERSION_STR)')
if version_gt $required_version_pyqt $PYQTVERSION; then echo "PyQt must be version >= $required_version_pyqt but is $PYQTVERSION. Aborting."; exit 1; fi if version_gt $required_version_pyqt $PYQTVERSION; then echo "PyQt must be version >= $required_version_pyqt but is $PYQTVERSION. Aborting."; exit 1; fi
echo "Sub-Configure for calfbox"
set -e
#We need to be in the directory,
cd template/calfbox && ./autogen.sh && ./configure --prefix=$(pwd)/../../sitepackages --without-ncurses --without-python --without-libusb $cboxconfigure > /dev/null
cd ../..
echo "generating makefile" echo "generating makefile"
printf "PREFIX=$prefix\nPROGRAM=$program\nVERSION=$version\n" >Makefile printf "PREFIX=$prefix\nPROGRAM=$program\nVERSION=$version\n" >Makefile

16
template/documentation/readme.template

@ -33,19 +33,15 @@ It is possible to clone a git repository.
`git clone https://git.laborejo.org/lss/<shortname>.git` `git clone https://git.laborejo.org/lss/<shortname>.git`
## Dependencies ## Dependencies
* Glibc
* Python 3.6 (maybe earlier) * Python 3.6 (maybe earlier)
* PyQt5 for Python 3 * PyQt5 for Python 3
* DejaVu Sans Sarif TTF (Font) (recommended, but not technically necessary) * DejaVu Sans Sarif TTF (Font) (recommended, but not technically necessary)
* libcalfbox-lss https://git.laborejo.org/lss/libcalfbox-lss
<dependencies> <dependencies>
#### Build Dependencies
* Bash
* GCC (development is done on 8.2, but most likely you can use a much earlier version)
### Environment: ### Environment:
* Jack Audio Connection Kit must be running * Jack Audio Connection Kit must be running
* Agordejo / New Session Manager ("NSM") * Optional: Agordejo / New Session Manager ("NSM")
## Build ## Build
./configure --prefix=/usr/local ./configure --prefix=/usr/local
@ -90,13 +86,6 @@ prompt to save changes.
## From source directory ## From source directory
You can run <name> after extracting the release archive or cloning from git, without installation. You can run <name> after extracting the release archive or cloning from git, without installation.
### Calfbox
"Calfbox" is the name of our internal realtime midi/audio python module.
* It is bundled with the application for a normal install.
* Or you could run `./configure` and `make calfbox` without subsequent install, which creates a `sitepackages` directory in the source dir. You can then run `./<shortname>` directly from the source.
* A third option is `./<shortname> --mute` which runs without sound at all and does not need calfbox.
### From source directory with NSM ### From source directory with NSM
The developer uses this way to develop and use the software, so it will always be as stable as the The developer uses this way to develop and use the software, so it will always be as stable as the
compiled version. But it is a bit less performant than building and installing it. compiled version. But it is a bit less performant than building and installing it.
@ -120,4 +109,3 @@ Or even shorter:
This is the minimal run mode which is only useful for testing and development. But if you only want This is the minimal run mode which is only useful for testing and development. But if you only want
to look at the GUI and are not in the mood to install anything -including dependencies-, go ahead. to look at the GUI and are not in the mood to install anything -including dependencies-, go ahead.

Loading…
Cancel
Save