summaryrefslogtreecommitdiffstats
path: root/Rules.mk
diff options
context:
space:
mode:
authorGravatar Thiago Macieira <thiago@macieira.org>2013-04-12 23:42:14 -0700
committerGravatar Thiago Macieira <thiago@macieira.org>2013-04-23 00:06:32 -0700
commitd47b9045802f5f05dfafad982cdf4ab4b86a2c2c (patch)
tree1bbc9732e471edb3aaa0e7f95aa881c6850e4018 /Rules.mk
parentf6d133f3872d700a7c99be515bc1369f265f550a (diff)
downloadsubsurface-d47b9045802f5f05dfafad982cdf4ab4b86a2c2c.tar.gz
Trim Makefile, Configure.mk and Rules.mk
Configure.mk contains the detection rules, whereas Rules.mk contains the rules to actually build Subsurface. This simplifies Makefile greatly, which is the file that should be actually modified during regular updates to the codebase. Signed-off-by: Thiago Macieira <thiago@macieira.org>
Diffstat (limited to 'Rules.mk')
-rw-r--r--Rules.mk202
1 files changed, 1 insertions, 201 deletions
diff --git a/Rules.mk b/Rules.mk
index e882a353d..59e73e13d 100644
--- a/Rules.mk
+++ b/Rules.mk
@@ -1,204 +1,4 @@
-VERSION=3.0.2
-
-CC=gcc
-CFLAGS=-Wall -Wno-pointer-sign -g $(CLCFLAGS) -DGSEAL_ENABLE
-CXX=g++
-CXXFLAGS=-Wall -g $(CLCFLAGS) -DQT_NO_KEYWORDS
-INSTALL=install
-
-# This are the detection rules
-PKGCONFIG=pkg-config
-XML2CONFIG=xml2-config
-XSLCONFIG=xslt-config
-QMAKE=qmake
-MOC=moc
-UIC=uic
-
-UNAME := $(shell $(CC) -dumpmachine 2>&1 | grep -E -o "linux|darwin|win|gnu|kfreebsd")
-
-# find libdivecomputer
-# First deal with the cross compile environment and with Mac.
-# For the native case, Linus doesn't want to trust pkg-config given
-# how young libdivecomputer still is - so we check the typical
-# subdirectories of /usr/local and /usr and then we give up. You can
-# override by simply setting it here
-#
-ifeq ($(CC), i686-w64-mingw32-gcc)
-# ok, we are cross building for Windows
- LIBDIVECOMPUTERINCLUDES = $(shell $(PKGCONFIG) --cflags libdivecomputer)
- LIBDIVECOMPUTERARCHIVE = $(shell $(PKGCONFIG) --libs libdivecomputer)
- RESFILE = packaging/windows/subsurface.res
- LDFLAGS += -Wl,-subsystem,windows
- LIBWINSOCK = -lwsock32
-else ifeq ($(UNAME), darwin)
- LIBDIVECOMPUTERINCLUDES = $(shell $(PKGCONFIG) --cflags libdivecomputer)
- LIBDIVECOMPUTERARCHIVE = $(shell $(PKGCONFIG) --libs libdivecomputer)
-else
-libdc-local := $(wildcard /usr/local/lib/libdivecomputer.a)
-libdc-local64 := $(wildcard /usr/local/lib64/libdivecomputer.a)
-libdc-usr := $(wildcard /usr/lib/libdivecomputer.a)
-libdc-usr64 := $(wildcard /usr/lib64/libdivecomputer.a)
-
-ifneq ($(LIBDCDEVEL),)
- LIBDIVECOMPUTERDIR = ../libdivecomputer
- LIBDIVECOMPUTERINCLUDES = -I$(LIBDIVECOMPUTERDIR)/include
- LIBDIVECOMPUTERARCHIVE = $(LIBDIVECOMPUTERDIR)/src/.libs/libdivecomputer.a
-else ifneq ($(strip $(libdc-local)),)
- LIBDIVECOMPUTERDIR = /usr/local
- LIBDIVECOMPUTERINCLUDES = -I$(LIBDIVECOMPUTERDIR)/include
- LIBDIVECOMPUTERARCHIVE = $(LIBDIVECOMPUTERDIR)/lib/libdivecomputer.a
-else ifneq ($(strip $(libdc-local64)),)
- LIBDIVECOMPUTERDIR = /usr/local
- LIBDIVECOMPUTERINCLUDES = -I$(LIBDIVECOMPUTERDIR)/include
- LIBDIVECOMPUTERARCHIVE = $(LIBDIVECOMPUTERDIR)/lib64/libdivecomputer.a
-else ifneq ($(strip $(libdc-usr)),)
- LIBDIVECOMPUTERDIR = /usr
- LIBDIVECOMPUTERINCLUDES = -I$(LIBDIVECOMPUTERDIR)/include
- LIBDIVECOMPUTERARCHIVE = $(LIBDIVECOMPUTERDIR)/lib/libdivecomputer.a
-else ifneq ($(strip $(libdc-usr64)),)
- LIBDIVECOMPUTERDIR = /usr
- LIBDIVECOMPUTERINCLUDES = -I$(LIBDIVECOMPUTERDIR)/include
- LIBDIVECOMPUTERARCHIVE = $(LIBDIVECOMPUTERDIR)/lib64/libdivecomputer.a
-else
-$(error Cannot find libdivecomputer - please edit Makefile)
-endif
-endif
-
-# Libusb-1.0 is only required if libdivecomputer was built with it.
-# And libdivecomputer is only built with it if libusb-1.0 is
-# installed. So get libusb if it exists, but don't complain
-# about it if it doesn't.
-LIBUSB = $(shell $(PKGCONFIG) --libs libusb-1.0 2> /dev/null)
-
-# Use qmake to find out which Qt version we are building for.
-QT_VERSION_MAJOR = $(shell $(QMAKE) -query QT_VERSION | cut -d. -f1)
-ifeq ($(QT_VERSION_MAJOR), 5)
- QT_MODULES = Qt5Widgets Qt5Svg
- QT_CORE = Qt5Core
-else
- QT_MODULES = QtGui QtSvg
- QT_CORE = QtCore
-endif
-
-# we need GLIB2CFLAGS for gettext
-QTCXXFLAGS = $(shell $(PKGCONFIG) --cflags $(QT_MODULES)) $(GLIB2CFLAGS)
-LIBQT = $(shell $(PKGCONFIG) --libs $(QT_MODULES))
-ifneq ($(filter reduce_relocations, $(shell $(PKGCONFIG) --variable qt_config $(QT_CORE))), )
- QTCXXFLAGS += -fPIE
-endif
-
-LIBGTK = $(shell $(PKGCONFIG) --libs gtk+-2.0 glib-2.0)
-ifneq (,$(filter $(UNAME),linux kfreebsd gnu))
- LIBGCONF2 = $(shell $(PKGCONFIG) --libs gconf-2.0)
- GCONF2CFLAGS = $(shell $(PKGCONFIG) --cflags gconf-2.0)
-else ifeq ($(UNAME), darwin)
- LIBGTK += $(shell $(PKGCONFIG) --libs gtk-mac-integration) -framework CoreFoundation -framework CoreServices
- GTKCFLAGS += $(shell $(PKGCONFIG) --cflags gtk-mac-integration)
- GTK_MAC_BUNDLER = ~/.local/bin/gtk-mac-bundler
-endif
-
-LIBDIVECOMPUTERCFLAGS = $(LIBDIVECOMPUTERINCLUDES)
-LIBDIVECOMPUTER = $(LIBDIVECOMPUTERARCHIVE) $(LIBUSB)
-
-LIBXML2 = $(shell $(XML2CONFIG) --libs)
-LIBXSLT = $(shell $(XSLCONFIG) --libs)
-XML2CFLAGS = $(shell $(XML2CONFIG) --cflags)
-GLIB2CFLAGS = $(shell $(PKGCONFIG) --cflags glib-2.0)
-GTKCFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-2.0)
-XSLCFLAGS = $(shell $(XSLCONFIG) --cflags)
-OSMGPSMAPFLAGS += $(shell $(PKGCONFIG) --cflags osmgpsmap 2> /dev/null)
-LIBOSMGPSMAP += $(shell $(PKGCONFIG) --libs osmgpsmap 2> /dev/null)
-LIBSOUPCFLAGS = $(shell $(PKGCONFIG) --cflags libsoup-2.4)
-LIBSOUP = $(shell $(PKGCONFIG) --libs libsoup-2.4)
-
-LIBZIP = $(shell $(PKGCONFIG) --libs libzip 2> /dev/null)
-ZIPFLAGS = $(strip $(shell $(PKGCONFIG) --cflags libzip 2> /dev/null))
-
-LIBSQLITE3 = $(shell $(PKGCONFIG) --libs sqlite3 2> /dev/null)
-SQLITE3FLAGS = $(strip $(shell $(PKGCONFIG) --cflags sqlite3))
-
-# These are the main rules
-
-# these locations seem to work for SuSE and Fedora
-# prefix = $(HOME)
-prefix = $(DESTDIR)/usr
-BINDIR = $(prefix)/bin
-DATADIR = $(prefix)/share
-DESKTOPDIR = $(DATADIR)/applications
-ICONPATH = $(DATADIR)/icons/hicolor
-ICONDIR = $(ICONPATH)/scalable/apps
-MANDIR = $(DATADIR)/man/man1
-XSLTDIR = $(DATADIR)/subsurface/xslt
-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(ICONPATH)
-
-NAME = subsurface
-ICONFILE = $(NAME)-icon.svg
-DESKTOPFILE = $(NAME).desktop
-MANFILES = $(NAME).1
-XSLTFILES = xslt/*.xslt
-
-EXTRA_FLAGS = $(QTCXXFLAGS) $(GTKCFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) \
- $(LIBDIVECOMPUTERCFLAGS) \
- $(LIBSOUPCFLAGS) $(GCONF2CFLAGS)
-
-QTOBJS = qt-ui/maintab.o qt-ui/mainwindow.o qt-ui/plotareascene.o qt-ui/divelistview.o \
- qt-ui/addcylinderdialog.o qt-ui/models.o qt-ui/starwidget.o
-
-GTKOBJS = info-gtk.o divelist-gtk.o planner-gtk.o statistics-gtk.o
-
-OBJS = main.o dive.o time.o profile.o info.o equipment.o divelist.o divelist-gtk.o deco.o \
- planner.o planner-gtk.o \
- parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o uemis-downloader.o \
- qt-gui.o statistics.o file.o cochran.o device.o download-dialog.o prefs.o \
- webservice.o sha1.o $(RESFILE) $(QTOBJS) $(GTKOBJS)
-
-ifneq ($(SQLITE3FLAGS),)
- EXTRA_FLAGS += -DSQLITE3 $(SQLITE3FLAGS)
-endif
-ifneq ($(ZIPFLAGS),)
- EXTRA_FLAGS += -DLIBZIP $(ZIPFLAGS)
-endif
-ifneq ($(strip $(LIBXSLT)),)
- EXTRA_FLAGS += -DXSLT='"$(XSLTDIR)"' $(XSLCFLAGS)
-endif
-ifneq ($(strip $(LIBOSMGPSMAP)),)
- OBJS += gps.o
- EXTRA_FLAGS += -DHAVE_OSM_GPS_MAP $(OSMGPSMAPFLAGS)
-endif
-
-ifneq (,$(filter $(UNAME),linux kfreebsd gnu))
- OBJS += linux.o
-else ifeq ($(UNAME), darwin)
- OBJS += macos.o
- MACOSXINSTALL = /Applications/Subsurface.app
- MACOSXFILES = packaging/macosx
- MACOSXSTAGING = $(MACOSXFILES)/Subsurface.app
- INFOPLIST = $(MACOSXFILES)/Info.plist
- INFOPLISTINPUT = $(INFOPLIST).in
- LDFLAGS += -headerpad_max_install_names -sectcreate __TEXT __info_plist $(INFOPLIST)
-else
- OBSJ += windows.o
- WINDOWSSTAGING = ./packaging/windows
- WINMSGDIRS=$(addprefix share/locale/,$(shell ls po/*.po | sed -e 's/po\/\(..\)_.*/\1\/LC_MESSAGES/'))
- NSIINPUTFILE = $(WINDOWSSTAGING)/subsurface.nsi.in
- NSIFILE = $(WINDOWSSTAGING)/subsurface.nsi
- MAKENSIS = makensis
- XSLTDIR = .\\xslt
-endif
-
-LIBS = $(LIBQT) $(LIBXML2) $(LIBXSLT) $(LIBSQLITE3) $(LIBGTK) $(LIBGCONF2) $(LIBDIVECOMPUTER) \
- $(EXTRALIBS) $(LIBZIP) -lpthread -lm $(LIBOSMGPSMAP) $(LIBSOUP) $(LIBWINSOCK)
-
-MSGLANGS=$(notdir $(wildcard po/*.po))
-
-# Add files to the following variables if the auto-detection based on the
-# filename fails
-OBJS_NEEDING_MOC =
-OBJS_NEEDING_UIC =
-HEADERS_NEEDING_MOC =
-
-# These are the generic rules for building
-
+# -*- Makefile -*-
# Rules for building and creating the version file
VERSION_FILE = version.h