summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile33
-rwxr-xr-xbuildutil/version-util37
-rw-r--r--pages/Makefile4
-rw-r--r--pages/pageelems.ecpp1
4 files changed, 58 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index a0fd7c2..28e8bea 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,6 @@ PLUGIN = live
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep '\#define LIVEVERSION ' setup.h | awk '{ print $$3 }' | sed -e 's/[";]//g')
-VERSINFO= $(shell ./buildutil/version-util)
### The C++ compiler and options:
@@ -58,7 +57,7 @@ ifneq ($(TNTVERS7),yes)
LIBS += httpd/libhttpd.a
endif
-DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -DVERSION_SUFFIX='"$(VERSINFO)"'
+DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
ifeq ($(TNTVERS7),yes)
DEFINES += -DTNTVERS7
endif
@@ -69,6 +68,8 @@ ifneq ($(TNTVERS7),yes)
SUBDIRS += httpd
endif
+VERSIONSUFFIX = gen_version_suffix.h
+
### The object files (add further files here):
PLUGINOBJS = $(PLUGIN).o thread.o tntconfig.o setup.o i18n.o timers.o \
@@ -79,10 +80,10 @@ WEBLIBS = pages/libpages.a css/libcss.a javascript/libjavascript.a
### Default rules:
-.PHONY: all dist clean SUBDIRS
-
all: libvdr-$(PLUGIN).so $(I18NTARG)
+.PHONY: all dist clean subdirs $(SUBDIRS) PAGES
+
### Implicit rules:
%.o: %.cpp
@@ -95,7 +96,9 @@ DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(PLUGINOBJS:%.o=%.cpp) > $@
+ifneq ($(MAKECMDGOALS),clean)
-include $(DEPFILE)
+endif
### Internationalization (I18N):
@@ -131,15 +134,18 @@ generate-i18n: i18n-template.h $(I18Npot) $(I18Npo) buildutil/pot2i18n.pl
### Targets:
-SUBDIRS:
- @for dir in $(SUBDIRS); do \
- make -C $$dir CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" || exit 1; \
- done
+subdirs: $(SUBDIRS)
+
+$(SUBDIRS):
+ $(MAKE) -C $@ CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" $(MAKECMDGOALS)
PAGES:
- make -C pages CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" .dependencies || exit 1;
+ $(MAKE) -C pages CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" .dependencies
+
+$(VERSIONSUFFIX): FORCE
+ ./buildutil/version-util $(VERSIONSUFFIX)
-libvdr-$(PLUGIN).so: SUBDIRS $(PLUGINOBJS)
+libvdr-$(PLUGIN).so: $(VERSIONSUFFIX) $(SUBDIRS) $(PLUGINOBJS)
$(CXX) $(LDFLAGS) -shared -o $@ $(PLUGINOBJS) -Wl,--whole-archive $(WEBLIBS) -Wl,--no-whole-archive $(LIBS)
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
ifneq ($(TNTVERS7),yes)
@@ -173,11 +179,10 @@ dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
-clean:
+clean: $(SUBDIRS)
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(PLUGINOBJS) $(DEPFILE) *.so *.tgz core* *~
- @for dir in $(SUBDIRS); do \
- make -C $$dir clean ; \
- done
.PRECIOUS: $(I18Npo)
+
+FORCE:
diff --git a/buildutil/version-util b/buildutil/version-util
index 7e377ab..cf2aa31 100755
--- a/buildutil/version-util
+++ b/buildutil/version-util
@@ -10,6 +10,23 @@
# An indication if localy modified files exist is added.
# -----------------------------------------------------------------------------
+[ $# -lt 1 ] && echo "USAGE: version-util <versionfile>" && exit 1
+
+VERS_FILE=$1
+
+function createVers ()
+{
+cat <<EOF
+/* ATTENTION: this file is automatically generated and will be overwritten!
+ * Manual changes will get lost!
+ */
+#ifndef GEN_VERSION_SUFFIX_H
+#define GEN_VERSION_SUFFIX_H
+#define VERSION_SUFFIX $1
+#endif
+EOF
+}
+
function cvsVers ()
{
d=`cvs log -r -N 2> /dev/null \
@@ -34,10 +51,26 @@ function gitVers ()
echo "_git_${b}_${h}"
}
+function checkVers ()
+{
+ s=`$1`
+ if [ ! -e ${VERS_FILE} ]; then
+ echo "$VERS_FILE does not exist! creating a new one."
+ createVers $s > ${VERS_FILE}
+ else
+ v=`grep '^#define VERSION_SUFFIX' ${VERS_FILE} \
+ | awk '{print $3}'`
+ if [ "$v" != "$s" ]; then
+ echo "$VERS_FILE is being recreated!"
+ createVers $s > ${VERS_FILE}
+ fi
+ fi
+}
+
if [ -d CVS ]; then
- cvsVers
+ checkVers cvsVers
fi
if [ -d .git ]; then
- gitVers
+ checkVers gitVers
fi
diff --git a/pages/Makefile b/pages/Makefile
index 11b7ebe..8f718fe 100644
--- a/pages/Makefile
+++ b/pages/Makefile
@@ -41,10 +41,12 @@ all: libpages.a
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
-$(DEPFILE): Makefile $(OBJS:%.o=%.cpp) $(OBJS:%.o=%.ecpp)
+$(DEPFILE): Makefile $(OBJS:%.o=%.cpp) $(OBJS:%.o=%.ecpp)
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.cpp) > $@
+ifneq ($(MAKECMDGOALS),clean)
-include $(DEPFILE)
+endif
### Targets:
diff --git a/pages/pageelems.ecpp b/pages/pageelems.ecpp
index cd527cd..34cfbf8 100644
--- a/pages/pageelems.ecpp
+++ b/pages/pageelems.ecpp
@@ -9,6 +9,7 @@
#include "timers.h"
#include "tools.h"
#include "epg_events.h"
+#include "gen_version_suffix.h"
using namespace std;
using namespace vdrlive;