[PATCH 12/19] Add a SOURCES variable to the Makefile, replacing OBJS
Thiago Macieira
thiago at macieira.org
Mon Apr 22 23:48:18 PDT 2013
Instead of listing objects, let's list sources. This matches also what
qmake and most other buildsystems do. The notable exception is the
kernel.
The reason that listing the sources will be interesting is because I'm
about to add rules to create the dependency files.
Signed-off-by: Thiago Macieira <thiago at macieira.org>
---
Makefile | 55 +++++++++++++++++++++++++++++++++++++++++--------------
Rules.mk | 5 +++++
2 files changed, 46 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
index 41e5f09..055d7b1 100644
--- a/Makefile
+++ b/Makefile
@@ -39,16 +39,43 @@ HEADERS = \
qt-ui/starwidget.h \
-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)
+SOURCES = \
+ cochran.c \
+ deco.c \
+ device.c \
+ dive.c \
+ divelist.c \
+ divelist-gtk.c \
+ download-dialog.c \
+ equipment.c \
+ file.c \
+ info.c \
+ info-gtk.c \
+ libdivecomputer.c \
+ main.c \
+ parse-xml.c \
+ planner.c \
+ planner-gtk.c \
+ prefs.c \
+ print.c \
+ profile.c \
+ save-xml.c \
+ sha1.c \
+ statistics.c \
+ statistics-gtk.c \
+ time.c \
+ uemis.c \
+ uemis-downloader.c \
+ webservice.c \
+ qt-gui.cpp \
+ qt-ui/addcylinderdialog.cpp \
+ qt-ui/divelistview.cpp \
+ qt-ui/maintab.cpp \
+ qt-ui/mainwindow.cpp \
+ qt-ui/models.cpp \
+ qt-ui/plotareascene.cpp \
+ qt-ui/starwidget.cpp \
+ $(RESFILE)
ifneq ($(SQLITE3FLAGS),)
EXTRA_FLAGS += -DSQLITE3 $(SQLITE3FLAGS)
@@ -60,14 +87,14 @@ ifneq ($(strip $(LIBXSLT)),)
EXTRA_FLAGS += -DXSLT='"$(XSLTDIR)"' $(XSLCFLAGS)
endif
ifneq ($(strip $(LIBOSMGPSMAP)),)
- OBJS += gps.o
+ SOURCES += gps.c
EXTRA_FLAGS += -DHAVE_OSM_GPS_MAP $(OSMGPSMAPFLAGS)
endif
ifneq (,$(filter $(UNAME),linux kfreebsd gnu))
- OBJS += linux.o
+ SOURCES += linux.c
else ifeq ($(UNAME), darwin)
- OBJS += macos.o
+ SOURCES += macos.c
MACOSXINSTALL = /Applications/Subsurface.app
MACOSXFILES = packaging/macosx
MACOSXSTAGING = $(MACOSXFILES)/Subsurface.app
@@ -75,7 +102,7 @@ else ifeq ($(UNAME), darwin)
INFOPLISTINPUT = $(INFOPLIST).in
LDFLAGS += -headerpad_max_install_names -sectcreate __TEXT __info_plist $(INFOPLIST)
else
- OBSJ += windows.o
+ SOURCES += windows.c
WINDOWSSTAGING = ./packaging/windows
WINMSGDIRS=$(addprefix share/locale/,$(shell ls po/*.po | sed -e 's/po\/\(..\)_.*/\1\/LC_MESSAGES/'))
NSIINPUTFILE = $(WINDOWSSTAGING)/subsurface.nsi.in
diff --git a/Rules.mk b/Rules.mk
index 8ffb88b..e7108fd 100644
--- a/Rules.mk
+++ b/Rules.mk
@@ -19,6 +19,11 @@ PRODVERSION_STRING := $(shell $(GET_VERSION) win $(VERSION_STRING) || \
MSGOBJS=$(addprefix share/locale/,$(MSGLANGS:.po=.UTF-8/LC_MESSAGES/subsurface.mo))
+C_SOURCES = $(filter %.c, $(SOURCES))
+CXX_SOURCES = $(filter %.cpp, $(SOURCES))
+OTHER_SOURCES = $(filter-out %.c %.cpp, $(SOURCES))
+OBJS = $(C_SOURCES:.c=.o) $(CXX_SOURCES:.cpp=.o) $(OTHER_SOURCES)
+
# Add the objects for the header files which define QObject subclasses
HEADERS_NEEDING_MOC += $(shell grep -l -s 'Q_OBJECT' $(HEADERS))
MOC_OBJS = $(HEADERS_NEEDING_MOC:.h=.moc.o)
--
1.7.11.7
More information about the subsurface
mailing list