From e8628206387fe592ea4cf0f1b8fe2ddc84ce39e4 Mon Sep 17 00:00:00 2001 From: HW Date: Wed, 7 Aug 2013 20:40:00 +0200 Subject: [PATCH 1/4] switch to new dynamic loading library build separate output directories are created per-architecture --- Makefile | 102 ++++++++++++++++++++++--------------------------------- 1 file changed, 41 insertions(+), 61 deletions(-) diff --git a/Makefile b/Makefile index 845b40bb5..3b8d60ac0 100644 --- a/Makefile +++ b/Makefile @@ -9,85 +9,67 @@ KOR_BASE=koreader-base VERSION=$(shell git describe HEAD) # subdirectory we use to build the installation bundle -INSTALL_DIR=koreader +INSTALL_DIR=koreader-$(MACHINE) -# subdirectory we use to setup emulation environment -EMU_DIR=emu - -# files to copy from main directory -LUA_FILES=reader.lua +# files to link from main directory +INSTALL_FILES=reader.lua frontend resources koreader.sh \ + koreader_kobo.sh defaults.lua \ + git-rev README.md COPYING # for gettext DOMAIN=koreader TEMPLATE_DIR=l10n/templates KOREADER_MISC_TOOL=../misc XGETTEXT_BIN=$(KOREADER_MISC_TOOL)/gettext/lua_xgettext.py -MO_DIR=i18n +MO_DIR=$(INSTALL_DIR)/koreader/i18n -all: $(KOR_BASE)/koreader-base $(KOR_BASE)/extr $(KOR_BASE)/sdcv mo fonts +all: mo $(KOR_BASE)/$(OUTPUT_DIR)/luajit + echo $(VERSION) > git-rev + rm -rf $(INSTALL_DIR) + mkdir -p $(INSTALL_DIR)/koreader + cp -rfL $(KOR_BASE)/$(OUTPUT_DIR)/* $(INSTALL_DIR)/koreader/ +ifdef EMULATE_READER + cp -f $(KOR_BASE)/ev_replay.py $(INSTALL_DIR)/koreader/ +endif + for f in $(INSTALL_FILES); do \ + ln -s ../../$$f $(INSTALL_DIR)/koreader/; \ + done + cp -rpL resources/fonts/* $(INSTALL_DIR)/koreader/fonts/ + mkdir $(INSTALL_DIR)/koreader/screenshots + mkdir $(INSTALL_DIR)/koreader/data/dict + mkdir $(INSTALL_DIR)/koreader/data/tessdata + mkdir $(INSTALL_DIR)/koreader/fonts/host + ln -s ../extensions $(INSTALL_DIR)/ + ln -s ../launchpad $(INSTALL_DIR)/ + # clean up + rm -rf $(INSTALL_DIR)/koreader/data/{cr3.ini,cr3skin-format.txt,desktop,devices,manual} + rm $(INSTALL_DIR)/koreader/fonts/droid/DroidSansFallbackFull.ttf -$(KOR_BASE)/koreader-base $(KOR_BASE)/extr $(KOR_BASE)/sdcv: - make -C $(KOR_BASE) koreader-base extr sdcv +$(KOR_BASE)/$(OUTPUT_DIR)/luajit: koreader-base +$(KOR_BASE)/$(OUTPUT_DIR)/extr: koreader-base + +koreader-base: + $(MAKE) -C $(KOR_BASE) fetchthirdparty: git submodule init git submodule update - make -C $(KOR_BASE) fetchthirdparty + $(MAKE) -C $(KOR_BASE) fetchthirdparty clean: - make -C $(KOR_BASE) clean - -cleanthirdparty: - make -C $(KOR_BASE) cleanthirdparty - -bootstrapemu: - test -d $(EMU_DIR) || mkdir $(EMU_DIR) - test -d $(EMU_DIR)/libs-emu || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/libs-emu ./) - test -d $(EMU_DIR)/fonts || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/fonts ./) - test -d $(EMU_DIR)/data || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/data ./) - test -d $(EMU_DIR)/frontend || (cd $(EMU_DIR) && ln -s ../frontend ./) - test -d $(EMU_DIR)/resources || (cd $(EMU_DIR) && ln -s ../resources ./) - test -e $(EMU_DIR)/koreader-base || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/koreader-base ./) - test -e $(EMU_DIR)/extr || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/extr ./) - test -e $(EMU_DIR)/sdcv || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/sdcv ./) - test -e $(EMU_DIR)/reader.lua || (cd $(EMU_DIR) && ln -s ../reader.lua ./) - test -e $(EMU_DIR)/defaults.lua || (cd $(EMU_DIR) && ln -s ../defaults.lua ./) - test -e $(EMU_DIR)/history || (mkdir $(EMU_DIR)/history) - test -e $(EMU_DIR)/$(MO_DIR) || (cd $(EMU_DIR) && ln -s ../$(MO_DIR) ./) - test -e $(EMU_DIR)/ev_replay.py || (cd $(EMU_DIR) && ln -s ../$(KOR_BASE)/ev_replay.py ./) - test -e $(EMU_DIR)/defaults.lua || (cd $(EMU_DIR) && ln -s ../defaults.lua ./) + $(MAKE) -C $(KOR_BASE) clean customupdate: all # ensure that the binaries were built for ARM - file $(KOR_BASE)/koreader-base | grep ARM || exit 1 - file $(KOR_BASE)/extr | grep ARM || exit 1 - # remove old package and dir if any + file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1 + # remove old package if any rm -f koreader-$(VERSION).zip - rm -rf $(INSTALL_DIR) - # create new dir for package - mkdir -p $(INSTALL_DIR)/{history,screenshots,clipboard,libs} - cp -p README.md COPYING $(KOR_BASE)/{koreader-base,extr,sdcv} koreader.sh koreader_kobo.sh $(LUA_FILES) $(INSTALL_DIR) - $(STRIP) --strip-unneeded $(INSTALL_DIR)/koreader-base $(INSTALL_DIR)/extr $(INSTALL_DIR)/sdcv - mkdir $(INSTALL_DIR)/data $(INSTALL_DIR)/data/dict $(INSTALL_DIR)/data/tessdata - cp -L koreader-base/$(DJVULIB) $(KOR_BASE)/$(CRELIB) \ - $(KOR_BASE)/$(LUALIB) $(KOR_BASE)/$(K2PDFOPTLIB) \ - $(KOR_BASE)/$(LEPTONICALIB) $(KOR_BASE)/$(TESSERACTLIB) \ - $(INSTALL_DIR)/libs - $(STRIP) --strip-unneeded $(INSTALL_DIR)/libs/* - cp -rpL $(KOR_BASE)/data/*.css $(INSTALL_DIR)/data - cp -rpL $(KOR_BASE)/data/hyph $(INSTALL_DIR)/data/hyph - cp -rpL $(KOR_BASE)/fonts $(INSTALL_DIR) - cp -rp $(MO_DIR) $(INSTALL_DIR) - rm $(INSTALL_DIR)/fonts/droid/DroidSansFallbackFull.ttf - echo $(VERSION) > git-rev - cp -r git-rev resources $(INSTALL_DIR) - rm -r $(INSTALL_DIR)/resources/fonts - cp -rpL frontend $(INSTALL_DIR) - cp defaults.lua $(INSTALL_DIR) - mkdir $(INSTALL_DIR)/fonts/host - zip -9 -r koreader-$(VERSION).zip $(INSTALL_DIR) launchpad/ extensions/ - rm -rf $(INSTALL_DIR) + # create new package + cd $(INSTALL_DIR) && \ + zip -9 -r \ + ../koreader-$(MACHINE)-$(VERSION).zip * \ + -x "koreader/resources/fonts/*" # @TODO write an installation script for KUAL (houqp) @@ -103,5 +85,3 @@ mo: msgfmt -o $(MO_DIR)/$$lingua/LC_MESSAGES/$$resource.mo $$po ; \ done -fonts: - cp -rpL resources/fonts/* $(KOR_BASE)/fonts From 5eeb4380e4b9712ac9bb5908ed3c6feff1a393a1 Mon Sep 17 00:00:00 2001 From: HW Date: Wed, 7 Aug 2013 21:58:15 +0200 Subject: [PATCH 2/4] small fixes --- Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 3b8d60ac0..42fa72b3c 100644 --- a/Makefile +++ b/Makefile @@ -26,22 +26,21 @@ MO_DIR=$(INSTALL_DIR)/koreader/i18n all: mo $(KOR_BASE)/$(OUTPUT_DIR)/luajit echo $(VERSION) > git-rev - rm -rf $(INSTALL_DIR) mkdir -p $(INSTALL_DIR)/koreader cp -rfL $(KOR_BASE)/$(OUTPUT_DIR)/* $(INSTALL_DIR)/koreader/ ifdef EMULATE_READER cp -f $(KOR_BASE)/ev_replay.py $(INSTALL_DIR)/koreader/ endif for f in $(INSTALL_FILES); do \ - ln -s ../../$$f $(INSTALL_DIR)/koreader/; \ + ln -sf ../../$$f $(INSTALL_DIR)/koreader/; \ done cp -rpL resources/fonts/* $(INSTALL_DIR)/koreader/fonts/ - mkdir $(INSTALL_DIR)/koreader/screenshots - mkdir $(INSTALL_DIR)/koreader/data/dict - mkdir $(INSTALL_DIR)/koreader/data/tessdata - mkdir $(INSTALL_DIR)/koreader/fonts/host - ln -s ../extensions $(INSTALL_DIR)/ - ln -s ../launchpad $(INSTALL_DIR)/ + mkdir -p $(INSTALL_DIR)/koreader/screenshots + mkdir -p $(INSTALL_DIR)/koreader/data/dict + mkdir -p $(INSTALL_DIR)/koreader/data/tessdata + mkdir -p $(INSTALL_DIR)/koreader/fonts/host + ln -sf ../extensions $(INSTALL_DIR)/ + ln -sf ../launchpad $(INSTALL_DIR)/ # clean up rm -rf $(INSTALL_DIR)/koreader/data/{cr3.ini,cr3skin-format.txt,desktop,devices,manual} rm $(INSTALL_DIR)/koreader/fonts/droid/DroidSansFallbackFull.ttf @@ -58,13 +57,14 @@ fetchthirdparty: $(MAKE) -C $(KOR_BASE) fetchthirdparty clean: + rm -rf $(INSTALL_DIR) $(MAKE) -C $(KOR_BASE) clean customupdate: 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-$(VERSION).zip + rm -f koreader-$(MACHINE)-$(VERSION).zip # create new package cd $(INSTALL_DIR) && \ zip -9 -r \ From 62a2c6738dcf958cd123ddf4ac4b27a68cc8a24d Mon Sep 17 00:00:00 2001 From: HW Date: Thu, 15 Aug 2013 15:55:50 +0200 Subject: [PATCH 3/4] consolidated Makefile, adapted to dynlib approach --- Makefile | 64 +++++++++++++++++++------------------------------------- 1 file changed, 21 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index 98d57980c..cc974d96d 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,7 @@ KOR_BASE=koreader-base VERSION=$(shell git describe HEAD) # subdirectory we use to build the installation bundle -INSTALL_DIR=koreader -INSTALL_DIR_KOBO=mnt/onboard/.kobo +INSTALL_DIR=koreader-$(MACHINE) # files to link from main directory INSTALL_FILES=reader.lua frontend resources koreader.sh \ @@ -25,7 +24,7 @@ XGETTEXT_BIN=$(KOREADER_MISC_TOOL)/gettext/lua_xgettext.py MO_DIR=$(INSTALL_DIR)/koreader/i18n -all: mo $(KOR_BASE)/$(OUTPUT_DIR)/luajit +all: $(KOR_BASE)/$(OUTPUT_DIR)/luajit mo echo $(VERSION) > git-rev mkdir -p $(INSTALL_DIR)/koreader cp -rfL $(KOR_BASE)/$(OUTPUT_DIR)/* $(INSTALL_DIR)/koreader/ @@ -40,16 +39,19 @@ endif mkdir -p $(INSTALL_DIR)/koreader/data/dict mkdir -p $(INSTALL_DIR)/koreader/data/tessdata mkdir -p $(INSTALL_DIR)/koreader/fonts/host + # Kindle startup ln -sf ../extensions $(INSTALL_DIR)/ ln -sf ../launchpad $(INSTALL_DIR)/ + # Kobo startup + mkdir -p $(INSTALL_DIR)/kobo/mnt/onboard/.kobo + ln -sf ../../../../../fmon $(INSTALL_DIR)/kobo/mnt/onboard/.kobo/ + ln -sf ../../../../resources/koreader.png $(INSTALL_DIR)/kobo/mnt/onboard/ + cd $(INSTALL_DIR)/kobo && tar -czhf ../KoboRoot.tgz mnt # clean up rm -rf $(INSTALL_DIR)/koreader/data/{cr3.ini,cr3skin-format.txt,desktop,devices,manual} rm $(INSTALL_DIR)/koreader/fonts/droid/DroidSansFallbackFull.ttf -$(KOR_BASE)/$(OUTPUT_DIR)/luajit: koreader-base -$(KOR_BASE)/$(OUTPUT_DIR)/extr: koreader-base - -koreader-base: +$(KOR_BASE)/$(OUTPUT_DIR)/luajit: $(MAKE) -C $(KOR_BASE) fetchthirdparty: @@ -65,50 +67,26 @@ customupdate: 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-$(MACHINE)-$(VERSION).zip + rm -f koreader-kindle-$(MACHINE)-$(VERSION).zip # create new package cd $(INSTALL_DIR) && \ zip -9 -r \ - ../koreader-$(MACHINE)-$(VERSION).zip * \ + ../koreader-kindle-$(MACHINE)-$(VERSION).zip \ + extensions koreader launchpad \ -x "koreader/resources/fonts/*" # @TODO write an installation script for KUAL (houqp) koboupdate: all # ensure that the binaries were built for ARM - file $(KOR_BASE)/koreader-base | grep ARM || exit 1 - file $(KOR_BASE)/extr | grep ARM || exit 1 - # remove old package and dir if any - rm -f koreader-kobo-$(VERSION).zip - rm -rf $(INSTALL_DIR) - # create new dir for package - mkdir -p $(INSTALL_DIR)/{history,screenshots,clipboard,libs} - cp -p README.md COPYING $(KOR_BASE)/{koreader-base,extr,sdcv} koreader.sh koreader_kobo.sh $(LUA_FILES) $(INSTALL_DIR) - $(STRIP) --strip-unneeded $(INSTALL_DIR)/koreader-base $(INSTALL_DIR)/extr $(INSTALL_DIR)/sdcv - mkdir $(INSTALL_DIR)/data $(INSTALL_DIR)/data/dict $(INSTALL_DIR)/data/tessdata - cp -L koreader-base/$(DJVULIB) $(KOR_BASE)/$(CRELIB) \ - $(KOR_BASE)/$(LUALIB) $(KOR_BASE)/$(K2PDFOPTLIB) \ - $(KOR_BASE)/$(LEPTONICALIB) $(KOR_BASE)/$(TESSERACTLIB) \ - $(INSTALL_DIR)/libs - $(STRIP) --strip-unneeded $(INSTALL_DIR)/libs/* - cp -rpL $(KOR_BASE)/data/*.css $(INSTALL_DIR)/data - cp -rpL $(KOR_BASE)/data/hyph $(INSTALL_DIR)/data/hyph - cp -rpL $(KOR_BASE)/fonts $(INSTALL_DIR) - cp -rp $(MO_DIR) $(INSTALL_DIR) - rm $(INSTALL_DIR)/fonts/droid/DroidSansFallbackFull.ttf - echo $(VERSION) > git-rev - cp -r git-rev resources $(INSTALL_DIR) - rm -r $(INSTALL_DIR)/resources/fonts - cp -rpL frontend $(INSTALL_DIR) - cp defaults.lua $(INSTALL_DIR) - mkdir $(INSTALL_DIR)/fonts/host - mkdir -p $(INSTALL_DIR_KOBO)/fmon - cp -rpL fmon $(INSTALL_DIR_KOBO) - cp -p resources/koreader.png $(INSTALL_DIR_KOBO)/.. - tar -zcvf KoboRoot.tgz mnt/ - zip -9 -r koreader-kobo-$(VERSION).zip $(INSTALL_DIR) KoboRoot.tgz - rm KoboRoot.tgz - rm -rf mnt/ - rm -rf $(INSTALL_DIR) + file $(INSTALL_DIR)/koreader/luajit | grep ARM || exit 1 + # remove old package if any + rm -f koreader-kobo-$(MACHINE)-$(VERSION).zip + # create new package + cd $(INSTALL_DIR) && \ + zip -9 -r \ + ../koreader-kobo-$(MACHINE)-$(VERSION).zip \ + KoboRoot.tgz koreader \ + -x "koreader/resources/fonts/*" pot: $(XGETTEXT_BIN) reader.lua `find frontend -iname "*.lua"` \ From 8d71e110c3372ad5f3517e58d7f46a50eaf2a5bc Mon Sep 17 00:00:00 2001 From: HW Date: Thu, 15 Aug 2013 15:57:10 +0200 Subject: [PATCH 4/4] update koreader-base submodule --- koreader-base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/koreader-base b/koreader-base index 2dfda0da6..94e558612 160000 --- a/koreader-base +++ b/koreader-base @@ -1 +1 @@ -Subproject commit 2dfda0da69b721c0145b174cf3e5fb578c2894e1 +Subproject commit 94e558612d6b82532f2444da449b9b66283551a8