OpenWrt packages
Sign in or create your account | Project List | Help
OpenWrt packages Git Source Tree
Root/
| 1 | # |
| 2 | # Copyright (C) David Kuehling <dvdkhlng TA gmx TOD de> |
| 3 | # |
| 4 | # License GPLv2 or later. NO WARRANTY. |
| 5 | # |
| 6 | # OpenWRT package for the Allegro game and multimedia library |
| 7 | |
| 8 | # todo: |
| 9 | # |
| 10 | # * both shooter and skater try to load a demo.dat from /usr/bin. hack them to |
| 11 | # use usr/share subdirs? |
| 12 | # |
| 13 | # * similar problem with setup? |
| 14 | # |
| 15 | # * setup and shoot seem to need 8bpp video modes. can we hack them for |
| 16 | # 32bpp? Would it help to use a differnt video driver than just 'fbcon'? |
| 17 | # |
| 18 | include $(TOPDIR)/rules.mk |
| 19 | |
| 20 | PKG_NAME:=liballegro |
| 21 | PKG_VERSION:=4.4.2 |
| 22 | PKG_RELEASE:=3 |
| 23 | PKG_SOURCE:=allegro-$(PKG_VERSION).tar.gz |
| 24 | PKG_SOURCE_URL:=@SF/alleg/allegro/$(PKG_VERSION) |
| 25 | PKG_BUILD_DIR = $(BUILD_DIR)/allegro-$(PKG_VERSION) |
| 26 | HOST_BUILD_DIR = $(BUILD_DIR_HOST)/allegro-$(PKG_VERSION) |
| 27 | |
| 28 | PKG_MD5SUM:=4db71b0460fc99926ae91d223199c2e6 |
| 29 | PKG_INSTALL:=1 |
| 30 | |
| 31 | PKG_FIXUP:=libtool |
| 32 | PKG_REMOVE_FILES:= |
| 33 | |
| 34 | # PKG_BUILD_DEPENDS:=liballegro/host |
| 35 | |
| 36 | include $(INCLUDE_DIR)/host-build.mk |
| 37 | include $(INCLUDE_DIR)/package.mk |
| 38 | include $(INCLUDE_DIR)/cmake.mk |
| 39 | |
| 40 | define Package/liballegro/Default |
| 41 | SUBMENU:=Liballegro |
| 42 | SECTION:=libs |
| 43 | CATEGORY:=Libraries |
| 44 | TITLE:=The Allegro Game Programming Library |
| 45 | URL:=alleg.sf.net |
| 46 | # SUBMENU:=Editors |
| 47 | endef |
| 48 | |
| 49 | define Package/liballegro/Default/description |
| 50 | Allegro is a cross-platform library for computer games and multimedia |
| 51 | programming. |
| 52 | endef |
| 53 | |
| 54 | define Package/liballegro |
| 55 | $(call Package/liballegro/Default) |
| 56 | DEPENDS:=+alsa-lib |
| 57 | TITLE+= (library) |
| 58 | endef |
| 59 | |
| 60 | define Package/liballegro/description |
| 61 | $(call Package/liballegro/Default/description) |
| 62 | This package contains the Allegro library |
| 63 | endef |
| 64 | |
| 65 | define Package/liballegro-data |
| 66 | $(call Package/liballegro/Default) |
| 67 | TITLE+= (data) |
| 68 | endef |
| 69 | |
| 70 | define Package/liballegro-data/description |
| 71 | $(call Package/liballegro/Default/description) |
| 72 | This package contains various data files that are used by the Allegro library. |
| 73 | endef |
| 74 | |
| 75 | define Package/liballegro-png |
| 76 | $(call Package/liballegro/Default) |
| 77 | TITLE+= (PNG image support) |
| 78 | DEPENDS:=+liballegro +zlib +libpng |
| 79 | endef |
| 80 | |
| 81 | define Package/liballegro-png/description |
| 82 | $(call Package/liballegro/Default/description) |
| 83 | This package contains the libloadpng addon that allows interfacing allegro |
| 84 | Bitmaps with PNG files. Although the name of the library suggests otherwise |
| 85 | saving to PNG is supported as well as loading PNG files. |
| 86 | endef |
| 87 | |
| 88 | # note: jpgalleg contains its own jpeg implementation; libjpeg not needed! |
| 89 | define Package/liballegro-jpeg |
| 90 | $(call Package/liballegro/Default) |
| 91 | TITLE+= (JPEG image support) |
| 92 | DEPENDS:=+liballegro |
| 93 | endef |
| 94 | |
| 95 | define Package/liballegro-jpeg/description |
| 96 | $(call Package/liballegro/Default/description) |
| 97 | This package contains the libjpgalleg addon that allows interfacing allegro |
| 98 | Bitmaps with JPEG files. Saving to JPEG files is supported as well as loading. |
| 99 | endef |
| 100 | |
| 101 | define Package/liballegro-ogg |
| 102 | $(call Package/liballegro/Default) |
| 103 | TITLE+= (Ogg/Vorbis audio support) |
| 104 | DEPENDS:=+liballegro +libvorbisidec +libogg |
| 105 | endef |
| 106 | |
| 107 | define Package/liballegro-ogg/description |
| 108 | $(call Package/liballegro/Default/description) |
| 109 | This package contains the liblogg addon that allows play-back and mixing of |
| 110 | background music from Ogg Vorbis audio files. |
| 111 | endef |
| 112 | |
| 113 | define Package/liballegro-demo |
| 114 | $(call Package/liballegro/Default) |
| 115 | TITLE+= (demo) |
| 116 | DEPENDS:=+liballegro |
| 117 | endef |
| 118 | |
| 119 | define Package/liballegro-demo/description |
| 120 | $(call Package/liballegro/Default/description) |
| 121 | This package contains the Allegro demo game. |
| 122 | endef |
| 123 | |
| 124 | define Package/liballegro-setup |
| 125 | $(call Package/liballegro/Default) |
| 126 | TITLE+= (setup) |
| 127 | DEPENDS:=+liballegro |
| 128 | endef |
| 129 | |
| 130 | define Package/liballegro-setup/description |
| 131 | $(call Package/liballegro/Default/description) |
| 132 | This package contains the Allegro setup program |
| 133 | endef |
| 134 | |
| 135 | define Package/liballegro-examples |
| 136 | $(call Package/liballegro/Default) |
| 137 | TITLE+= (examples) |
| 138 | DEPENDS:=+liballegro |
| 139 | endef |
| 140 | |
| 141 | define Package/liballegro-examples/description |
| 142 | $(call Package/liballegro/Default/description) |
| 143 | This package contains the Allegro example programs named "ex*" |
| 144 | endef |
| 145 | |
| 146 | define Package/liballegro-utils |
| 147 | $(call Package/liballegro/Default) |
| 148 | TITLE+= (utils) |
| 149 | DEPENDS:=+liballegro +PACKAGE_liballegro-jpeg:liballegro-jpeg |
| 150 | endef |
| 151 | |
| 152 | define Package/liballegro-utils/description |
| 153 | $(call Package/liballegro/Default/description) |
| 154 | This package contains the setup and test tool that ship with Allegro. |
| 155 | endef |
| 156 | |
| 157 | HOST_CONFIGURE_ARGS += |
| 158 | CONFIGURE_ARGS += |
| 159 | |
| 160 | TARGET_CPPFLAGS += |
| 161 | |
| 162 | define Build/Prepare |
| 163 | $(call Build/Prepare/Default) |
| 164 | endef |
| 165 | |
| 166 | HOST_CMAKE_FLAGS= \ |
| 167 | -DCMAKE_INSTALL_PREFIX=$(STAGING_DIR_HOST) \ |
| 168 | -DRT_LIBRARY= \ |
| 169 | -DDL_LIBRARY= \ |
| 170 | -DWANT_TOOLS=on \ |
| 171 | -DWANT_TESTS=off \ |
| 172 | -DWANT_MODULES=off \ |
| 173 | -DWANT_EXAMPLES=off \ |
| 174 | -DWANT_ALLEGROGL=off \ |
| 175 | -DWANT_LOADPNG=off \ |
| 176 | -DWANT_LOGG=off \ |
| 177 | -DWANT_JPGALLEG=off \ |
| 178 | -DWANT_X11=off \ |
| 179 | -DWANT_LINUX_CONSOLE=on \ |
| 180 | -DWANT_LINUX_FBCON=off \ |
| 181 | -DWANT_LINUX_VGA=off \ |
| 182 | -DWANT_LINUX_SVGALIB=off \ |
| 183 | -DWANT_ALSA=off \ |
| 184 | -DWANT_OSS=off \ |
| 185 | -DWANT_JACK=off \ |
| 186 | -DWANT_SGIAUDIO=off |
| 187 | |
| 188 | define Host/Configure |
| 189 | cd $(HOST_BUILD_DIR) && cmake $(HOST_CMAKE_FLAGS) . |
| 190 | endef |
| 191 | |
| 192 | ## On the host, we only need to compile the allegro develpment tools: |
| 193 | ## dat&friends |
| 194 | define Host/Compile |
| 195 | $(call Host/Compile/Default, VERBOSE=1 -j4) |
| 196 | endef |
| 197 | |
| 198 | define Host/Install |
| 199 | $(call Host/Install/Default) |
| 200 | # $(INSTALL_BIN) $(HOST_BUILD_DIR)/lib-src/make-docfile $(STAGING_DIR_HOST)/bin/liballegro-make-docfile |
| 201 | # $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/prefix-args $(STAGING_DIR_HOST)/bin/liballegro-prefix-args |
| 202 | endef |
| 203 | |
| 204 | # workaround for cmake.mk bug |
| 205 | ifneq ($(CONFIG_CCACHE),) |
| 206 | CMAKE_C_COMPILER:=ccache |
| 207 | CMAKE_CXX_COMPILER:=ccache |
| 208 | endif |
| 209 | |
| 210 | EXTRA_CFLAGS = -DSETUP_SCREEN_W=320 -DSETUP_SCREEN_H=240 -DSETUP_CFG_FILE=\\\"/etc/allegrorc\\\" |
| 211 | TARGET_LDFLAGS = -L$(STAGING_DIR)/usr/lib -ldl -lrt |
| 212 | |
| 213 | CMAKE_OPTIONS = \ |
| 214 | -DRT_LIBRARY= \ |
| 215 | -DALLEGRO_USE_CONSTRUCTOR_EXITCODE=0 \ |
| 216 | -DRT_LIBRARY= \ |
| 217 | -DDL_LIBRARY= \ |
| 218 | -DWANT_TOOLS=on \ |
| 219 | -DWANT_TESTS=on \ |
| 220 | -DWANT_MODULES=on \ |
| 221 | -DWANT_EXAMPLES=on \ |
| 222 | -DWANT_ALLEGROGL=off \ |
| 223 | -DWANT_X11=off \ |
| 224 | -DWANT_LINUX_CONSOLE=on \ |
| 225 | -DWANT_LINUX_FBCON=on \ |
| 226 | -DWANT_LINUX_VGA=off \ |
| 227 | -DWANT_LINUX_SVGALIB=off \ |
| 228 | -DWANT_ALSA=on \ |
| 229 | -DWANT_OSS=off \ |
| 230 | -DWANT_JACK=off \ |
| 231 | -DWANT_SGIAUDIO=off \ |
| 232 | -DWANT_LOADPNG=$(if $(CONFIG_PACKAGE_liballegro-png),on,off) \ |
| 233 | -DWANT_JPGALLEG=$(if $(CONFIG_PACKAGE_liballegro-jpeg),on,off) \ |
| 234 | -DWANT_LOGG=$(if $(CONFIG_PACKAGE_liballegro-ogg),on,off) |
| 235 | |
| 236 | # todo: patch CMakeLists.txt to force addons to be compiled as shared libs? |
| 237 | # -DADDON_LINKAGE=SHARED |
| 238 | |
| 239 | MAKE_FLAGS += -j4 |
| 240 | |
| 241 | define Build/Configure |
| 242 | $(call Build/Configure/Default) |
| 243 | endef |
| 244 | |
| 245 | define Build/Compile |
| 246 | $(call Build/Compile/Default) |
| 247 | $(call Build/Compile/Default -C PKG_BUILD_DIR) |
| 248 | # ln -sf $(STAGING_DIR_HOST)/bin/liballegro-make-docfile $(PKG_BUILD_DIR)/lib-src/make-docfile |
| 249 | endef |
| 250 | |
| 251 | define Build/Install |
| 252 | $(call Build/Install/Default) |
| 253 | #$(INSTALL_DATA) ./files/... $(PKG_INSTALL_DIR)/usr/share/.. |
| 254 | endef |
| 255 | |
| 256 | define Build/InstallDev |
| 257 | $(INSTALL_DIR) $(1)/usr/include/ |
| 258 | $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ |
| 259 | |
| 260 | $(INSTALL_DIR) $(1)/usr/lib |
| 261 | $(INSTALL_DIR) $(1)/usr/lib/pkgconfig |
| 262 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* \ |
| 263 | $(1)/usr/lib/ |
| 264 | -$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.a \ |
| 265 | $(1)/usr/lib/ |
| 266 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \ |
| 267 | $(1)/usr/lib/pkgconfig/ |
| 268 | # $(SED) 's,-I$$$${includedir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc |
| 269 | # $(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc |
| 270 | endef |
| 271 | |
| 272 | define Package/liballegro/install |
| 273 | $(INSTALL_DIR) $(1)/usr/lib $(1)/etc |
| 274 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/liballeg* $(1)/usr/lib/ |
| 275 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/allegro $(1)/usr/lib/ |
| 276 | $(CP) ./files/allegrorc $(1)/etc/ |
| 277 | endef |
| 278 | |
| 279 | define Package/liballegro-data/install |
| 280 | $(INSTALL_DIR) $(1)/usr/share/allegro |
| 281 | $(CP) $(PKG_BUILD_DIR)/{keyboard.dat,language.dat} $(1)/usr/share/allegro |
| 282 | # readme file is used by the allegro 'shooter' demo |
| 283 | $(INSTALL_DIR) $(1)/usr/share/allegro/docs/{txt,src} |
| 284 | $(CP) $(PKG_BUILD_DIR)/docs/txt/readme.txt \ |
| 285 | $(1)/usr/share/allegro/docs/txt |
| 286 | $(CP) $(PKG_BUILD_DIR)/docs/src/thanks._tx \ |
| 287 | $(1)/usr/share/allegro/docs/src |
| 288 | endef |
| 289 | |
| 290 | define Package/liballegro-png/install |
| 291 | $(INSTALL_DIR) $(1)/usr/lib/ |
| 292 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/libloadpng* $(1)/usr/lib/ |
| 293 | endef |
| 294 | |
| 295 | define Package/liballegro-jpeg/install |
| 296 | $(INSTALL_DIR) $(1)/usr/lib/ |
| 297 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjpgalleg* $(1)/usr/lib/ |
| 298 | endef |
| 299 | |
| 300 | define Package/liballegro-ogg/install |
| 301 | $(INSTALL_DIR) $(1)/usr/lib/ |
| 302 | $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblogg* $(1)/usr/lib/ |
| 303 | endef |
| 304 | |
| 305 | define Package/liballegro-demo/install |
| 306 | $(INSTALL_DIR) $(1)/usr/bin |
| 307 | $(INSTALL_DIR) $(1)/usr/share/allegro |
| 308 | $(CP) $(PKG_BUILD_DIR)/demos/shooter/shooter $(1)/usr/bin/ |
| 309 | $(CP) $(PKG_BUILD_DIR)/demos/shooter/demo.dat $(1)/usr/share/allegro/shooter.dat |
| 310 | $(CP) $(PKG_BUILD_DIR)/demos/skater/skater $(1)/usr/bin/ |
| 311 | $(CP) $(PKG_BUILD_DIR)/demos/skater/demo.dat $(1)/usr/share/allegro/skater.dat |
| 312 | endef |
| 313 | |
| 314 | define Package/liballegro-setup/install |
| 315 | $(INSTALL_DIR) $(1)/usr/bin |
| 316 | $(INSTALL_DIR) $(1)/usr/share/allegro/ |
| 317 | $(CP) $(PKG_BUILD_DIR)/setup/setup $(1)/usr/bin/allegro-setup |
| 318 | $(CP) $(PKG_BUILD_DIR)/setup/setup.dat $(1)/usr/share/allegro/ |
| 319 | endef |
| 320 | |
| 321 | define Package/liballegro-examples/install |
| 322 | $(INSTALL_DIR) $(1)/usr/bin/allegro |
| 323 | $(CP) $(PKG_BUILD_DIR)/examples/* $(1)/usr/bin/allegro/ |
| 324 | rm $(1)/usr/bin/allegro/{*.c,*.h,*.txt,*.cmake} |
| 325 | rm -r $(1)/usr/bin/allegro/CMakeFiles |
| 326 | endef |
| 327 | |
| 328 | define Package/liballegro-utils/install |
| 329 | $(INSTALL_DIR) $(1)/usr/bin |
| 330 | $(CP) $(PKG_INSTALL_DIR)/usr/bin $(1)/usr |
| 331 | endef |
| 332 | |
| 333 | |
| 334 | $(eval $(call HostBuild)) |
| 335 | $(eval $(call BuildPackage,liballegro)) |
| 336 | $(eval $(call BuildPackage,liballegro-data)) |
| 337 | $(eval $(call BuildPackage,liballegro-png)) |
| 338 | $(eval $(call BuildPackage,liballegro-jpeg)) |
| 339 | $(eval $(call BuildPackage,liballegro-ogg)) |
| 340 | $(eval $(call BuildPackage,liballegro-demo)) |
| 341 | $(eval $(call BuildPackage,liballegro-setup)) |
| 342 | $(eval $(call BuildPackage,liballegro-examples)) |
| 343 | $(eval $(call BuildPackage,liballegro-utils)) |
| 344 | |
| 345 | |
| 346 | # The following comments configure the Emacs editor. Just ignore them. |
| 347 | # Local Variables: |
| 348 | # compile-command: "cd ~/src/nanonote/allegro-4.4.2 && ~/bin/quilt-export target && make -C ~/h/src/qi/openwrt-xburst package/liballegro/compile -j2 V=99" |
| 349 | # End: |
| 350 |
