mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
make: move target specific rules to dedicated files
This commit is contained in:
committed by
Frans de Jonge
parent
417d56b440
commit
f749fc2fd9
433
Makefile
433
Makefile
@@ -46,28 +46,8 @@ INSTALL_DIR=koreader-$(DIST)-$(MACHINE)
|
||||
# platform directories
|
||||
PLATFORM_DIR=platform
|
||||
COMMON_DIR=$(PLATFORM_DIR)/common
|
||||
ANDROID_DIR=$(PLATFORM_DIR)/android
|
||||
ANDROID_LAUNCHER_DIR:=$(ANDROID_DIR)/luajit-launcher
|
||||
ANDROID_ASSETS:=$(ANDROID_LAUNCHER_DIR)/assets/module
|
||||
ANDROID_LIBS_ROOT:=$(ANDROID_LAUNCHER_DIR)/libs
|
||||
ANDROID_LIBS_ABI:=$(ANDROID_LIBS_ROOT)/$(ANDROID_ABI)
|
||||
APPIMAGE_DIR=$(PLATFORM_DIR)/appimage
|
||||
CERVANTES_DIR=$(PLATFORM_DIR)/cervantes
|
||||
DEBIAN_DIR=$(PLATFORM_DIR)/debian
|
||||
KINDLE_DIR=$(PLATFORM_DIR)/kindle
|
||||
KOBO_DIR=$(PLATFORM_DIR)/kobo
|
||||
MACOS_DIR=$(PLATFORM_DIR)/mac
|
||||
POCKETBOOK_DIR=$(PLATFORM_DIR)/pocketbook
|
||||
REMARKABLE_DIR=$(PLATFORM_DIR)/remarkable
|
||||
SONY_PRSTUX_DIR=$(PLATFORM_DIR)/sony-prstux
|
||||
UBUNTUTOUCH_DIR=$(PLATFORM_DIR)/ubuntu-touch
|
||||
UBUNTUTOUCH_SDL_DIR:=$(UBUNTUTOUCH_DIR)/ubuntu-touch-sdl
|
||||
WIN32_DIR=$(PLATFORM_DIR)/win32
|
||||
|
||||
# appimage setup
|
||||
APPIMAGETOOL=appimagetool-x86_64.AppImage
|
||||
APPIMAGETOOL_URL=https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
|
||||
|
||||
# files to link from main directory
|
||||
INSTALL_FILES=reader.lua setupkoenv.lua frontend resources defaults.lua datastorage.lua \
|
||||
l10n tools README.md COPYING
|
||||
@@ -186,415 +166,10 @@ dist-clean: clean
|
||||
$(MAKE) -C $(KOR_BASE) dist-clean
|
||||
$(MAKE) -C doc clean
|
||||
|
||||
KINDLE_PACKAGE:=koreader-$(DIST)$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
KINDLE_PACKAGE_OTA:=koreader-$(DIST)$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
ZIP_EXCLUDE=-x "*.swp" -x "*.swo" -x "*.orig" -x "*.un~"
|
||||
# Don't bundle launchpad on touch devices..
|
||||
ifeq ($(TARGET), kindle-legacy)
|
||||
KINDLE_LEGACY_LAUNCHER:=launchpad
|
||||
# Include target specific rules.
|
||||
ifneq (,$(wildcard make/$(TARGET).mk))
|
||||
include make/$(TARGET).mk
|
||||
endif
|
||||
kindleupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(KINDLE_PACKAGE)
|
||||
# Kindle launching scripts
|
||||
ln -sf ../$(KINDLE_DIR)/extensions $(INSTALL_DIR)/
|
||||
ln -sf ../$(KINDLE_DIR)/launchpad $(INSTALL_DIR)/
|
||||
ln -sf ../../$(KINDLE_DIR)/koreader.sh $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(KINDLE_DIR)/libkohelper.sh $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../../../../$(KINDLE_DIR)/libkohelper.sh $(INSTALL_DIR)/extensions/koreader/bin
|
||||
ln -sf ../../$(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(KINDLE_DIR)/wmctrl $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && pwd && \
|
||||
zip -9 -r \
|
||||
../$(KINDLE_PACKAGE) \
|
||||
extensions koreader $(KINDLE_LEGACY_LAUNCHER) \
|
||||
-x "koreader/resources/fonts/*" "koreader/ota/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate kindleupdate package index file
|
||||
zipinfo -1 $(KINDLE_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(KINDLE_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip kindleupdate for zsync OTA update
|
||||
# note that the targz file extension is intended to keep ISP from caching
|
||||
# the file, see koreader#1644.
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(KINDLE_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
KOBO_PACKAGE:=koreader-kobo$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
KOBO_PACKAGE_OTA:=koreader-kobo$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
koboupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(KOBO_PACKAGE)
|
||||
# Kobo launching scripts
|
||||
cp $(KOBO_DIR)/koreader.png $(INSTALL_DIR)/koreader.png
|
||||
cp $(KOBO_DIR)/*.sh $(INSTALL_DIR)/koreader
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(KOBO_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate koboupdate package index file
|
||||
zipinfo -1 $(KOBO_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(KOBO_PACKAGE) \
|
||||
koreader/ota/package.index koreader.png README_kobo.txt
|
||||
# make gzip koboupdate for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(KOBO_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
PB_PACKAGE:=koreader-pocketbook$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
PB_PACKAGE_OTA:=koreader-pocketbook$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
pbupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(PB_PACKAGE)
|
||||
# Pocketbook launching scripts
|
||||
mkdir -p $(INSTALL_DIR)/applications
|
||||
mkdir -p $(INSTALL_DIR)/system/bin
|
||||
cp $(POCKETBOOK_DIR)/koreader.app $(INSTALL_DIR)/applications
|
||||
cp $(POCKETBOOK_DIR)/system_koreader.app $(INSTALL_DIR)/system/bin/koreader.app
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
cp -rfL $(INSTALL_DIR)/koreader $(INSTALL_DIR)/applications
|
||||
find $(INSTALL_DIR)/applications/koreader \
|
||||
-type f \( -name "*.gif" -o -name "*.html" -o -name "*.md" -o -name "*.txt" \) \
|
||||
-exec rm -vf {} \;
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(PB_PACKAGE) \
|
||||
applications -x "applications/koreader/resources/fonts/*" \
|
||||
"applications/koreader/resources/icons/src/*" "applications/koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate koboupdate package index file
|
||||
zipinfo -1 $(PB_PACKAGE) > \
|
||||
$(INSTALL_DIR)/applications/koreader/ota/package.index
|
||||
echo "applications/koreader/ota/package.index" >> \
|
||||
$(INSTALL_DIR)/applications/koreader/ota/package.index
|
||||
# hack file path when running tar in parent directory of koreader
|
||||
sed -i -e 's/^/..\//' \
|
||||
$(INSTALL_DIR)/applications/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -ru ../$(PB_PACKAGE) \
|
||||
applications/koreader/ota/package.index system
|
||||
# make gzip pbupdate for zsync OTA update
|
||||
cd $(INSTALL_DIR)/applications && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../../$(PB_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
utupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f koreader-ubuntu-touch-$(MACHINE)-$(VERSION).click
|
||||
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.sh $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/manifest.json $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.apparmor $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.apparmor.openstore $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.desktop $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.png $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../../$(UBUNTUTOUCH_DIR)/libSDL2.so $(INSTALL_DIR)/koreader/libs
|
||||
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && pwd && \
|
||||
zip -9 -r \
|
||||
../koreader-$(DIST)-$(MACHINE)-$(VERSION).zip \
|
||||
koreader -x "koreader/resources/fonts/*" "koreader/ota/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
|
||||
# generate ubuntu touch click package
|
||||
rm -rf $(INSTALL_DIR)/tmp && mkdir -p $(INSTALL_DIR)/tmp
|
||||
cd $(INSTALL_DIR)/tmp && \
|
||||
unzip ../../koreader-$(DIST)-$(MACHINE)-$(VERSION).zip && \
|
||||
click build koreader && \
|
||||
mv *.click ../../koreader-$(DIST)-$(MACHINE)-$(VERSION).click
|
||||
|
||||
appimageupdate: all
|
||||
# remove old package if any
|
||||
rm -f koreader-appimage-$(MACHINE)-$(VERSION).appimage
|
||||
|
||||
ln -sf ../../$(APPIMAGE_DIR)/AppRun $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(APPIMAGE_DIR)/koreader.appdata.xml $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(APPIMAGE_DIR)/koreader.desktop $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../resources/koreader.png $(INSTALL_DIR)/koreader
|
||||
# TODO at best this is DebUbuntu specific
|
||||
ln -sf /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 $(INSTALL_DIR)/koreader/libs/libSDL2.so
|
||||
# required for our stock Ubuntu SDL even though we don't use sound
|
||||
# the readlink is a half-hearted attempt at being generic; the echo libsndio.so.7.0 is specific to the nightly builds
|
||||
ln -sf /usr/lib/x86_64-linux-gnu/$(shell readlink /usr/lib/x86_64-linux-gnu/libsndio.so || echo libsndio.so.7.0) $(INSTALL_DIR)/koreader/libs/
|
||||
# also copy libbsd.so.0, cf. https://github.com/koreader/koreader/issues/4627
|
||||
ln -sf /lib/x86_64-linux-gnu/libbsd.so.0 $(INSTALL_DIR)/koreader/libs/
|
||||
ifeq ("$(wildcard $(APPIMAGETOOL))","")
|
||||
# download appimagetool
|
||||
wget "$(APPIMAGETOOL_URL)"
|
||||
chmod a+x "$(APPIMAGETOOL)"
|
||||
endif
|
||||
cd $(INSTALL_DIR) && pwd && \
|
||||
rm -rf tmp && mkdir -p tmp && \
|
||||
cp -Lr koreader tmp && \
|
||||
rm -rf tmp/koreader/ota && \
|
||||
rm -rf tmp/koreader/resources/icons/src && \
|
||||
rm -rf tmp/koreader/spec
|
||||
|
||||
# generate AppImage
|
||||
cd $(INSTALL_DIR)/tmp && \
|
||||
ARCH=x86_64 "$$OLDPWD/$(APPIMAGETOOL)" --appimage-extract-and-run koreader && \
|
||||
mv *.AppImage ../../koreader-$(DIST)-$(MACHINE)-$(VERSION).AppImage
|
||||
|
||||
androidupdate: all
|
||||
# Note: do not remove the module directory so there's no need
|
||||
# for `mk7z.sh` to always recreate `assets.7z` from scratch.
|
||||
rm -rfv $(ANDROID_LIBS_ROOT)
|
||||
mkdir -p $(ANDROID_ASSETS) $(ANDROID_LIBS_ABI)
|
||||
|
||||
# APK version
|
||||
echo $(VERSION) > $(ANDROID_ASSETS)/version.txt
|
||||
|
||||
# shared libraries are stored as raw assets
|
||||
cp -pR $(INSTALL_DIR)/koreader/libs $(ANDROID_LAUNCHER_DIR)/assets
|
||||
# in runtime luajit-launcher's libluajit.so will be loaded
|
||||
rm -vf $(ANDROID_LAUNCHER_DIR)/assets/libs/libluajit.so
|
||||
|
||||
# binaries are stored as shared libraries to prevent W^X exception on Android 10+
|
||||
# https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission
|
||||
cp -pR $(INSTALL_DIR)/koreader/sdcv $(ANDROID_LIBS_ABI)/libsdcv.so
|
||||
echo "sdcv libsdcv.so" > $(ANDROID_ASSETS)/map.txt
|
||||
|
||||
# assets are compressed manually and stored inside the APK.
|
||||
cd $(INSTALL_DIR)/koreader && \
|
||||
./tools/mk7z.sh \
|
||||
../../$(ANDROID_ASSETS)/koreader.7z \
|
||||
"$$(git show -s --format='%ci')" \
|
||||
-m0=lzma2 -mx=9 \
|
||||
-- . \
|
||||
'-x!cache' \
|
||||
'-x!clipboard' \
|
||||
'-x!data/dict' \
|
||||
'-x!data/tessdata' \
|
||||
'-x!history' \
|
||||
'-x!l10n/templates' \
|
||||
'-x!libs' \
|
||||
'-x!ota' \
|
||||
'-x!resources/fonts*' \
|
||||
'-x!resources/icons/src*' \
|
||||
'-x!rocks/bin' \
|
||||
'-x!rocks/lib/luarocks' \
|
||||
'-x!screenshots' \
|
||||
'-x!sdcv' \
|
||||
'-x!spec' \
|
||||
'-x!tools' \
|
||||
'-xr!.*' \
|
||||
'-xr!COPYING' \
|
||||
'-xr!NOTES.txt' \
|
||||
'-xr!NOTICE' \
|
||||
'-xr!README.md' \
|
||||
;
|
||||
|
||||
# make the android APK
|
||||
# Note: filter out the `--debug=…` make flag
|
||||
# so the old crummy version provided by the
|
||||
# NDK does not blow a gasket.
|
||||
MAKEFLAGS='$(filter-out --debug=%,$(MAKEFLAGS))' \
|
||||
$(MAKE) -C $(ANDROID_LAUNCHER_DIR) $(if $(KODEBUG), debug, release) \
|
||||
ANDROID_APPNAME=KOReader \
|
||||
ANDROID_VERSION=$(ANDROID_VERSION) \
|
||||
ANDROID_NAME=$(ANDROID_NAME) \
|
||||
ANDROID_FLAVOR=$(ANDROID_FLAVOR)
|
||||
|
||||
cp $(ANDROID_LAUNCHER_DIR)/bin/NativeActivity.apk \
|
||||
koreader-android-$(ANDROID_ARCH)$(KODEDUG_SUFFIX)-$(VERSION).apk
|
||||
|
||||
debianupdate: all
|
||||
mkdir -pv \
|
||||
$(INSTALL_DIR)/debian/usr/bin \
|
||||
$(INSTALL_DIR)/debian/usr/lib \
|
||||
$(INSTALL_DIR)/debian/usr/share/pixmaps \
|
||||
$(INSTALL_DIR)/debian/usr/share/applications \
|
||||
$(INSTALL_DIR)/debian/usr/share/doc/koreader \
|
||||
$(INSTALL_DIR)/debian/usr/share/man/man1
|
||||
|
||||
cp -pv resources/koreader.png $(INSTALL_DIR)/debian/usr/share/pixmaps
|
||||
cp -pv $(DEBIAN_DIR)/koreader.desktop $(INSTALL_DIR)/debian/usr/share/applications
|
||||
cp -pv $(DEBIAN_DIR)/copyright COPYING $(INSTALL_DIR)/debian/usr/share/doc/koreader
|
||||
cp -pv $(DEBIAN_DIR)/koreader.sh $(INSTALL_DIR)/debian/usr/bin/koreader
|
||||
cp -Lr $(INSTALL_DIR)/koreader $(INSTALL_DIR)/debian/usr/lib
|
||||
|
||||
gzip -cn9 $(DEBIAN_DIR)/changelog > $(INSTALL_DIR)/debian/usr/share/doc/koreader/changelog.Debian.gz
|
||||
gzip -cn9 $(DEBIAN_DIR)/koreader.1 > $(INSTALL_DIR)/debian/usr/share/man/man1/koreader.1.gz
|
||||
|
||||
chmod 644 \
|
||||
$(INSTALL_DIR)/debian/usr/share/doc/koreader/changelog.Debian.gz \
|
||||
$(INSTALL_DIR)/debian/usr/share/doc/koreader/copyright \
|
||||
$(INSTALL_DIR)/debian/usr/share/man/man1/koreader.1.gz
|
||||
|
||||
rm -rf \
|
||||
$(INSTALL_DIR)/debian/usr/lib/koreader/{ota,cache,clipboard,screenshots,spec,tools,resources/fonts,resources/icons/src}
|
||||
|
||||
macosupdate: all
|
||||
mkdir -p \
|
||||
$(INSTALL_DIR)/bundle/Contents/MacOS \
|
||||
$(INSTALL_DIR)/bundle/Contents/Resources
|
||||
|
||||
cp -pv $(MACOS_DIR)/koreader.icns $(INSTALL_DIR)/bundle/Contents/Resources/icon.icns
|
||||
cp -LR $(INSTALL_DIR)/koreader $(INSTALL_DIR)/bundle/Contents
|
||||
cp -pRv $(MACOS_DIR)/menu.xml $(INSTALL_DIR)/bundle/Contents/MainMenu.xib
|
||||
ibtool --compile "$(INSTALL_DIR)/bundle/Contents/Resources/Base.lproj/MainMenu.nib" "$(INSTALL_DIR)/bundle/Contents/MainMenu.xib"
|
||||
rm -rfv "$(INSTALL_DIR)/bundle/Contents/MainMenu.xib"
|
||||
|
||||
REMARKABLE_PACKAGE:=koreader-remarkable$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
REMARKABLE_PACKAGE_OTA:=koreader-remarkable$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
remarkableupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(REMARKABLE_PACKAGE)
|
||||
# Remarkable scripts
|
||||
cp $(REMARKABLE_DIR)/* $(INSTALL_DIR)/koreader
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(REMARKABLE_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate update package index file
|
||||
zipinfo -1 $(REMARKABLE_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(REMARKABLE_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip remarkable update for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar -I"gzip --rsyncable" -cah --no-recursion -f ../$(REMARKABLE_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
SONY_PRSTUX_PACKAGE:=koreader-sony-prstux$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
SONY_PRSTUX_PACKAGE_OTA:=koreader-sony-prstux$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
sony-prstuxupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(SONY_PRSTUX_PACKAGE)
|
||||
# Sony PRSTUX launching scripts
|
||||
cp $(SONY_PRSTUX_DIR)/*.sh $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(SONY_PRSTUX_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate update package index file
|
||||
zipinfo -1 $(SONY_PRSTUX_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(SONY_PRSTUX_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip sonyprstux update for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(SONY_PRSTUX_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
CERVANTES_PACKAGE:=koreader-cervantes$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
CERVANTES_PACKAGE_OTA:=koreader-cervantes$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
cervantesupdate: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(CERVANTES_PACKAGE)
|
||||
# Cervantes launching scripts
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader/spinning_zsync.sh
|
||||
cp $(CERVANTES_DIR)/*.sh $(INSTALL_DIR)/koreader
|
||||
cp $(CERVANTES_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(CERVANTES_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate update package index file
|
||||
zipinfo -1 $(CERVANTES_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(CERVANTES_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip cervantes update for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(CERVANTES_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
update:
|
||||
ifeq ($(TARGET), android)
|
||||
make androidupdate
|
||||
else ifeq ($(TARGET), appimage)
|
||||
make appimageupdate
|
||||
else ifeq ($(TARGET), cervantes)
|
||||
make cervantesupdate
|
||||
else ifeq ($(TARGET), kindle)
|
||||
make kindleupdate
|
||||
else ifeq ($(TARGET), kindle-legacy)
|
||||
make kindleupdate
|
||||
else ifeq ($(TARGET), kindlepw2)
|
||||
make kindleupdate
|
||||
else ifeq ($(TARGET), kobo)
|
||||
make koboupdate
|
||||
else ifeq ($(TARGET), pocketbook)
|
||||
make pbupdate
|
||||
else ifeq ($(TARGET), sony-prstux)
|
||||
make sony-prstuxupdate
|
||||
else ifeq ($(TARGET), remarkable)
|
||||
make remarkableupdate
|
||||
else ifeq ($(TARGET), ubuntu-touch)
|
||||
make utupdate
|
||||
else ifeq ($(TARGET), debian)
|
||||
make debianupdate
|
||||
$(CURDIR)/platform/debian/do_debian_package.sh $(INSTALL_DIR)
|
||||
else ifeq ($(TARGET), debian-armel)
|
||||
make debianupdate
|
||||
$(CURDIR)/platform/debian/do_debian_package.sh $(INSTALL_DIR) armel
|
||||
else ifeq ($(TARGET), debian-armhf)
|
||||
make debianupdate
|
||||
$(CURDIR)/platform/debian/do_debian_package.sh $(INSTALL_DIR) armhf
|
||||
else ifeq ($(TARGET), debian-arm64)
|
||||
make debianupdate
|
||||
$(CURDIR)/platform/debian/do_debian_package.sh $(INSTALL_DIR) arm64
|
||||
else ifeq ($(TARGET), macos)
|
||||
make macosupdate
|
||||
$(CURDIR)/platform/mac/do_mac_bundle.sh $(INSTALL_DIR)
|
||||
endif
|
||||
|
||||
androiddev: androidupdate
|
||||
$(MAKE) -C $(ANDROID_LAUNCHER_DIR) dev
|
||||
|
||||
android-ndk:
|
||||
$(MAKE) -C $(KOR_BASE)/toolchain $(ANDROID_NDK_HOME)
|
||||
|
||||
android-sdk:
|
||||
$(MAKE) -C $(KOR_BASE)/toolchain $(ANDROID_HOME)
|
||||
|
||||
|
||||
# for gettext
|
||||
DOMAIN=koreader
|
||||
@@ -626,4 +201,4 @@ static-check:
|
||||
doc:
|
||||
make -C doc
|
||||
|
||||
.PHONY: all base clean doc test update
|
||||
.PHONY: all base clean doc test
|
||||
|
||||
73
make/android.mk
Normal file
73
make/android.mk
Normal file
@@ -0,0 +1,73 @@
|
||||
ANDROID_DIR = $(PLATFORM_DIR)/android
|
||||
ANDROID_LAUNCHER_DIR = $(ANDROID_DIR)/luajit-launcher
|
||||
ANDROID_ASSETS = $(ANDROID_LAUNCHER_DIR)/assets/module
|
||||
ANDROID_LIBS_ROOT = $(ANDROID_LAUNCHER_DIR)/libs
|
||||
ANDROID_LIBS_ABI = $(ANDROID_LIBS_ROOT)/$(ANDROID_ABI)
|
||||
|
||||
android-ndk:
|
||||
$(MAKE) -C $(KOR_BASE)/toolchain $(ANDROID_NDK_HOME)
|
||||
|
||||
android-sdk:
|
||||
$(MAKE) -C $(KOR_BASE)/toolchain $(ANDROID_HOME)
|
||||
|
||||
androiddev: update
|
||||
$(MAKE) -C $(ANDROID_LAUNCHER_DIR) dev
|
||||
|
||||
update: all
|
||||
# Note: do not remove the module directory so there's no need
|
||||
# for `mk7z.sh` to always recreate `assets.7z` from scratch.
|
||||
rm -rfv $(ANDROID_LIBS_ROOT)
|
||||
mkdir -p $(ANDROID_ASSETS) $(ANDROID_LIBS_ABI)
|
||||
# APK version
|
||||
echo $(VERSION) > $(ANDROID_ASSETS)/version.txt
|
||||
# shared libraries are stored as raw assets
|
||||
cp -pR $(INSTALL_DIR)/koreader/libs $(ANDROID_LAUNCHER_DIR)/assets
|
||||
# in runtime luajit-launcher's libluajit.so will be loaded
|
||||
rm -vf $(ANDROID_LAUNCHER_DIR)/assets/libs/libluajit.so
|
||||
# binaries are stored as shared libraries to prevent W^X exception on Android 10+
|
||||
# https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission
|
||||
cp -pR $(INSTALL_DIR)/koreader/sdcv $(ANDROID_LIBS_ABI)/libsdcv.so
|
||||
echo "sdcv libsdcv.so" > $(ANDROID_ASSETS)/map.txt
|
||||
# assets are compressed manually and stored inside the APK.
|
||||
cd $(INSTALL_DIR)/koreader && \
|
||||
./tools/mk7z.sh \
|
||||
../../$(ANDROID_ASSETS)/koreader.7z \
|
||||
"$$(git show -s --format='%ci')" \
|
||||
-m0=lzma2 -mx=9 \
|
||||
-- . \
|
||||
'-x!cache' \
|
||||
'-x!clipboard' \
|
||||
'-x!data/dict' \
|
||||
'-x!data/tessdata' \
|
||||
'-x!history' \
|
||||
'-x!l10n/templates' \
|
||||
'-x!libs' \
|
||||
'-x!ota' \
|
||||
'-x!resources/fonts*' \
|
||||
'-x!resources/icons/src*' \
|
||||
'-x!rocks/bin' \
|
||||
'-x!rocks/lib/luarocks' \
|
||||
'-x!screenshots' \
|
||||
'-x!sdcv' \
|
||||
'-x!spec' \
|
||||
'-x!tools' \
|
||||
'-xr!.*' \
|
||||
'-xr!COPYING' \
|
||||
'-xr!NOTES.txt' \
|
||||
'-xr!NOTICE' \
|
||||
'-xr!README.md' \
|
||||
;
|
||||
# make the android APK
|
||||
# Note: filter out the `--debug=…` make flag
|
||||
# so the old crummy version provided by the
|
||||
# NDK does not blow a gasket.
|
||||
MAKEFLAGS='$(filter-out --debug=%,$(MAKEFLAGS))' \
|
||||
$(MAKE) -C $(ANDROID_LAUNCHER_DIR) $(if $(KODEBUG), debug, release) \
|
||||
ANDROID_APPNAME=KOReader \
|
||||
ANDROID_VERSION=$(ANDROID_VERSION) \
|
||||
ANDROID_NAME=$(ANDROID_NAME) \
|
||||
ANDROID_FLAVOR=$(ANDROID_FLAVOR)
|
||||
cp $(ANDROID_LAUNCHER_DIR)/bin/NativeActivity.apk \
|
||||
koreader-android-$(ANDROID_ARCH)$(KODEDUG_SUFFIX)-$(VERSION).apk
|
||||
|
||||
.PHONY: android-ndk android-sdk androiddev update
|
||||
36
make/appimage.mk
Normal file
36
make/appimage.mk
Normal file
@@ -0,0 +1,36 @@
|
||||
APPIMAGE_DIR = $(PLATFORM_DIR)/appimage
|
||||
|
||||
APPIMAGETOOL = appimagetool-x86_64.AppImage
|
||||
APPIMAGETOOL_URL = https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
|
||||
|
||||
update: all
|
||||
# remove old package if any
|
||||
rm -f koreader-appimage-$(MACHINE)-$(VERSION).appimage
|
||||
ln -sf ../../$(APPIMAGE_DIR)/AppRun $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(APPIMAGE_DIR)/koreader.appdata.xml $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(APPIMAGE_DIR)/koreader.desktop $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../resources/koreader.png $(INSTALL_DIR)/koreader
|
||||
# TODO at best this is DebUbuntu specific
|
||||
ln -sf /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 $(INSTALL_DIR)/koreader/libs/libSDL2.so
|
||||
# required for our stock Ubuntu SDL even though we don't use sound
|
||||
# the readlink is a half-hearted attempt at being generic; the echo libsndio.so.7.0 is specific to the nightly builds
|
||||
ln -sf /usr/lib/x86_64-linux-gnu/$(shell readlink /usr/lib/x86_64-linux-gnu/libsndio.so || echo libsndio.so.7.0) $(INSTALL_DIR)/koreader/libs/
|
||||
# also copy libbsd.so.0, cf. https://github.com/koreader/koreader/issues/4627
|
||||
ln -sf /lib/x86_64-linux-gnu/libbsd.so.0 $(INSTALL_DIR)/koreader/libs/
|
||||
ifeq ("$(wildcard $(APPIMAGETOOL))","")
|
||||
# download appimagetool
|
||||
wget "$(APPIMAGETOOL_URL)"
|
||||
chmod a+x "$(APPIMAGETOOL)"
|
||||
endif
|
||||
cd $(INSTALL_DIR) && pwd && \
|
||||
rm -rf tmp && mkdir -p tmp && \
|
||||
cp -Lr koreader tmp && \
|
||||
rm -rf tmp/koreader/ota && \
|
||||
rm -rf tmp/koreader/resources/icons/src && \
|
||||
rm -rf tmp/koreader/spec
|
||||
# generate AppImage
|
||||
cd $(INSTALL_DIR)/tmp && \
|
||||
ARCH=x86_64 "$$OLDPWD/$(APPIMAGETOOL)" --appimage-extract-and-run koreader && \
|
||||
mv *.AppImage ../../koreader-$(DIST)-$(MACHINE)-$(VERSION).AppImage
|
||||
|
||||
.PHONY: update
|
||||
33
make/cervantes.mk
Normal file
33
make/cervantes.mk
Normal file
@@ -0,0 +1,33 @@
|
||||
CERVANTES_DIR = $(PLATFORM_DIR)/cervantes
|
||||
CERVANTES_PACKAGE = koreader-cervantes$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
CERVANTES_PACKAGE_OTA = koreader-cervantes$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(CERVANTES_PACKAGE)
|
||||
# Cervantes launching scripts
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader/spinning_zsync.sh
|
||||
cp $(CERVANTES_DIR)/*.sh $(INSTALL_DIR)/koreader
|
||||
cp $(CERVANTES_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(CERVANTES_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate update package index file
|
||||
zipinfo -1 $(CERVANTES_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(CERVANTES_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip cervantes update for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(CERVANTES_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
.PHONY: update
|
||||
25
make/debian.mk
Normal file
25
make/debian.mk
Normal file
@@ -0,0 +1,25 @@
|
||||
DEBIAN_DIR = $(PLATFORM_DIR)/debian
|
||||
|
||||
update: all
|
||||
mkdir -pv \
|
||||
$(INSTALL_DIR)/debian/usr/bin \
|
||||
$(INSTALL_DIR)/debian/usr/lib \
|
||||
$(INSTALL_DIR)/debian/usr/share/pixmaps \
|
||||
$(INSTALL_DIR)/debian/usr/share/applications \
|
||||
$(INSTALL_DIR)/debian/usr/share/doc/koreader \
|
||||
$(INSTALL_DIR)/debian/usr/share/man/man1
|
||||
cp -pv resources/koreader.png $(INSTALL_DIR)/debian/usr/share/pixmaps
|
||||
cp -pv $(DEBIAN_DIR)/koreader.desktop $(INSTALL_DIR)/debian/usr/share/applications
|
||||
cp -pv $(DEBIAN_DIR)/copyright COPYING $(INSTALL_DIR)/debian/usr/share/doc/koreader
|
||||
cp -pv $(DEBIAN_DIR)/koreader.sh $(INSTALL_DIR)/debian/usr/bin/koreader
|
||||
cp -Lr $(INSTALL_DIR)/koreader $(INSTALL_DIR)/debian/usr/lib
|
||||
gzip -cn9 $(DEBIAN_DIR)/changelog > $(INSTALL_DIR)/debian/usr/share/doc/koreader/changelog.Debian.gz
|
||||
gzip -cn9 $(DEBIAN_DIR)/koreader.1 > $(INSTALL_DIR)/debian/usr/share/man/man1/koreader.1.gz
|
||||
chmod 644 \
|
||||
$(INSTALL_DIR)/debian/usr/share/doc/koreader/changelog.Debian.gz \
|
||||
$(INSTALL_DIR)/debian/usr/share/doc/koreader/copyright \
|
||||
$(INSTALL_DIR)/debian/usr/share/man/man1/koreader.1.gz
|
||||
rm -rf \
|
||||
$(INSTALL_DIR)/debian/usr/lib/koreader/{ota,cache,clipboard,screenshots,spec,tools,resources/fonts,resources/icons/src}
|
||||
|
||||
.PHONY: update
|
||||
1
make/kindle-legacy.mk
Normal file
1
make/kindle-legacy.mk
Normal file
@@ -0,0 +1 @@
|
||||
include make/kindle.mk
|
||||
46
make/kindle.mk
Normal file
46
make/kindle.mk
Normal file
@@ -0,0 +1,46 @@
|
||||
KINDLE_DIR = $(PLATFORM_DIR)/kindle
|
||||
KINDLE_PACKAGE = koreader-$(DIST)$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
KINDLE_PACKAGE_OTA = koreader-$(DIST)$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
ZIP_EXCLUDE = -x "*.swp" -x "*.swo" -x "*.orig" -x "*.un~"
|
||||
|
||||
# Don't bundle launchpad on touch devices..
|
||||
ifeq ($(TARGET), kindle-legacy)
|
||||
KINDLE_LEGACY_LAUNCHER = launchpad
|
||||
endif
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(KINDLE_PACKAGE)
|
||||
# Kindle launching scripts
|
||||
ln -sf ../$(KINDLE_DIR)/extensions $(INSTALL_DIR)/
|
||||
ln -sf ../$(KINDLE_DIR)/launchpad $(INSTALL_DIR)/
|
||||
ln -sf ../../$(KINDLE_DIR)/koreader.sh $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(KINDLE_DIR)/libkohelper.sh $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../../../../$(KINDLE_DIR)/libkohelper.sh $(INSTALL_DIR)/extensions/koreader/bin
|
||||
ln -sf ../../$(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(KINDLE_DIR)/wmctrl $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && pwd && \
|
||||
zip -9 -r \
|
||||
../$(KINDLE_PACKAGE) \
|
||||
extensions koreader $(KINDLE_LEGACY_LAUNCHER) \
|
||||
-x "koreader/resources/fonts/*" "koreader/ota/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate kindleupdate package index file
|
||||
zipinfo -1 $(KINDLE_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(KINDLE_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip kindleupdate for zsync OTA update
|
||||
# note that the targz file extension is intended to keep ISP from caching
|
||||
# the file, see koreader#1644.
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(KINDLE_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
.PHONY: update
|
||||
1
make/kindlepw2.mk
Normal file
1
make/kindlepw2.mk
Normal file
@@ -0,0 +1 @@
|
||||
include make/kindle.mk
|
||||
33
make/kobo.mk
Normal file
33
make/kobo.mk
Normal file
@@ -0,0 +1,33 @@
|
||||
KOBO_DIR = $(PLATFORM_DIR)/kobo
|
||||
KOBO_PACKAGE = koreader-kobo$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
KOBO_PACKAGE_OTA = koreader-kobo$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(KOBO_PACKAGE)
|
||||
# Kobo launching scripts
|
||||
cp $(KOBO_DIR)/koreader.png $(INSTALL_DIR)/koreader.png
|
||||
cp $(KOBO_DIR)/*.sh $(INSTALL_DIR)/koreader
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(KOBO_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate koboupdate package index file
|
||||
zipinfo -1 $(KOBO_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(KOBO_PACKAGE) \
|
||||
koreader/ota/package.index koreader.png README_kobo.txt
|
||||
# make gzip koboupdate for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(KOBO_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
.PHONY: update
|
||||
14
make/macos.mk
Normal file
14
make/macos.mk
Normal file
@@ -0,0 +1,14 @@
|
||||
MACOS_DIR = $(PLATFORM_DIR)/mac
|
||||
|
||||
update: all
|
||||
mkdir -p \
|
||||
$(INSTALL_DIR)/bundle/Contents/MacOS \
|
||||
$(INSTALL_DIR)/bundle/Contents/Resources
|
||||
cp -pv $(MACOS_DIR)/koreader.icns $(INSTALL_DIR)/bundle/Contents/Resources/icon.icns
|
||||
cp -LR $(INSTALL_DIR)/koreader $(INSTALL_DIR)/bundle/Contents
|
||||
cp -pRv $(MACOS_DIR)/menu.xml $(INSTALL_DIR)/bundle/Contents/MainMenu.xib
|
||||
ibtool --compile "$(INSTALL_DIR)/bundle/Contents/Resources/Base.lproj/MainMenu.nib" "$(INSTALL_DIR)/bundle/Contents/MainMenu.xib"
|
||||
rm -rfv "$(INSTALL_DIR)/bundle/Contents/MainMenu.xib"
|
||||
$(CURDIR)/platform/mac/do_mac_bundle.sh $(INSTALL_DIR)
|
||||
|
||||
.PHONY: update
|
||||
43
make/pocketbook.mk
Normal file
43
make/pocketbook.mk
Normal file
@@ -0,0 +1,43 @@
|
||||
POCKETBOOK_DIR = $(PLATFORM_DIR)/pocketbook
|
||||
PB_PACKAGE = koreader-pocketbook$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
PB_PACKAGE_OTA = koreader-pocketbook$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(PB_PACKAGE)
|
||||
# Pocketbook launching scripts
|
||||
mkdir -p $(INSTALL_DIR)/applications
|
||||
mkdir -p $(INSTALL_DIR)/system/bin
|
||||
cp $(POCKETBOOK_DIR)/koreader.app $(INSTALL_DIR)/applications
|
||||
cp $(POCKETBOOK_DIR)/system_koreader.app $(INSTALL_DIR)/system/bin/koreader.app
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
cp -rfL $(INSTALL_DIR)/koreader $(INSTALL_DIR)/applications
|
||||
find $(INSTALL_DIR)/applications/koreader \
|
||||
-type f \( -name "*.gif" -o -name "*.html" -o -name "*.md" -o -name "*.txt" \) \
|
||||
-exec rm -vf {} \;
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(PB_PACKAGE) \
|
||||
applications -x "applications/koreader/resources/fonts/*" \
|
||||
"applications/koreader/resources/icons/src/*" "applications/koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate pocketbook package index file
|
||||
zipinfo -1 $(PB_PACKAGE) > \
|
||||
$(INSTALL_DIR)/applications/koreader/ota/package.index
|
||||
echo "applications/koreader/ota/package.index" >> \
|
||||
$(INSTALL_DIR)/applications/koreader/ota/package.index
|
||||
# hack file path when running tar in parent directory of koreader
|
||||
sed -i -e 's/^/..\//' \
|
||||
$(INSTALL_DIR)/applications/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -ru ../$(PB_PACKAGE) \
|
||||
applications/koreader/ota/package.index system
|
||||
# make gzip pbupdate for zsync OTA update
|
||||
cd $(INSTALL_DIR)/applications && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../../$(PB_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
.PHONY: update
|
||||
32
make/remarkable.mk
Normal file
32
make/remarkable.mk
Normal file
@@ -0,0 +1,32 @@
|
||||
REMARKABLE_DIR = $(PLATFORM_DIR)/remarkable
|
||||
REMARKABLE_PACKAGE = koreader-remarkable$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
REMARKABLE_PACKAGE_OTA = koreader-remarkable$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(REMARKABLE_PACKAGE)
|
||||
# Remarkable scripts
|
||||
cp $(REMARKABLE_DIR)/* $(INSTALL_DIR)/koreader
|
||||
cp $(COMMON_DIR)/spinning_zsync $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(REMARKABLE_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate update package index file
|
||||
zipinfo -1 $(REMARKABLE_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(REMARKABLE_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip remarkable update for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar -I"gzip --rsyncable" -cah --no-recursion -f ../$(REMARKABLE_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
.PHONY: update
|
||||
31
make/sony-prstux.mk
Normal file
31
make/sony-prstux.mk
Normal file
@@ -0,0 +1,31 @@
|
||||
SONY_PRSTUX_DIR = $(PLATFORM_DIR)/sony-prstux
|
||||
SONY_PRSTUX_PACKAGE = koreader-sony-prstux$(KODEDUG_SUFFIX)-$(VERSION).zip
|
||||
SONY_PRSTUX_PACKAGE_OTA = koreader-sony-prstux$(KODEDUG_SUFFIX)-$(VERSION).targz
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f $(SONY_PRSTUX_PACKAGE)
|
||||
# Sony PRSTUX launching scripts
|
||||
cp $(SONY_PRSTUX_DIR)/*.sh $(INSTALL_DIR)/koreader
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && \
|
||||
zip -9 -r \
|
||||
../$(SONY_PRSTUX_PACKAGE) \
|
||||
koreader -x "koreader/resources/fonts/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate update package index file
|
||||
zipinfo -1 $(SONY_PRSTUX_PACKAGE) > \
|
||||
$(INSTALL_DIR)/koreader/ota/package.index
|
||||
echo "koreader/ota/package.index" >> $(INSTALL_DIR)/koreader/ota/package.index
|
||||
# update index file in zip package
|
||||
cd $(INSTALL_DIR) && zip -u ../$(SONY_PRSTUX_PACKAGE) \
|
||||
koreader/ota/package.index
|
||||
# make gzip sonyprstux update for zsync OTA update
|
||||
cd $(INSTALL_DIR) && \
|
||||
tar --hard-dereference -I"gzip --rsyncable" -cah --no-recursion -f ../$(SONY_PRSTUX_PACKAGE_OTA) \
|
||||
-T koreader/ota/package.index
|
||||
|
||||
.PHONY: update
|
||||
30
make/ubuntu-touch.mk
Normal file
30
make/ubuntu-touch.mk
Normal file
@@ -0,0 +1,30 @@
|
||||
UBUNTUTOUCH_DIR = $(PLATFORM_DIR)/ubuntu-touch
|
||||
UBUNTUTOUCH_SDL_DIR = $(UBUNTUTOUCH_DIR)/ubuntu-touch-sdl
|
||||
|
||||
update: all
|
||||
# ensure that the binaries were built for ARM
|
||||
file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1
|
||||
# remove old package if any
|
||||
rm -f koreader-ubuntu-touch-$(MACHINE)-$(VERSION).click
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.sh $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/manifest.json $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.apparmor $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.apparmor.openstore $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.desktop $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../$(UBUNTUTOUCH_DIR)/koreader.png $(INSTALL_DIR)/koreader
|
||||
ln -sf ../../../$(UBUNTUTOUCH_DIR)/libSDL2.so $(INSTALL_DIR)/koreader/libs
|
||||
# create new package
|
||||
cd $(INSTALL_DIR) && pwd && \
|
||||
zip -9 -r \
|
||||
../koreader-$(DIST)-$(MACHINE)-$(VERSION).zip \
|
||||
koreader -x "koreader/resources/fonts/*" "koreader/ota/*" \
|
||||
"koreader/resources/icons/src/*" "koreader/spec/*" \
|
||||
$(ZIP_EXCLUDE)
|
||||
# generate ubuntu touch click package
|
||||
rm -rf $(INSTALL_DIR)/tmp && mkdir -p $(INSTALL_DIR)/tmp
|
||||
cd $(INSTALL_DIR)/tmp && \
|
||||
unzip ../../koreader-$(DIST)-$(MACHINE)-$(VERSION).zip && \
|
||||
click build koreader && \
|
||||
mv *.click ../../koreader-$(DIST)-$(MACHINE)-$(VERSION).click
|
||||
|
||||
.PHONY: update
|
||||
Reference in New Issue
Block a user