Makefile 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. # Makefile script to generate AppImage for LOVE
  2. # Number of processor to use when compiling
  3. NUMBER_OF_PROCESSORS := $(shell nproc)
  4. # CPU architecture, defaults to host
  5. ARCH := $(shell uname -m)
  6. # CMake URL
  7. CMAKE_URL := https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1-linux-$(shell uname -m).sh
  8. # Project branches (for git-based projects)
  9. LOVE_BRANCH := main
  10. SDL2_BRANCH := release-2.0.22
  11. LUAJIT_BRANCH := v2.1
  12. OPENAL_BRANCH := 1.22.0
  13. BROTLI_BRANCH := v1.0.9
  14. ZLIB_BRANCH := v1.2.12
  15. # Project versions (for downloadable tars)
  16. LIBOGG_VERSION := 1.3.5
  17. LIBVORBIS_VERSION := 1.3.7
  18. LIBTHEORA_VERSION := 1.2.0alpha1
  19. LIBPNG_VERSION := 1.6.37
  20. FT_VERSION := 2.12.1
  21. BZIP2_VERSION := 1.0.8
  22. MPG123_VERSION := 1.29.3
  23. LIBMODPLUG_VERSION := 0.8.8.5
  24. # Output AppImage
  25. APPIMAGE_OUTPUT := love-$(LOVE_BRANCH).AppImage
  26. # Output tar
  27. TAR_OUTPUT := love-$(LOVE_BRANCH).tar.gz
  28. # No need to change anything beyond this line
  29. override INSTALLPREFIX := $(CURDIR)/installdir
  30. override CMAKE_PREFIX := $(CURDIR)/cmake
  31. CMAKE := $(CMAKE_PREFIX)/bin/cmake
  32. override CMAKE_OPTS := -DCMAKE_INSTALL_RPATH='$$ORIGIN/../lib' -DCMAKE_INSTALL_PREFIX=$(INSTALLPREFIX)
  33. override CONFIGURE := LDFLAGS="-Wl,-rpath,'\$$\$$ORIGIN/../lib' $$LDFLAGS" ../configure --prefix=$(INSTALLPREFIX)
  34. # CMake setup
  35. ifeq ($(SYSTEM_CMAKE),)
  36. cmake_install.sh:
  37. curl $(CURL_DOH_URL) -Lo cmake_install.sh $(CMAKE_URL)
  38. chmod u+x cmake_install.sh
  39. $(CMAKE): cmake_install.sh
  40. mkdir cmake
  41. bash cmake_install.sh --prefix=$(CMAKE_PREFIX) --skip-license
  42. touch $(CMAKE)
  43. else
  44. CMAKE := $(CURDIR)/cmakewrapper.sh
  45. $(CMAKE):
  46. which cmake
  47. echo $(shell which cmake) '$$@' > $(CMAKE)
  48. chmod u+x $(CMAKE)
  49. endif
  50. # cURL DoH URL
  51. ifneq ($(DOH_URL),)
  52. override CURL_DOH_URL := --doh-url $(DOH_URL)
  53. endif
  54. cmake: $(CMAKE)
  55. # AppImageTool
  56. appimagetool:
  57. curl $(CURL_DOH_URL) -Lo appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$(ARCH).AppImage
  58. chmod u+x appimagetool
  59. ifneq ($(QEMU),)
  60. # Extract the AppImageTool
  61. $(QEMU) ./appimagetool --appimage-extract
  62. endif
  63. # SDL2
  64. override SDL2_PATH := SDL2-$(SDL2_BRANCH)
  65. $(SDL2_PATH)/configure:
  66. git clone --depth 1 -b $(SDL2_BRANCH) https://github.com/libsdl-org/SDL $(SDL2_PATH)
  67. $(SDL2_PATH)/build/Makefile: $(SDL2_PATH)/configure
  68. mkdir -p $(SDL2_PATH)/build
  69. cd $(SDL2_PATH)/build && $(CONFIGURE) --disable-video-wayland
  70. installdir/lib/libSDL2.so: $(SDL2_PATH)/build/Makefile
  71. cd $(SDL2_PATH)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  72. strip installdir/lib/libSDL2.so
  73. # libogg
  74. override LIBOGG_FILE := libogg-$(LIBOGG_VERSION)
  75. $(LIBOGG_FILE).tar.gz:
  76. curl $(CURL_DOH_URL) -Lo $(LIBOGG_FILE).tar.gz http://downloads.xiph.org/releases/ogg/$(LIBOGG_FILE).tar.gz
  77. $(LIBOGG_FILE)/configure: $(LIBOGG_FILE).tar.gz
  78. tar xzf $(LIBOGG_FILE).tar.gz
  79. touch $(LIBOGG_FILE)/configure
  80. $(LIBOGG_FILE)/build/Makefile: $(LIBOGG_FILE)/configure
  81. mkdir -p $(LIBOGG_FILE)/build
  82. cd $(LIBOGG_FILE)/build && $(CONFIGURE)
  83. installdir/lib/libogg.so: $(LIBOGG_FILE)/build/Makefile
  84. cd $(LIBOGG_FILE)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  85. strip installdir/lib/libogg.so
  86. # libvorbis
  87. override LIBVORBIS_FILE := libvorbis-$(LIBVORBIS_VERSION)
  88. $(LIBVORBIS_FILE).tar.gz:
  89. curl $(CURL_DOH_URL) -Lo $(LIBVORBIS_FILE).tar.gz http://downloads.xiph.org/releases/vorbis/$(LIBVORBIS_FILE).tar.gz
  90. $(LIBVORBIS_FILE)/configure: $(LIBVORBIS_FILE).tar.gz
  91. tar xzf $(LIBVORBIS_FILE).tar.gz
  92. touch $(LIBVORBIS_FILE)/configure
  93. $(LIBVORBIS_FILE)/build/Makefile: $(LIBVORBIS_FILE)/configure installdir/lib/libogg.so
  94. mkdir -p $(LIBVORBIS_FILE)/build
  95. cd $(LIBVORBIS_FILE)/build && $(CONFIGURE)
  96. installdir/lib/libvorbis.so: $(LIBVORBIS_FILE)/build/Makefile
  97. cd $(LIBVORBIS_FILE)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  98. strip installdir/lib/libvorbis.so
  99. strip installdir/lib/libvorbisfile.so
  100. strip installdir/lib/libvorbisenc.so
  101. # libtheora
  102. override LIBTHEORA_FILE := libtheora-$(LIBTHEORA_VERSION)
  103. $(LIBTHEORA_FILE).tar.gz:
  104. curl $(CURL_DOH_URL) -Lo $(LIBTHEORA_FILE).tar.gz http://downloads.xiph.org/releases/theora/$(LIBTHEORA_FILE).tar.gz
  105. $(LIBTHEORA_FILE)/configure: $(LIBTHEORA_FILE).tar.gz
  106. tar xzf $(LIBTHEORA_FILE).tar.gz
  107. # Their config.guess and config.sub can't detect ARM64
  108. ifeq ($(ARCH),aarch64)
  109. curl $(CURL_DOH_URL) -o $(LIBTHEORA_FILE)/config.guess "https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD"
  110. chmod u+x $(LIBTHEORA_FILE)/config.guess
  111. curl $(CURL_DOH_URL) -o $(LIBTHEORA_FILE)/config.sub "https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD"
  112. chmod u+x $(LIBTHEORA_FILE)/config.sub
  113. endif
  114. touch $(LIBTHEORA_FILE)/configure
  115. $(LIBTHEORA_FILE)/build/Makefile: $(LIBTHEORA_FILE)/configure installdir/lib/libogg.so
  116. mkdir -p $(LIBTHEORA_FILE)/build
  117. cd $(LIBTHEORA_FILE)/build && $(CONFIGURE) --with-ogg=$(INSTALLPREFIX) --with-vorbis=$(INSTALLPREFIX) --disable-examples --disable-encode
  118. installdir/lib/libtheora.so: $(LIBTHEORA_FILE)/build/Makefile
  119. cd $(LIBTHEORA_FILE)/build && $(MAKE) install -j $(NUMBER_OF_PROCESSORS)
  120. strip installdir/lib/libtheora.so
  121. strip installdir/lib/libtheoradec.so
  122. strip installdir/lib/libtheoraenc.so
  123. # zlib
  124. override ZLIB_PATH := zlib-$(ZLIB_BRANCH)
  125. $(ZLIB_PATH)/configure:
  126. git clone --depth 1 -b $(ZLIB_BRANCH) https://github.com/madler/zlib $(ZLIB_PATH)
  127. $(ZLIB_PATH)/build/Makefile: $(ZLIB_PATH)/configure
  128. mkdir -p $(ZLIB_PATH)/build
  129. cd $(ZLIB_PATH)/build && $(CONFIGURE)
  130. installdir/lib/libz.so: $(ZLIB_PATH)/build/Makefile
  131. cd $(ZLIB_PATH)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  132. strip installdir/lib/libz.so
  133. # libpng
  134. override LIBPNG_FILE := libpng-$(LIBPNG_VERSION)
  135. $(LIBPNG_FILE).tar.gz:
  136. curl -Lo $(LIBPNG_FILE).tar.gz http://prdownloads.sourceforge.net/libpng/$(LIBPNG_FILE).tar.gz?download
  137. $(LIBPNG_FILE)/configure: $(LIBPNG_FILE).tar.gz
  138. tar xzf $(LIBPNG_FILE).tar.gz
  139. touch $(LIBPNG_FILE)/configure
  140. $(LIBPNG_FILE)/build/Makefile: $(LIBPNG_FILE)/configure installdir/lib/libz.so
  141. mkdir -p $(LIBPNG_FILE)/build
  142. cd $(LIBPNG_FILE)/build && LDFLAGS="-L$(INSTALLPREFIX)/lib" CFLAGS="-I$(INSTALLPREFIX)/include" CPPFLAGS="-I$(INSTALLPREFIX)/include" $(CONFIGURE)
  143. installdir/lib/libpng16.so: $(LIBPNG_FILE)/build/Makefile
  144. cd $(LIBPNG_FILE)/build && CFLAGS="-I$(INSTALLPREFIX)/include" $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  145. strip installdir/lib/libpng16.so
  146. # Brotli
  147. override BROTLI_PATH := brotli-$(BROTLI_BRANCH)
  148. $(BROTLI_PATH)/CMakeLists.txt:
  149. git clone --depth 1 -b $(BROTLI_BRANCH) https://github.com/google/brotli $(BROTLI_PATH)
  150. $(BROTLI_PATH)/build/CMakeCache.txt: $(CMAKE) $(BROTLI_PATH)/CMakeLists.txt
  151. $(CMAKE) -B$(BROTLI_PATH)/build -H$(BROTLI_PATH) $(CMAKE_OPTS)
  152. installdir/lib/libbrotlidec.so: $(BROTLI_PATH)/build/CMakeCache.txt
  153. $(CMAKE) --build $(BROTLI_PATH)/build --target install -j $(NUMBER_OF_PROCESSORS)
  154. strip installdir/lib/libbrotlicommon.so
  155. strip installdir/lib/libbrotlidec.so
  156. strip installdir/lib/libbrotlienc.so
  157. # OpenAL-soft
  158. override OPENAL_PATH := openal-soft-$(OPENAL_BRANCH)
  159. $(OPENAL_PATH)/CMakeLists.txt:
  160. git clone --depth 1 -b $(OPENAL_BRANCH) https://github.com/kcat/openal-soft $(OPENAL_PATH)
  161. $(OPENAL_PATH)/build/CMakeCache.txt: $(CMAKE) $(OPENAL_PATH)/CMakeLists.txt
  162. $(CMAKE) -B$(OPENAL_PATH)/build -H$(OPENAL_PATH) $(CMAKE_OPTS) -DALSOFT_EXAMPLES=0 -DALSOFT_BACKEND_SNDIO=0
  163. installdir/lib/libopenal.so: $(OPENAL_PATH)/build/CMakeCache.txt
  164. $(CMAKE) --build $(OPENAL_PATH)/build --target install -j $(NUMBER_OF_PROCESSORS)
  165. strip installdir/lib/libopenal.so
  166. # BZip2
  167. override BZIP2_FILE := bzip2-$(BZIP2_VERSION)
  168. $(BZIP2_FILE).tar.gz:
  169. curl $(CURL_DOH_URL) -Lo $(BZIP2_FILE).tar.gz https://sourceware.org/pub/bzip2/$(BZIP2_FILE).tar.gz
  170. $(BZIP2_FILE)/Makefile: $(BZIP2_FILE).tar.gz
  171. tar xzf $(BZIP2_FILE).tar.gz
  172. touch $(BZIP2_FILE)/Makefile
  173. installdir/bzip2installed.txt: $(BZIP2_FILE)/Makefile
  174. cd $(BZIP2_FILE) && $(MAKE) install -j$(NUMBER_OF_PROCESSORS) CFLAGS="-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64" LDFLAGS="-Wl,-rpath,'\$ORIGIN/../lib'" PREFIX=$(INSTALLPREFIX)
  175. touch installdir/bzip2installed.txt
  176. # FreeType
  177. override FT_FILE := freetype-$(FT_VERSION)
  178. $(FT_FILE).tar.gz:
  179. curl $(CURL_DOH_URL) -Lo $(FT_FILE).tar.gz https://download.savannah.gnu.org/releases/freetype/$(FT_FILE).tar.gz
  180. $(FT_FILE)/configure: $(FT_FILE).tar.gz
  181. tar xzf $(FT_FILE).tar.gz
  182. touch $(FT_FILE)/configure
  183. $(FT_FILE)/build/Makefile: $(FT_FILE)/configure installdir/bzip2installed.txt installdir/lib/libpng16.so installdir/lib/libz.so installdir/lib/libbrotlidec.so
  184. mkdir -p $(FT_FILE)/build
  185. cd $(FT_FILE)/build && CFLAGS="-I$(INSTALLPREFIX)/include" LDFLAGS="-Wl,-rpath,'\$$\$$ORIGIN/../lib' -L$(INSTALLPREFIX)/lib -Wl,--no-undefined" PKG_CONFIG_PATH=$(INSTALLPREFIX)/lib/pkgconfig ../configure --prefix=$(INSTALLPREFIX)
  186. installdir/lib/libfreetype.so: $(FT_FILE)/build/Makefile
  187. cd $(FT_FILE)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  188. strip installdir/lib/libfreetype.so
  189. # Mpg123
  190. override MPG123_FILE := mpg123-$(MPG123_VERSION)
  191. $(MPG123_FILE).tar.bz2:
  192. curl $(CURL_DOH_URL) -Lo $(MPG123_FILE).tar.bz2 https://www.mpg123.de/download/$(MPG123_FILE).tar.bz2
  193. $(MPG123_FILE)/configure: $(MPG123_FILE).tar.bz2
  194. tar xf $(MPG123_FILE).tar.bz2
  195. touch $(MPG123_FILE)/configure
  196. $(MPG123_FILE)/builddir/Makefile: $(MPG123_FILE)/configure
  197. mkdir -p $(MPG123_FILE)/builddir
  198. cd $(MPG123_FILE)/builddir && $(CONFIGURE)
  199. installdir/lib/libmpg123.so: $(MPG123_FILE)/builddir/Makefile
  200. cd $(MPG123_FILE)/builddir && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  201. strip installdir/lib/libmpg123.so
  202. # libmodplug
  203. override LIBMODPLUG_FILE := libmodplug-$(LIBMODPLUG_VERSION)
  204. $(LIBMODPLUG_FILE).tar.gz:
  205. curl $(CURL_DOH_URL) -Lo $(LIBMODPLUG_FILE).tar.gz http://sourceforge.net/projects/modplug-xmms/files/libmodplug/$(LIBMODPLUG_VERSION)/$(LIBMODPLUG_FILE).tar.gz/download
  206. $(LIBMODPLUG_FILE)/configure: $(LIBMODPLUG_FILE).tar.gz
  207. tar xzf $(LIBMODPLUG_FILE).tar.gz
  208. touch $(LIBMODPLUG_FILE)/configure
  209. $(LIBMODPLUG_FILE)/build/Makefile: $(LIBMODPLUG_FILE)/configure
  210. mkdir -p $(LIBMODPLUG_FILE)/build
  211. cd $(LIBMODPLUG_FILE)/build && $(CONFIGURE)
  212. installdir/lib/libmodplug.so: $(LIBMODPLUG_FILE)/build/Makefile
  213. cd $(LIBMODPLUG_FILE)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  214. # LuaJIT
  215. override LUAJIT_PATH := LuaJIT-$(LUAJIT_BRANCH)
  216. $(LUAJIT_PATH)/Makefile:
  217. git clone --depth 1 -b $(LUAJIT_BRANCH) https://github.com/LuaJIT/LuaJIT $(LUAJIT_PATH)
  218. installdir/lib/libluajit-5.1.so: $(LUAJIT_PATH)/Makefile
  219. cd $(LUAJIT_PATH) && LDFLAGS="-Wl,-rpath,'\$$\$$ORIGIN/../lib'" $(MAKE) amalg -j$(NUMBER_OF_PROCESSORS) PREFIX=/usr
  220. cd $(LUAJIT_PATH) && make install PREFIX=$(INSTALLPREFIX)
  221. cd $(LUAJIT_PATH) && make clean
  222. strip installdir/lib/libluajit-5.1.so
  223. strip installdir/bin/luaji*
  224. # LOVE
  225. override LOVE_PATH := love2d-$(LOVE_BRANCH)
  226. $(LOVE_PATH)/CMakeLists.txt:
  227. git clone --depth 1 -b $(LOVE_BRANCH) https://github.com/love2d/love $(LOVE_PATH)
  228. $(LOVE_PATH)/configure: $(LOVE_PATH)/CMakeLists.txt installdir/lib/libluajit-5.1.so installdir/lib/libmodplug.so installdir/lib/libmpg123.so installdir/lib/libfreetype.so installdir/lib/libopenal.so installdir/lib/libz.so installdir/lib/libtheora.so installdir/lib/libvorbis.so installdir/lib/libogg.so installdir/lib/libSDL2.so
  229. cd $(LOVE_PATH) && bash platform/unix/genmodules
  230. cp $(LOVE_PATH)/platform/unix/configure.ac $(LOVE_PATH) && cp $(LOVE_PATH)/platform/unix/Makefile.am $(LOVE_PATH)
  231. cd $(LOVE_PATH) && autoheader
  232. cd $(LOVE_PATH) && libtoolize --force
  233. cd $(LOVE_PATH) && aclocal -I $(INSTALLPREFIX)/share/aclocal
  234. cd $(LOVE_PATH) && autoconf -I$(INSTALLPREFIX)
  235. cd $(LOVE_PATH) && automake -a
  236. $(LOVE_PATH)/build/Makefile: $(LOVE_PATH)/configure
  237. mkdir -p $(LOVE_PATH)/build
  238. cd $(LOVE_PATH)/build && CFLAGS="-I$(INSTALLPREFIX)/include" PKG_CONFIG_PATH=$(INSTALLPREFIX)/lib/pkgconfig LDFLAGS="-Wl,-rpath,'\$$\$$ORIGIN/../lib' -L$(INSTALLPREFIX)/lib" ../configure --prefix=$(INSTALLPREFIX)
  239. installdir/bin/love: $(LOVE_PATH)/build/Makefile
  240. cd $(LOVE_PATH)/build && $(MAKE) install -j$(NUMBER_OF_PROCESSORS)
  241. strip installdir/bin/love
  242. -strip installdir/lib/liblove*
  243. installdir/love.sh: love.sh
  244. mkdir -p installdir
  245. cp love.sh installdir/love.sh
  246. touch installdir/love.sh
  247. installdir/AppRun: love.sh installdir/bin/love
  248. mkdir -p installdir
  249. cp love.sh installdir/AppRun
  250. installdir/love.desktop: $(LOVE_PATH)/platform/unix/love.desktop.in
  251. cat $(LOVE_PATH)/platform/unix/love.desktop.in | sed 's/@bindir@\///' > installdir/love.desktop
  252. installdir/love.svg: $(LOVE_PATH)/platform/unix/love.svg
  253. cp $(LOVE_PATH)/platform/unix/love.svg installdir/love.svg
  254. installdir/license.txt: $(LOVE_PATH)/license.txt
  255. cp $(LOVE_PATH)/license.txt installdir/license.txt
  256. appimage-prepare: installdir/AppRun installdir/love.desktop installdir/love.svg installdir/license.txt appimagetool
  257. mkdir -p installdir2/lib installdir2/bin
  258. cp installdir/AppRun installdir2/AppRun
  259. cp installdir/license.txt installdir2/license.txt
  260. cp installdir/love.desktop installdir2/love.desktop
  261. cp installdir/love.svg installdir2/love.svg
  262. cp -L installdir/bin/love installdir2/bin/love
  263. strip installdir2/bin/love
  264. patchelf --set-rpath '$$ORIGIN/../lib' installdir2/bin/love
  265. ldd installdir/bin/love | while read line; do \
  266. dll=`echo $$line | sed 's/\s.*//'`; \
  267. if [ -f installdir/lib/$$dll ]; then \
  268. cp -L installdir/lib/$$dll installdir2/lib/$$dll; \
  269. strip installdir2/lib/$$dll; \
  270. patchelf --set-rpath '$$ORIGIN/../lib' installdir2/lib/$$dll; \
  271. echo $$dll; \
  272. fi \
  273. done
  274. cp -r installdir/share installdir2/
  275. -rm -rf installdir2/share/aclocal
  276. -rm -rf installdir2/share/man
  277. -rm -rf installdir2/share/doc
  278. -rm -rf installdir2/share/openal
  279. $(TAR_OUTPUT): installdir/AppRun installdir/love.desktop installdir/love.svg installdir/license.txt appimagetool appimage-prepare
  280. cd installdir2; tar -cvzf ../$(TAR_OUTPUT) *
  281. $(APPIMAGE_OUTPUT): installdir/AppRun installdir/love.desktop installdir/love.svg installdir/license.txt appimagetool appimage-prepare
  282. ifeq ($(QEMU),)
  283. ./appimagetool installdir2 $(APPIMAGE_OUTPUT)
  284. else
  285. cd squashfs-root/usr/lib && ../../AppRun ../../../installdir2 ../../../$(APPIMAGE_OUTPUT)
  286. endif
  287. getdeps: $(CMAKE) appimagetool $(SDL2_PATH)/configure $(LIBOGG_FILE).tar.gz $(LIBVORBIS_FILE).tar.gz $(LIBTHEORA_FILE).tar.gz $(ZLIB_PATH)/configure $(LIBPNG_FILE).tar.gz $(BROTLI_PATH)/CMakeLists.txt $(BZIP2_FILE).tar.gz $(FT_FILE).tar.gz $(MPG123_FILE).tar.bz2 $(LIBMODPLUG_FILE).tar.gz $(LUAJIT_PATH)/Makefile $(LOVE_PATH)/CMakeLists.txt
  288. AppImage: $(APPIMAGE_OUTPUT)
  289. tar: $(TAR_OUTPUT)
  290. default: $(APPIMAGE_OUTPUT) $(TAR_OUTPUT)
  291. .DEFAULT_GOAL := default
  292. .PHONY := default getdeps cmake appimage-prepare AppImage tar