summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Thiago Macieira <thiago@macieira.org>2013-04-13 09:27:55 -0700
committerGravatar Thiago Macieira <thiago@macieira.org>2013-04-23 00:06:32 -0700
commitd773c02bf36f3b09584123bfd0e84a56304b33fb (patch)
treef12c88fbca226040fafb8e9b44c708e748d82aef
parentc8b360c3b5fdeb9f878cb5db648a121a10e33772 (diff)
downloadsubsurface-d773c02bf36f3b09584123bfd0e84a56304b33fb.tar.gz
Add a SOURCES variable to the Makefile, replacing OBJS
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@macieira.org>
-rw-r--r--Makefile55
-rw-r--r--Rules.mk5
2 files changed, 46 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 41e5f093b..055d7b138 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 8ffb88b86..e7108fd4b 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)