mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-10 07:12:03 +00:00
172 lines
5.8 KiB
Makefile
172 lines
5.8 KiB
Makefile
#!/usr/bin/make -f
|
|
# -*- makefile -*-
|
|
|
|
#############################################################################
|
|
#
|
|
# GNU Make Debian package makefile for SRB2
|
|
#
|
|
# Copyright (C) 1998-2010 by Callum Dickinson
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version 2
|
|
# of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# This file most likely will not need to be modified to make
|
|
# branches of SRB2 capable of making their own Debian packages,
|
|
# instead look at the /debian/control file for configuration.
|
|
#
|
|
#############################################################################
|
|
|
|
#############################################################################
|
|
#
|
|
# !!!!!!!!!! DEPLOYER NOTE !!!!!!!!!!
|
|
#
|
|
# Variables to be templated are curly-braced ${PACKAGE_INSTALL_PATH}
|
|
# Variables used by the rules script are parenthese'd $(PKGDIR)
|
|
# See [repo-root]/debian_template.sh
|
|
#
|
|
#############################################################################
|
|
|
|
# Uncomment this to turn on verbose mode.
|
|
#export DH_VERBOSE=1
|
|
|
|
# user/group of to-be-installed files
|
|
ROOT_USER := 0
|
|
ROOT_GROUP := 0
|
|
|
|
# determine cross-compile (may need some work)
|
|
CROSS_COMPILE_BUILD := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
|
CROSS_COMPILE_HOST := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
|
CROSS_COMPILE := $(shell test "$(CROSS_COMPILE_BUILD)" != "$(CROSS_COMPILE_HOST)" && echo "$(CROSS_COMPILE_HOST)")
|
|
|
|
MKDIR = mkdir -p
|
|
MAKE = make
|
|
INSTALL = install -o $(ROOT_USER) -g $(ROOT_GROUP) -m 644
|
|
MV = mv
|
|
RM = rm -rf
|
|
STRIPARGS = --strip-unneeded
|
|
ifdef CROSS_COMPILE
|
|
STRIP = $(CROSS_COMPILE_HOST)-strip $(STRIPARGS)
|
|
else
|
|
STRIP = strip $(STRIPARGS)
|
|
endif
|
|
DIR := $(shell pwd)
|
|
|
|
# FIXME: hate hate hate head/tail hack :(
|
|
CONTROLF = $(DIR)/debian/control
|
|
PACKAGE = ${PACKAGE_NAME}
|
|
DBGPKG = ${PACKAGE}-dbg
|
|
TITLE = ${PROGRAM_NAME}
|
|
SECTION = Games/Action
|
|
EXENAME = ${PROGRAM_FILENAME}
|
|
DBGNAME = debug/$(EXENAME)
|
|
|
|
PKGDIR = $(shell echo "${PACKAGE_INSTALL_PATH}" | sed -e 's/^\///')
|
|
DBGDIR = usr/lib/debug/$(PKGDIR)
|
|
LINKDIR = $(shell echo "${PACKAGE_LINK_PATH}" | sed -e 's/^\///')
|
|
PIXMAPS_DIR = usr/share/pixmaps
|
|
DESKTOP_DIR = usr/share/applications
|
|
PREFIX = $(shell test "$(CROSS_COMPILE_BUILD)" != "$(CROSS_COMPILE_HOST)" && echo "PREFIX=$(CROSS_COMPILE_HOST)")
|
|
OS = LINUX=1
|
|
NONX86 = $(shell test "`echo $(CROSS_COMPILE_HOST) | grep 'i[3-6]86'`" || echo "NONX86=1")
|
|
MAKEARGS = $(OS) $(NONX86) $(PREFIX) EXENAME=$(EXENAME) DBGNAME=$(DBGNAME) NOOBJDUMP=1 # SDL_PKGCONFIG=sdl2 PNG_PKGCONFIG=libpng
|
|
MENUFILE1 = ?package($(PACKAGE)):needs="X11" section="$(SECTION)"
|
|
MENUFILE2 = title="$(TITLE)" command="/$(PKGDIR)/$(PACKAGE)"
|
|
BINDIR := $(DIR)/bin/Linux/Release
|
|
|
|
# FIXME pkg-config dir hacks
|
|
# Launchpad doesn't need this; it actually makes i386 builds fail due to cross-compile
|
|
# export PKG_CONFIG_LIBDIR = /usr/lib/$(CROSS_COMPILE_HOST)/pkgconfig
|
|
LDFLAGS += "-Wl,-rpath=/usr/lib/$(CROSS_COMPILE_HOST)"
|
|
|
|
# Some libgme-dev packages don't use pkg-config yet, so include the linker flag ourselves
|
|
PKG_CONFIG?=pkg-config
|
|
LIBGME_PKGCONFIG?=libgme
|
|
LIBGME_LDFLAGS?=$(shell $(PKG_CONFIG) $(LIBGME_PKGCONFIG) --libs)
|
|
|
|
ifeq ($(LIBGME_LDFLAGS),)
|
|
MAKEARGS += LIBGME_LDFLAGS=-lgme
|
|
endif
|
|
|
|
build:
|
|
$(MKDIR) $(BINDIR)/debug
|
|
$(MAKE) -C $(DIR)/src $(MAKEARGS)
|
|
$(STRIP) $(BINDIR)/$(EXENAME)
|
|
|
|
binary-indep:
|
|
# only here to kill Lintian warning
|
|
echo "no need to do any arch-independent stuff"
|
|
|
|
binary-arch:
|
|
# create ddirs
|
|
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(DBGDIR)
|
|
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(DESKTOP_DIR)
|
|
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(PIXMAPS_DIR)
|
|
# install main binaries
|
|
$(INSTALL) $(BINDIR)/$(EXENAME) $(DIR)/debian/tmp/$(PKGDIR)/$(PACKAGE)
|
|
$(INSTALL) $(BINDIR)/$(DBGNAME) $(DIR)/debian/tmp/$(DBGDIR)/$(PACKAGE)
|
|
# Install desktop file and banner image
|
|
$(INSTALL) $(DIR)/srb2.png $(DIR)/debian/tmp/usr/share/pixmaps/${PROGRAM_FILENAME}.png
|
|
$(INSTALL) $(DIR)/debian/srb2.desktop $(DIR)/debian/tmp/usr/share/applications/${PROGRAM_FILENAME}.desktop
|
|
# add compiled binaries to include-binaries
|
|
echo $(BINDIR)/$(EXENAME) >> $(DIR)/debian/source/include-binaries
|
|
echo $(BINDIR)/$(EXENAME) >> $(DIR)/debian/source/include-binaries
|
|
# Generate install folder files
|
|
echo $(PKGDIR) > $(DIR)/debian/$(PACKAGE).install
|
|
echo $(DESKTOP_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
|
echo $(PIXMAPS_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
|
echo $(DBGDIR) > $(DIR)/debian/$(DBGPKG).install
|
|
# Launchpad only calls binary-arch, so just move everything up
|
|
#binary: binary-arch
|
|
# Generate .desktop specifications
|
|
echo "`echo '$(MENUFILE1)\\'`" > $(DIR)/debian/menu
|
|
echo " `echo '$(MENUFILE2)'`" >> $(DIR)/debian/menu
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_installchangelogs
|
|
dh_installdocs
|
|
# dh_installexamples
|
|
dh_install --sourcedir=$(DIR)/debian/tmp
|
|
dh_installmenu
|
|
# dh_installdebconf
|
|
# dh_installlogrotate
|
|
# dh_installemacsen
|
|
# dh_installpam
|
|
# dh_installmime
|
|
# dh_python
|
|
# dh_installinit
|
|
# dh_installcron
|
|
# dh_installinfo
|
|
# dh_installman
|
|
dh_link $(PKGDIR)/$(EXENAME) $(LINKDIR)/$(EXENAME)
|
|
dh_compress
|
|
dh_fixperms
|
|
# dh_perl
|
|
# dh_makeshlibs
|
|
dh_installdeb
|
|
-dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
binary: binary-arch
|
|
|
|
clean:
|
|
$(MAKE) -C $(DIR)/src $(MAKEARGS) clean cleandep
|
|
$(RM) $(BINDIR)/*
|
|
$(RM) $(DIR)/debian/$(PACKAGE)/*
|
|
$(RM) $(DIR)/debian/$(DBGPKG)/*
|
|
$(RM) $(DIR)/debian/tmp/*
|
|
$(RM) $(DIR)/debian/$(PACKAGE).install
|
|
$(RM) $(DIR)/debian/$(DBGPKG).install
|
|
$(RM) $(DIR)/debian/menu
|
|
$(RM) $(DIR)/debian/files
|
|
$(RM) $(DIR)/debian/source/include-binaries
|
|
|
|
.PHONY: all clean binary binary-indep build
|