removing some compiler warnings
[drnoksnes] / debian / rules
index 25ed292..5aa6940 100755 (executable)
@@ -13,6 +13,7 @@
 # from having to guess our platform (since we know it already)
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+ARCH                           ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
 # Determine Maemo version
 MAEMO_VERSION := $(shell cut -d"." -f1 /etc/maemo_version)
@@ -20,58 +21,95 @@ MAEMO_VERSION := $(shell cut -d"." -f1 /etc/maemo_version)
 # Determine app version from debian changelog
 GAME_VERSION := $(shell head -n 1 debian/changelog | sed 's/[^0-9.-]//g')
 
-CFLAGS = -Wall -g -DMAEMO -DMAEMO_VERSION=$(MAEMO_VERSION)
-LDFLAGS = -Wl,-z,defs
+# Default CFLAGS
+CFLAGS := -Wall -g -DMAEMO -DMAEMO_VERSION=$(MAEMO_VERSION)
+CXXFLAGS := -Wall -g -DMAEMO -DMAEMO_VERSION=$(MAEMO_VERSION)
+GUI_CFLAGS := -std=c99 -fPIC -shared $(CFLAGS)
+LDFLAGS := -Wl,-z,defs
+GUI_LDFLAGS := -export-dynamic -avoid-version -module -shared $(LDFLAGS)
+ASFLAGS := -g
 
+M4=m4
+M4DEFS=-DMAEMO_MAJOR=$(MAEMO_VERSION)
+
+# Architecture specific CFLAGS
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
-else ifneq (,$(findstring arm,$(DEB_BUILD_GNU_TYPE)))
-       CFLAGS += -O2
+       CXXFLAGS += -O0
+       GUI_CFLAGS += -O0
+else ifneq (,$(findstring armel,$(ARCH)))
+       CFLAGS += -O2 -ffast-math
+       CXXFLAGS += -O2 -ffast-math -fno-exceptions -fno-rtti
+       GUI_CFLAGS += -Os
        ifneq (,$(findstring vfp,$(DEB_BUILD_OPTIONS)))
                CFLAGS += -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp
+               ASFLAGS += -march=armv6j -mfpu=vfp -mfloat-abi=softfp
+       endif
+       ifeq ($(shell expr "$(MAEMO_VERSION)" "<" 5), 1)
+               # Fixes hang while exiting in Diablo.
+               CFLAGS += -static-libgcc
        endif
-       # Fixes hang while exiting on Diablo.
-       CFLAGS += -static-libgcc
-else # x86
-       crash ## Cannot build in x86
+else ifneq (,$(findstring i386,$(ARCH)))
+       CFLAGS += -O2 -ffast-math
+       CXXFLAGS += -O2 -ffast-math -fno-exceptions -fno-rtti
+       GUI_CFLAGS += -O2
+else
+       # Don't support anything else
+       crash
 endif
 
+debian/control: debian/control.m4
+       $(M4) $(M4DEFS) debian/control.m4 > debian/control
+
 configure: configure-stamp
 configure-stamp:
        dh_testdir
-       # Add here commands to configure the package.
-
+       $(M4) $(M4DEFS) debian/control.m4 > debian/control
+       $(M4) $(M4DEFS) debian/drnoksnes.postinst.m4 > debian/drnoksnes.postinst
+       
+       echo ARCH="$(ARCH)" > config.mk
+       echo CONF_GUI=1 >> config.mk
+ifeq ($(shell expr "$(MAEMO_VERSION)" ">" 4), 1)
+       # Maemo 5 devices do not support Xsp
+       # But they support hildon compositing stuff
+       echo CONF_HD=1 >> config.mk
+else
+       echo CONF_XSP=1 >> config.mk
+endif
+       echo CONF_ZEEMOTE=1 >> config.mk
+       echo ASFLAGS="$(ASFLAGS)" >> config.mk
+       echo CFLAGS="$(CFLAGS)" >> config.mk
+       echo CXXFLAGS="$(CXXFLAGS)" >> config.mk
+       echo LDFLAGS="$(LDFLAGS)" >> config.mk
+       
+       echo CONF_NLS=1 > gui/config.mk
+       echo CFLAGS="$(GUI_CFLAGS)" >> gui/config.mk
+       echo LDFLAGS="$(GUI_LDFLAGS)" >> gui/config.mk
+       echo MAEMO_VERSION="$(MAEMO_VERSION)" >> gui/config.mk
+       echo GAME_VERSION="$(GAME_VERSION)" >> gui/config.mk
+       
        touch configure-stamp
 
-
 build: build-stamp
-
 build-stamp: configure-stamp 
        dh_testdir
-
-       $(MAKE) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" GAME_VERSION="$(GAME_VERSION)"
-
+       $(MAKE)
        touch $@
 
 clean:
        dh_testdir
        dh_testroot
        rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
        -$(MAKE) clean
-
-       dh_clean 
+       rm -f config.mk gui/config.mk
+       dh_clean
 
 install: build
        dh_testdir
        dh_testroot
        dh_clean -k 
        dh_installdirs
-
-       # Add here commands to install the package into debian/drnoksnes.
-       $(MAKE) DESTDIR=$(CURDIR)/debian/drnoksnes install
-
+       $(MAKE) DESTDIR=$(CURDIR)/debian/drnoksnes GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
 
 # Build architecture-independent files here.
 binary-indep: build install
@@ -85,6 +123,9 @@ binary-arch: build install
 #      dh_installdocs
 #      dh_installexamples
 #      dh_installman
+       dh_gconf
+#      Fixes a nasty bug with dh_gconf & busybox
+       rm -f $(CURDIR)/debian/drnoksnes.postrm.debhelper
        dh_link
        dh_strip --dbg-package=drnoksnes-dbg
        dh_compress