1die opennet-Pakete verwenden gemeinsame Makefile-Elemente
 
    2Index: on_firmware/openwrt/include/opennet.mk
 
    3===================================================================
 
    5+++ on_firmware/openwrt/include/opennet.mk
 
    7+# wir lesen die Versionsnummer aus der config-Datei
 
    8+VERSION_NUMBER = $(shell cat "$(TOPDIR)/.config" | grep "^CONFIG_VERSION_NUMBER=" | cut -f 2- -d = | tr -d \"\')
 
    9+ifeq "$(VERSION_NUMBER)" ""
 
   10+        # Wenn es noch keine CONFIG_VERSION_NUMBER in .config gibt,
 
   11+        # setze einen default Wert, um Fehlermeldungen zu vermeiden
 
   12+        VERSION_NUMBER="0.0.0-0"
 
   15+# Wir verwenden die Version des Gesamt-Builds
 
   16+# Wir teilen die VERSION_NUMBER (z.B. "0.5.0-694" oder "0.5.1-unstable-810") an der Stelle des letzten Bindestrichs
 
   17+PKG_VERSION = $(shell echo "$(VERSION_NUMBER)" | sed 's/-[0-9]\+\(-[0-9a-f]\+\)\?$$//g')
 
   18+PKG_RELEASE = $(shell echo "$(VERSION_NUMBER)" | sed 's/^.*-\([0-9]\+\(-[0-9a-f]\+\)\?\)$$/\1/g')
 
   19+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 
   20+PKG_BUILD_DEPENDS := $(if $(STAGING_DIR_ROOT),lua/host)
 
   22+# "package.mk" muss nach dem Setzen von PKG_VERSION und PKG_RELEASE geladen werden
 
   23+include $(INCLUDE_DIR)/package.mk
 
   26+PO_CONV = ../../../luci/modules/luci-base/src/po2lmo
 
   29+define Package/opennet/install/template
 
   30+   $(INSTALL_DIR) "$(1)/"
 
   31+   @# das on-goodies-Paket enthaelt keinerlei Dateien - also darf die Kopie fehlschlagen
 
   32+   $(CP) "$(PKG_BUILD_DIR)/files/." "$(1)/" || true
 
   33+   @# Zertifikate hashen, falls noetig (nur fuer on-certificates relevant; notwendig fuer csr-Upload via https)
 
   34+   [ -d "$(1)/etc/ssl/certs/opennet-initiative.de" ] && c_rehash "$(1)/etc/ssl/certs/opennet-initiative.de" || true
 
   35+   @# falls es keine ipkg-Dateien gibt, existiert das Quell-Verzeichnis in git nicht
 
   36+   $(CP) -L "$(PKG_BUILD_DIR)/ipkg/." "$(1)/CONTROL" || true
 
   37+   $(INSTALL_DIR) "$(1)/usr/lib/lua/luci/i18n"
 
   38+   # leere po-Dateien fuehren zu fehlenden lmo-Dateien (z.B. on-core) - das koennen wir ignorieren
 
   39+   $(CP) "$(PKG_BUILD_DIR)/lmo"/*.lmo "$(1)/usr/lib/lua/luci/i18n/" || true
 
   42+# falls Build/Compile nicht definiert wird, dann wird das Makefile aus dem build_dir geloescht
 
   43+# siehe https://forum.openwrt.org/viewtopic.php?pid=143534#p143534
 
   48+   mkdir -p $(PKG_BUILD_DIR)/lmo; $(TAR) c \
 
   49+       --exclude=.pc --exclude=.svn --exclude=.git \
 
   50+       --exclude='boa-0*' --exclude='*.o' --exclude='*.so' \
 
   52+           $(TAR) x -C $(PKG_BUILD_DIR)/
 
   53+   @# po2lmo bauen, falls nicht vorhanden
 
   54+   [ -x "$(PO_CONV)" ] || make -C ../../../luci/modules/luci-base/src/ po2lmo
 
   55+   @# "find" liefert leider keine Fehlermeldung, falls "-exec" fehlschlaegt - also loesen wir es manuell aus
 
   56+   [ -x "$(PO_CONV)" ] || { echo >&2 "ERROR: po2lmo does not exist"; exit 1; }