Root/liballegro/Makefile

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#
18include $(TOPDIR)/rules.mk
19
20PKG_NAME:=liballegro
21PKG_VERSION:=4.4.2
22PKG_RELEASE:=1
23PKG_SOURCE:=allegro-$(PKG_VERSION).tar.gz
24PKG_SOURCE_URL:=@SF/alleg/allegro/$(PKG_VERSION)
25PKG_BUILD_DIR = $(BUILD_DIR)/allegro-$(PKG_VERSION)
26HOST_BUILD_DIR = $(BUILD_DIR_HOST)/allegro-$(PKG_VERSION)
27
28PKG_MD5SUM:=4db71b0460fc99926ae91d223199c2e6
29PKG_INSTALL:=1
30
31PKG_FIXUP:=libtool
32PKG_REMOVE_FILES:=
33
34# PKG_BUILD_DEPENDS:=liballegro/host
35
36include $(INCLUDE_DIR)/host-build.mk
37include $(INCLUDE_DIR)/package.mk
38include $(INCLUDE_DIR)/cmake.mk
39
40define 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
47endef
48
49define Package/liballegro/Default/description
50Allegro is a cross-platform library for computer games and multimedia
51programming.
52endef
53
54define Package/liballegro
55$(call Package/liballegro/Default)
56  DEPENDS:=+alsa-lib
57  TITLE+= (library)
58endef
59
60define Package/liballegro/description
61$(call Package/liballegro/Default/description)
62 This package contains the Allegro library
63endef
64
65define Package/liballegro-data
66$(call Package/liballegro/Default)
67  TITLE+= (data)
68endef
69
70define Package/liballegro-data/description
71$(call Package/liballegro/Default/description)
72 This package contains various data files that are used by the Allegro library.
73endef
74
75define Package/liballegro-demo
76$(call Package/liballegro/Default)
77  TITLE+= (demo)
78  DEPENDS:=+liballegro
79endef
80
81define Package/liballegro-demo/description
82$(call Package/liballegro/Default/description)
83 This package contains the Allegro demo game.
84endef
85
86define Package/liballegro-setup
87$(call Package/liballegro/Default)
88  TITLE+= (setup)
89  DEPENDS:=+liballegro
90endef
91
92define Package/liballegro-setup/description
93$(call Package/liballegro/Default/description)
94 This package contains the Allegro setup program
95endef
96
97define Package/liballegro-examples
98$(call Package/liballegro/Default)
99  TITLE+= (examples)
100  DEPENDS:=+liballegro
101endef
102
103define Package/liballegro-examples/description
104$(call Package/liballegro/Default/description)
105 This package contains the Allegro example programs named "ex*"
106endef
107
108define Package/liballegro-utils
109$(call Package/liballegro/Default)
110  TITLE+= (utils)
111endef
112
113define Package/liballegro-utils/description
114$(call Package/liballegro/Default/description)
115 This package contains the setup and test tool that ship with Allegro.
116endef
117
118HOST_CONFIGURE_ARGS +=
119CONFIGURE_ARGS +=
120
121TARGET_CPPFLAGS +=
122
123define Build/Prepare
124    $(call Build/Prepare/Default)
125endef
126
127HOST_CMAKE_FLAGS= \
128    -DCMAKE_INSTALL_PREFIX=$(STAGING_DIR_HOST) \
129    -DRT_LIBRARY= \
130    -DDL_LIBRARY= \
131    -DWANT_TOOLS=on \
132    -DWANT_TESTS=off \
133    -DWANT_MODULES=off \
134    -DWANT_EXAMPLES=off \
135    -DWANT_ALLEGROGL=off \
136    -DWANT_LOADPNG=off \
137    -DWANT_LOGG=off \
138    -DWANT_JPGALLEG=off \
139    -DWANT_X11=off \
140    -DWANT_LINUX_CONSOLE=on \
141    -DWANT_LINUX_FBCON=off \
142    -DWANT_LINUX_VGA=off \
143    -DWANT_LINUX_SVGALIB=off \
144    -DWANT_ALSA=off \
145    -DWANT_OSS=off \
146    -DWANT_JACK=off \
147    -DWANT_SGIAUDIO=off
148
149define Host/Configure
150    cd $(HOST_BUILD_DIR) && cmake $(HOST_CMAKE_FLAGS) .
151endef
152
153## On the host, we only need to compile the allegro develpment tools:
154## dat&friends
155define Host/Compile
156    $(call Host/Compile/Default, VERBOSE=1 -j4)
157endef
158
159define Host/Install
160    $(call Host/Install/Default)
161# $(INSTALL_BIN) $(HOST_BUILD_DIR)/lib-src/make-docfile $(STAGING_DIR_HOST)/bin/liballegro-make-docfile
162# $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/prefix-args $(STAGING_DIR_HOST)/bin/liballegro-prefix-args
163endef
164
165# workaround for cmake.mk bug
166ifneq ($(CONFIG_CCACHE),)
167  CMAKE_C_COMPILER:=ccache
168  CMAKE_CXX_COMPILER:=ccache
169endif
170
171EXTRA_CFLAGS = -DSETUP_SCREEN_W=320 -DSETUP_SCREEN_H=240 -DSETUP_CFG_FILE=\\\"/etc/allegrorc\\\"
172TARGET_LDFLAGS = -L$(STAGING_DIR)/usr/lib -ldl -lrt
173
174CMAKE_OPTIONS = \
175    -DRT_LIBRARY= \
176    -DALLEGRO_USE_CONSTRUCTOR_EXITCODE=0 \
177    -DRT_LIBRARY= \
178    -DDL_LIBRARY= \
179    -DWANT_TOOLS=on \
180    -DWANT_TESTS=on \
181    -DWANT_MODULES=on \
182    -DWANT_EXAMPLES=on \
183    -DWANT_ALLEGROGL=off \
184    -DWANT_LOADPNG=on \
185    -DWANT_LOGG=off \
186    -DWANT_JPGALLEG=off \
187    -DWANT_X11=off \
188    -DWANT_LINUX_CONSOLE=on \
189    -DWANT_LINUX_FBCON=on \
190    -DWANT_LINUX_VGA=off \
191    -DWANT_LINUX_SVGALIB=off \
192    -DWANT_ALSA=on \
193    -DWANT_OSS=off \
194    -DWANT_JACK=off \
195    -DWANT_SGIAUDIO=off
196
197MAKE_FLAGS += -j4
198
199define Build/Configure
200    $(call Build/Configure/Default)
201endef
202
203define Build/Compile
204    $(call Build/Compile/Default)
205    $(call Build/Compile/Default -C PKG_BUILD_DIR)
206# ln -sf $(STAGING_DIR_HOST)/bin/liballegro-make-docfile $(PKG_BUILD_DIR)/lib-src/make-docfile
207endef
208
209define Build/Install
210    $(call Build/Install/Default)
211    #$(INSTALL_DATA) ./files/... $(PKG_INSTALL_DIR)/usr/share/..
212endef
213
214define Build/InstallDev
215    $(INSTALL_DIR) $(1)/usr/include/
216    $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
217
218    $(INSTALL_DIR) $(1)/usr/lib
219    $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
220    $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* \
221        $(1)/usr/lib/
222    $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \
223        $(1)/usr/lib/pkgconfig/
224# $(SED) 's,-I$$$${includedir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc
225# $(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc
226endef
227
228define Package/liballegro/install
229    $(INSTALL_DIR) $(1)/usr $(1)/etc
230    $(CP) $(PKG_INSTALL_DIR)/usr/lib $(1)/usr
231    $(CP) ./files/allegrorc $(1)/etc/
232endef
233
234define Package/liballegro-data/install
235    $(INSTALL_DIR) $(1)/usr/share/allegro
236    $(CP) $(PKG_BUILD_DIR)/{keyboard.dat,language.dat} $(1)/usr/share/allegro
237        # readme file is used by the allegro 'shooter' demo
238    $(INSTALL_DIR) $(1)/usr/share/allegro/docs/{txt,src}
239    $(CP) $(PKG_BUILD_DIR)/docs/txt/readme.txt \
240        $(1)/usr/share/allegro/docs/txt
241    $(CP) $(PKG_BUILD_DIR)/docs/src/thanks._tx \
242        $(1)/usr/share/allegro/docs/src
243endef
244
245define Package/liballegro-demo/install
246    $(INSTALL_DIR) $(1)/usr/bin
247    $(INSTALL_DIR) $(1)/usr/share/allegro
248    $(CP) $(PKG_BUILD_DIR)/demos/shooter/shooter $(1)/usr/bin/
249    $(CP) $(PKG_BUILD_DIR)/demos/shooter/demo.dat $(1)/usr/share/allegro/shooter.dat
250    $(CP) $(PKG_BUILD_DIR)/demos/skater/skater $(1)/usr/bin/
251    $(CP) $(PKG_BUILD_DIR)/demos/skater/demo.dat $(1)/usr/share/allegro/skater.dat
252endef
253
254define Package/liballegro-setup/install
255    $(INSTALL_DIR) $(1)/usr/bin
256    $(INSTALL_DIR) $(1)/usr/share/allegro/
257    $(CP) $(PKG_BUILD_DIR)/setup/setup $(1)/usr/bin/allegro-setup
258    $(CP) $(PKG_BUILD_DIR)/setup/setup.dat $(1)/usr/share/allegro/
259endef
260
261define Package/liballegro-examples/install
262    $(INSTALL_DIR) $(1)/usr/bin/allegro
263    $(CP) $(PKG_BUILD_DIR)/examples/* $(1)/usr/bin/allegro/
264    rm $(1)/usr/bin/allegro/{*.c,*.h,*.txt,*.cmake}
265    rm -r $(1)/usr/bin/allegro/CMakeFiles
266endef
267
268define Package/liballegro-utils/install
269    $(INSTALL_DIR) $(1)/usr/bin
270    $(CP) $(PKG_INSTALL_DIR)/usr/bin $(1)/usr
271endef
272
273
274$(eval $(call HostBuild))
275$(eval $(call BuildPackage,liballegro))
276$(eval $(call BuildPackage,liballegro-data))
277$(eval $(call BuildPackage,liballegro-demo))
278$(eval $(call BuildPackage,liballegro-setup))
279$(eval $(call BuildPackage,liballegro-examples))
280$(eval $(call BuildPackage,liballegro-utils))
281
282
283# The following comments configure the Emacs editor. Just ignore them.
284# Local Variables:
285# compile-command: "make -C ~/h/src/qi/openwrt-xburst package/liballegro/compile -j2 V=99"
286# End:
287

Archive Download this file



interactive