|
|
|
|
|
|
|
#Will be added by configure before this line:
|
|
|
|
##PREFIX
|
|
|
|
#PROGRAM
|
|
|
|
#VERSION
|
|
|
|
#This is a makefile and needs tabs, not spaces.
|
|
|
|
|
|
|
|
.PHONY: install uninstall clean gitclean resources calfbox
|
|
|
|
|
|
|
|
all: | calfbox
|
|
|
|
#Our Program
|
|
|
|
mkdir -p build
|
|
|
|
cd build && printf "prefix = \"$(PREFIX)\"" > compiledprefix.py
|
|
|
|
cp -r patroneo __main__.py engine qtgui sitepackages 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
|
|
|
|
cd build && find . -type d -name "__pycache__" -exec rm -r {} +
|
|
|
|
python -m zipapp "build" --output="$(PROGRAM).bin" --python="/usr/bin/env python3"
|
|
|
|
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:
|
|
|
|
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 sitepackages
|
|
|
|
rm -f "$(PROGRAM).bin"
|
|
|
|
rm -rf "$(PROGRAM).build"
|
|
|
|
rm Makefile
|
|
|
|
find . -type d -name "__pycache__" -exec rm -r {} +
|
|
|
|
|
|
|
|
#Convenience function for developing, not used for the build or install process
|
|
|
|
gitclean:
|
|
|
|
git clean -f -X -d
|
|
|
|
|
|
|
|
#Convenience function for developing, not used for the build or install process
|
|
|
|
resources:
|
|
|
|
cd template/documentation && python3 build.py
|
|
|
|
cd documentation && sh build-documentation.sh
|
|
|
|
cd qtgui/resources && sh buildresources.sh
|
|
|
|
|
|
|
|
install:
|
|
|
|
install -D -m 755 $(PROGRAM).bin $(DESTDIR)$(PREFIX)/bin/$(PROGRAM)
|
|
|
|
|
|
|
|
install -D -m 644 documentation/out/* -t $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)
|
|
|
|
install -D -m 644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)/README.md
|
|
|
|
install -D -m 644 LICENSE $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)/LICENSE
|
|
|
|
|
|
|
|
install -D -m 644 desktop/desktop.desktop $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.$(PROGRAM).desktop
|
|
|
|
|
|
|
|
install -d $(DESTDIR)$(PREFIX)/share/man/man1
|
|
|
|
gzip -c documentation/$(PROGRAM).1 > $(DESTDIR)$(PREFIX)/share/man/man1/$(PROGRAM).1.gz
|
|
|
|
|
|
|
|
|
|
|
|
#Icons
|
|
|
|
for size in 16 32 64 128 256 512 ; do \
|
|
|
|
install -D -m 644 desktop/images/"$$size"x"$$size".png $(DESTDIR)$(PREFIX)/share/icons/hicolor/"$$size"x"$$size"/apps/$(PROGRAM).png ; \
|
|
|
|
done
|
|
|
|
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)
|
|
|
|
cp -r engine/resources/* $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/
|
|
|
|
install -D -m 644 template/engine/resources/metronome/* -t $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/template/metronome
|
|
|
|
|
|
|
|
uninstall:
|
|
|
|
#Directories
|
|
|
|
rm -rf $(DESTDIR)$(PREFIX)/share/template/$(PROGRAM)
|
|
|
|
rm -rf $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)
|
|
|
|
rm -rf $(DESTDIR)$(PREFIX)/share/$(PROGRAM)
|
|
|
|
rm -rf $(DESTDIR)$(PREFIX)/lib/$(PROGRAM)
|
|
|
|
|
|
|
|
#Files
|
|
|
|
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM)
|
|
|
|
rm -f $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.$(PROGRAM).desktop
|
|
|
|
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/$(PROGRAM).1.gz
|
|
|
|
|
|
|
|
#Icons
|
|
|
|
for size in 16 32 64 128 256 512 ; do \
|
|
|
|
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/"$$size"x"$$size"/apps/$(PROGRAM).png ; \
|
|
|
|
done
|
|
|
|
rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/$(PROGRAM).png
|