mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Reorder the Makefile
Create three sections: 1) the detection rules 2) the main rules, what we usually edit 3) the build rules, which we usually don't change Signed-off-by: Thiago Macieira <thiago@macieira.org>
This commit is contained in:
		
							parent
							
								
									77ebc2f4c8
								
							
						
					
					
						commit
						ddbb942d0f
					
				
					 1 changed files with 60 additions and 52 deletions
				
			
		
							
								
								
									
										112
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										112
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -5,6 +5,8 @@ CFLAGS=-Wall -Wno-pointer-sign -g $(CLCFLAGS) -DGSEAL_ENABLE | ||||||
| CXX=g++ | CXX=g++ | ||||||
| CXXFLAGS=-Wall -g $(CLCFLAGS) -DQT_NO_KEYWORDS | CXXFLAGS=-Wall -g $(CLCFLAGS) -DQT_NO_KEYWORDS | ||||||
| INSTALL=install | INSTALL=install | ||||||
|  | 
 | ||||||
|  | # This are the detection rules
 | ||||||
| PKGCONFIG=pkg-config | PKGCONFIG=pkg-config | ||||||
| XML2CONFIG=xml2-config | XML2CONFIG=xml2-config | ||||||
| XSLCONFIG=xslt-config | XSLCONFIG=xslt-config | ||||||
|  | @ -12,40 +14,7 @@ QMAKE=qmake | ||||||
| MOC=moc | MOC=moc | ||||||
| UIC=uic | UIC=uic | ||||||
| 
 | 
 | ||||||
| # 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 |  | ||||||
| 
 |  | ||||||
| VERSION_FILE = version.h |  | ||||||
| # There's only one line in $(VERSION_FILE); use the shell builtin `read'
 |  | ||||||
| STORED_VERSION_STRING = \
 |  | ||||||
| 	$(subst ",,$(shell [ ! -r $(VERSION_FILE) ] || \
 |  | ||||||
| 			   read ignore ignore v <$(VERSION_FILE) && echo $$v)) |  | ||||||
| #" workaround editor syntax highlighting quirk
 |  | ||||||
| 
 |  | ||||||
| UNAME := $(shell $(CC) -dumpmachine 2>&1 | grep -E -o "linux|darwin|win|gnu|kfreebsd") | UNAME := $(shell $(CC) -dumpmachine 2>&1 | grep -E -o "linux|darwin|win|gnu|kfreebsd") | ||||||
| GET_VERSION = ./scripts/get-version |  | ||||||
| VERSION_STRING := $(shell $(GET_VERSION) linux || echo "v$(VERSION)") |  | ||||||
| # Mac Info.plist style with three numbers 1.2.3
 |  | ||||||
| CFBUNDLEVERSION_STRING := $(shell $(GET_VERSION) darwin $(VERSION_STRING) || \
 |  | ||||||
| 	echo "$(VERSION).0") |  | ||||||
| # Windows .nsi style with four numbers 1.2.3.4
 |  | ||||||
| PRODVERSION_STRING := $(shell $(GET_VERSION) win $(VERSION_STRING) || \
 |  | ||||||
| 	echo "$(VERSION).0.0") |  | ||||||
| 
 | 
 | ||||||
| # find libdivecomputer
 | # find libdivecomputer
 | ||||||
| # First deal with the cross compile environment and with Mac.
 | # First deal with the cross compile environment and with Mac.
 | ||||||
|  | @ -148,6 +117,30 @@ ZIPFLAGS = $(strip $(shell $(PKGCONFIG) --cflags libzip 2> /dev/null)) | ||||||
| LIBSQLITE3 = $(shell $(PKGCONFIG) --libs sqlite3 2> /dev/null) | LIBSQLITE3 = $(shell $(PKGCONFIG) --libs sqlite3 2> /dev/null) | ||||||
| SQLITE3FLAGS = $(strip $(shell $(PKGCONFIG) --cflags sqlite3)) | 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 \
 | 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 | 	qt-ui/addcylinderdialog.o qt-ui/models.o qt-ui/starwidget.o | ||||||
| 
 | 
 | ||||||
|  | @ -159,6 +152,20 @@ OBJS =	main.o dive.o time.o profile.o info.o equipment.o divelist.o divelist-gtk | ||||||
| 	qt-gui.o statistics.o file.o cochran.o device.o download-dialog.o prefs.o \
 | 	qt-gui.o statistics.o file.o cochran.o device.o download-dialog.o prefs.o \
 | ||||||
| 	webservice.o sha1.o $(RESFILE) $(QTOBJS) $(GTKOBJS) | 	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)) | ifneq (,$(filter $(UNAME),linux kfreebsd gnu)) | ||||||
| 	OBJS += linux.o | 	OBJS += linux.o | ||||||
| else ifeq ($(UNAME), darwin) | else ifeq ($(UNAME), darwin) | ||||||
|  | @ -179,7 +186,6 @@ else | ||||||
| 	XSLTDIR = .\\xslt | 	XSLTDIR = .\\xslt | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| LIBS = $(LIBQT) $(LIBXML2) $(LIBXSLT) $(LIBSQLITE3) $(LIBGTK) $(LIBGCONF2) $(LIBDIVECOMPUTER) \
 | LIBS = $(LIBQT) $(LIBXML2) $(LIBXSLT) $(LIBSQLITE3) $(LIBGTK) $(LIBGCONF2) $(LIBDIVECOMPUTER) \
 | ||||||
| 	$(EXTRALIBS) $(LIBZIP) -lpthread -lm $(LIBOSMGPSMAP) $(LIBSOUP) $(LIBWINSOCK) | 	$(EXTRALIBS) $(LIBZIP) -lpthread -lm $(LIBOSMGPSMAP) $(LIBSOUP) $(LIBWINSOCK) | ||||||
| 
 | 
 | ||||||
|  | @ -191,6 +197,26 @@ OBJS_NEEDING_MOC = | ||||||
| OBJS_NEEDING_UIC = | OBJS_NEEDING_UIC = | ||||||
| HEADERS_NEEDING_MOC = | HEADERS_NEEDING_MOC = | ||||||
| 
 | 
 | ||||||
|  | # These are the generic rules for building
 | ||||||
|  | 
 | ||||||
|  | # Rules for building and creating the version file
 | ||||||
|  | 
 | ||||||
|  | VERSION_FILE = version.h | ||||||
|  | # There's only one line in $(VERSION_FILE); use the shell builtin `read'
 | ||||||
|  | STORED_VERSION_STRING = \
 | ||||||
|  | 	$(subst ",,$(shell [ ! -r $(VERSION_FILE) ] || \
 | ||||||
|  | 			   read ignore ignore v <$(VERSION_FILE) && echo $$v)) | ||||||
|  | #" workaround editor syntax highlighting quirk
 | ||||||
|  | 
 | ||||||
|  | GET_VERSION = ./scripts/get-version | ||||||
|  | VERSION_STRING := $(shell $(GET_VERSION) linux || echo "v$(VERSION)") | ||||||
|  | # Mac Info.plist style with three numbers 1.2.3
 | ||||||
|  | CFBUNDLEVERSION_STRING := $(shell $(GET_VERSION) darwin $(VERSION_STRING) || \
 | ||||||
|  | 	echo "$(VERSION).0") | ||||||
|  | # Windows .nsi style with four numbers 1.2.3.4
 | ||||||
|  | PRODVERSION_STRING := $(shell $(GET_VERSION) win $(VERSION_STRING) || \
 | ||||||
|  | 	echo "$(VERSION).0.0") | ||||||
|  | 
 | ||||||
| MSGOBJS=$(addprefix share/locale/,$(MSGLANGS:.po=.UTF-8/LC_MESSAGES/subsurface.mo)) | MSGOBJS=$(addprefix share/locale/,$(MSGLANGS:.po=.UTF-8/LC_MESSAGES/subsurface.mo)) | ||||||
| 
 | 
 | ||||||
| # Add the objects for the header files which define QObject subclasses
 | # Add the objects for the header files which define QObject subclasses
 | ||||||
|  | @ -301,24 +327,6 @@ update-po-files: | ||||||
| 	tx push -s | 	tx push -s | ||||||
| 	tx pull -af | 	tx pull -af | ||||||
| 
 | 
 | ||||||
| EXTRA_FLAGS =	$(QTCXXFLAGS) $(GTKCFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) \
 |  | ||||||
| 		$(LIBDIVECOMPUTERCFLAGS) \
 |  | ||||||
| 		$(LIBSOUPCFLAGS) $(GCONF2CFLAGS) |  | ||||||
| 
 |  | ||||||
| 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 |  | ||||||
| 
 |  | ||||||
| MOCFLAGS = $(filter -I%, $(CXXFLAGS) $(EXTRA_FLAGS)) $(filter -D%, $(CXXFLAGS) $(EXTRA_FLAGS)) | MOCFLAGS = $(filter -I%, $(CXXFLAGS) $(EXTRA_FLAGS)) $(filter -D%, $(CXXFLAGS) $(EXTRA_FLAGS)) | ||||||
| 
 | 
 | ||||||
| %.o: %.c | %.o: %.c | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue