From e7cd3f0b33d991d10c540c4fd9d6bca66938784c Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 22 May 2017 16:29:49 +0200 Subject: No longer displaying the actual (lengthy) commands during the build process --- HISTORY | 14 +++++++++++++- Makefile | 20 +++++++++++++------- PLUGINS/src/epgtableid0/Makefile | 8 +++++--- PLUGINS/src/hello/Makefile | 17 +++++++++++------ PLUGINS/src/osddemo/Makefile | 8 +++++--- PLUGINS/src/pictures/Makefile | 17 +++++++++++------ PLUGINS/src/servicedemo/Makefile | 11 +++++++---- PLUGINS/src/skincurses/Makefile | 17 +++++++++++------ PLUGINS/src/status/Makefile | 8 +++++--- PLUGINS/src/svdrpdemo/Makefile | 8 +++++--- libsi/Makefile | 8 +++++--- newplugin | 17 +++++++++++------ 12 files changed, 102 insertions(+), 51 deletions(-) diff --git a/HISTORY b/HISTORY index 9593f5c3..aee5047b 100644 --- a/HISTORY +++ b/HISTORY @@ -8991,7 +8991,7 @@ Video Disk Recorder Revision History current channel is listed. - Fixed a possible crash when pulling the CAM while decrypting a channel with MTD. -2017-05-21: Version 2.3.5 +2017-05-22: Version 2.3.5 - CAMs are now sent a generated EIT packet that contains a single 'present event' for the current SID, in order to avoid any parental rating dialogs. @@ -9048,3 +9048,15 @@ Video Disk Recorder Revision History if it differs from the system's host name. - If the Channel+/- keys are pressed while in the Schedules menu, the menu is now switched to the EPG of the new current channel. +- The Makefiles have been modified so that during the build process they no longer + display the actual (lengthy) commands, but rather just the name of the file that + is being built, as in + CC vdr.o + The first two characters indicate the kind of operation (CC=compile, LD=link, + AR=archive, MO=msgfmt, GT=xgettext, PO=msgmerge, IN=install). + This way it is much easier to spot error messages and warnings, since they are not + buried under tons of text. + Plugin authors should modify their makefiles accordingly, by simply preceeding + the respective commands with an '@' and inserting '@echo XX $@' (where XX is one + of the character combinations listed above) before the command. + The newplugin script has also been modified accordingly. diff --git a/Makefile b/Makefile index b38b7a06..5b95dd0e 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Makefile 4.3 2017/02/27 16:11:57 kls Exp $ +# $Id: Makefile 4.4 2017/05/22 15:33:30 kls Exp $ .DELETE_ON_ERROR: @@ -121,7 +121,8 @@ all: vdr i18n plugins # Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< # Dependencies: @@ -135,7 +136,8 @@ $(DEPFILE): Makefile # The main program: vdr: $(OBJS) $(SILIB) - $(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(SILIB) -o vdr + @echo LD $@ + @$(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(SILIB) -o vdr # The libsi library: @@ -177,17 +179,21 @@ I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr.mo, $(notdir I18Npot = $(PODIR)/vdr.pot %.mo: %.po - msgfmt -c -o $@ $< + @echo MO $@ + @msgfmt -c -o $@ $< $(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='' -o $@ `ls $^` + @echo GT $@ + @xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< + @echo PO $@ + @msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ $(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo - install -D -m644 $< $@ + @echo IN $@ + @install -D -m644 $< $@ .PHONY: i18n i18n: $(I18Nmsgs) diff --git a/PLUGINS/src/epgtableid0/Makefile b/PLUGINS/src/epgtableid0/Makefile index e3c0c7b3..5afb680b 100644 --- a/PLUGINS/src/epgtableid0/Makefile +++ b/PLUGINS/src/epgtableid0/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:30:42 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -61,7 +61,8 @@ all: $(SOFILE) ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -75,7 +76,8 @@ $(DEPFILE): Makefile ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/PLUGINS/src/hello/Makefile b/PLUGINS/src/hello/Makefile index 455721fc..79dcf229 100644 --- a/PLUGINS/src/hello/Makefile +++ b/PLUGINS/src/hello/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:32:10 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -62,7 +62,8 @@ all: $(SOFILE) i18n ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -82,13 +83,16 @@ I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLU I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po - msgfmt -c -o $@ $< + @echo MO $@ + @msgfmt -c -o $@ $< $(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` + @echo GT $@ + @xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< + @echo PO $@ + @msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ $(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo @@ -102,7 +106,8 @@ install-i18n: $(I18Nmsgs) ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/PLUGINS/src/osddemo/Makefile b/PLUGINS/src/osddemo/Makefile index 30e3de47..87500169 100644 --- a/PLUGINS/src/osddemo/Makefile +++ b/PLUGINS/src/osddemo/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:30:47 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -61,7 +61,8 @@ all: $(SOFILE) ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -75,7 +76,8 @@ $(DEPFILE): Makefile ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/PLUGINS/src/pictures/Makefile b/PLUGINS/src/pictures/Makefile index 912e3d97..acb1f8ec 100644 --- a/PLUGINS/src/pictures/Makefile +++ b/PLUGINS/src/pictures/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:31:28 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -62,7 +62,8 @@ all: $(SOFILE) i18n ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -82,13 +83,16 @@ I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLU I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po - msgfmt -c -o $@ $< + @echo MO $@ + @msgfmt -c -o $@ $< $(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` + @echo GT $@ + @xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< + @echo PO $@ + @msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ $(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo @@ -102,7 +106,8 @@ install-i18n: $(I18Nmsgs) ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/PLUGINS/src/servicedemo/Makefile b/PLUGINS/src/servicedemo/Makefile index 128b9c75..074df3d7 100644 --- a/PLUGINS/src/servicedemo/Makefile +++ b/PLUGINS/src/servicedemo/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:31:59 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -58,7 +58,8 @@ all: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -72,10 +73,12 @@ $(DEPFILE): Makefile ### Targets: libvdr-$(PLUGIN1).so: $(PLUGIN1).o - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN1).o -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN1).o -o $@ libvdr-$(PLUGIN2).so: $(PLUGIN2).o - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN2).o -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN2).o -o $@ install-lib: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so install -D libvdr-$(PLUGIN1).so $(DESTDIR)$(LIBDIR)/libvdr-$(PLUGIN1).so.$(APIVERSION) diff --git a/PLUGINS/src/skincurses/Makefile b/PLUGINS/src/skincurses/Makefile index 812fe973..a1e05e53 100644 --- a/PLUGINS/src/skincurses/Makefile +++ b/PLUGINS/src/skincurses/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:31:47 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -62,7 +62,8 @@ all: $(SOFILE) i18n ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -82,13 +83,16 @@ I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLU I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po - msgfmt -c -o $@ $< + @echo MO $@ + @msgfmt -c -o $@ $< $(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` + @echo GT $@ + @xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< + @echo PO $@ + @msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ $(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo @@ -102,7 +106,8 @@ install-i18n: $(I18Nmsgs) ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/PLUGINS/src/status/Makefile b/PLUGINS/src/status/Makefile index 40a0351e..bf5c80b0 100644 --- a/PLUGINS/src/status/Makefile +++ b/PLUGINS/src/status/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:30:58 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -61,7 +61,8 @@ all: $(SOFILE) ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -75,7 +76,8 @@ $(DEPFILE): Makefile ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/PLUGINS/src/svdrpdemo/Makefile b/PLUGINS/src/svdrpdemo/Makefile index 9a8235a4..292b8c76 100644 --- a/PLUGINS/src/svdrpdemo/Makefile +++ b/PLUGINS/src/svdrpdemo/Makefile @@ -1,7 +1,7 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 3.1 2014/01/01 13:29:54 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:31:19 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. @@ -61,7 +61,8 @@ all: $(SOFILE) ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< + @echo CC $@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: @@ -75,7 +76,8 @@ $(DEPFILE): Makefile ### Targets: $(SOFILE): $(OBJS) - $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ + @echo LD $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ install-lib: $(SOFILE) install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) diff --git a/libsi/Makefile b/libsi/Makefile index dc67e516..2ae223b8 100644 --- a/libsi/Makefile +++ b/libsi/Makefile @@ -1,7 +1,7 @@ # # Makefile for a libsi # -# $Id: Makefile 3.1 2015/02/09 12:28:24 kls Exp $ +# $Id: Makefile 4.1 2017/05/22 15:33:20 kls Exp $ ### The archiver options: @@ -18,7 +18,8 @@ OBJS = util.o si.o section.o descriptor.o ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< + @echo CC libsi/$@ + @$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< ### Dependencies: @@ -35,7 +36,8 @@ all: libsi.a @: libsi.a : $(OBJS) - $(AR) $(ARFLAGS) $@ $(OBJS) + @echo AR libsi/$@ + @$(AR) $(ARFLAGS) $@ $(OBJS) clean: @-rm -f $(OBJS) $(DEPFILE) *.a *.so *.tgz core* *~ diff --git a/newplugin b/newplugin index d8e9243c..161ffdac 100755 --- a/newplugin +++ b/newplugin @@ -12,7 +12,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: newplugin 4.1 2015/09/10 11:11:14 kls Exp $ +# $Id: newplugin 4.2 2017/05/22 15:34:01 kls Exp $ $PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin \n"; @@ -121,7 +121,8 @@ all: \$(SOFILE) i18n ### Implicit rules: %.o: %.c - \$(CXX) \$(CXXFLAGS) -c \$(DEFINES) \$(INCLUDES) -o \$\@ \$< + \@echo CC \$\@ + \@\$(CXX) \$(CXXFLAGS) -c \$(DEFINES) \$(INCLUDES) -o \$\@ \$< ### Dependencies: @@ -141,13 +142,16 @@ I18Nmsgs = \$(addprefix \$(DESTDIR)\$(LOCDIR)/, \$(addsuffix /LC_MESSAGES/vdr-\ I18Npot = \$(PODIR)/\$(PLUGIN).pot %.mo: %.po - msgfmt -c -o \$\@ \$< + \@echo MO \$\@ + \@msgfmt -c -o \$\@ \$< \$(I18Npot): \$(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-\$(PLUGIN) --package-version=\$(VERSION) --msgid-bugs-address='' -o \$\@ `ls \$^` + \@echo GT \$\@ + \@xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-\$(PLUGIN) --package-version=\$(VERSION) --msgid-bugs-address='' -o \$\@ `ls \$^` %.po: \$(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q -N \$\@ \$< + \@echo PO \$\@ + \@msgmerge -U --no-wrap --no-location --backup=none -q -N \$\@ \$< \@touch \$\@ \$(I18Nmsgs): \$(DESTDIR)\$(LOCDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo @@ -161,7 +165,8 @@ install-i18n: \$(I18Nmsgs) ### Targets: \$(SOFILE): \$(OBJS) - \$(CXX) \$(CXXFLAGS) \$(LDFLAGS) -shared \$(OBJS) -o \$\@ + \@echo LD \$\@ + \@\$(CXX) \$(CXXFLAGS) \$(LDFLAGS) -shared \$(OBJS) -o \$\@ install-lib: \$(SOFILE) install -D \$^ \$(DESTDIR)\$(LIBDIR)/\$^.\$(APIVERSION) -- cgit v1.2.3