User Tools

Site Tools


de:doc:lua_make

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
de:doc:lua_make [2014/10/26 17:31] – created wsauerde:doc:lua_make [2014/12/15 13:54] (current) wsauer
Line 15: Line 15:
 ===== Einrichten der Cygwin Laufzeitumgebung ===== ===== Einrichten der Cygwin Laufzeitumgebung =====
  
-To use the much more powerful unix environment instead of just a stupid DOS command interfaceyou need to install at first a [[http://cygwin.org|CygWin Runtime Environment]]. To do soplease follow the [[dev_cygwininstall|CygWin Installation instructions]]+Um die wesentlich mächtigere UNIX Umgebung zu nutzen, anstelle einer sehr einfachen DOS Kommandozeilemusst Du zunächst das [[http://cygwin.org|CygWin Runtime Environment]] installierenUm dies zu tunfolge bitte den [[dev_cygwininstall|CygWin Installationsinstruktionen]]
  
-===== Basics about the Cygwin Environment ===== +===== Basiswissen über die Cygwin Laufzeitumgebung ===== 
-After installing and starting Cygwinyou'll be presented to a DOS like command linebut with some differences:+Nach dem Installieren und Starten von CygWinwird Dir eine DOS ähnliche Kommandozeile dargebotenmit einigen Unterschieden zu dieser:
  
-  * Unix takes care about uppercase and lowercase writingso everything needs to be correctly written +  * Unix achtet auf Gross- und Kleinschreibungdeshalb muss alles immer korrekt geschrieben werden. 
-  * the basic commands are different to DOS/Windows. A good introduction can be found [[http://mally.stanford.edu/~sr/computing/basic-unix.html|here]] +  * Die Basikommandos sind unterschiedlich zu denen, die Du von DOS/Windows her kennstEine gute Einführung in die Thematik kann unter [[http://mally.stanford.edu/~sr/computing/basic-unix.html|]] gefunden werden 
-  * Unix does not have backslashes \ in pathsit uses a normal slash / instead +  * Unix benutzt in diesem speziellen Bereich keine Backslashes \ in Pfadenes benutzt anstelle dessen einen normalen slash / 
-  * Unix does not know drive letters like C:\. Instead each drive and directory is a subfolder under the global root directory /cygdrive. So drive C:\ becomes /cygdrive/c/, your Desktop folder would be /cygrive/c/Users/yourusername/Desktop (take care of upper/lower letters!) +  * Unix kennt keine Laufwerksbuchstaben wie C:\. Anstelle jedes Laufwerkes und Verzeichnisses gibt es einen Unterordner unter dem globalen Wurzelverzeichnis "root"  /cygdrive. So wird aus dem Laufwerk C:\ dann /cygdrive/c/, dein Desktopverzeichnis wird dann /cygrive/c/Users/yourusername/Desktop heissen (Achte auf die Gross- und Kleinschreibung!) 
-  * with the cursor keys you can move back in the command historyVery helpful to not typing in the same commands all the time +  * mit den Pfeiltasten kannst Du in der Historie der eingegebenen Kommandos blätternSehr hilfreich kann auch ohne dass komplette Abtippen des Kommandos die 
-  * with the TAB key you can auto-complete commands and file names+  * TAB Taste sein mit der Kommandos und Dateinamen automatisch komplettiert werden
-  * **Very important:** Unix text files have a different End-of-Line-Character as Windows. So please **always** make sure when creating or editing filesthat all files are saved in "Unix Line feed UTF8 without BOM" format+  * **Sehr wichtig!** Unix Textdateien haben einen anderen Ende-der-Zeile Kennzeichner als Windows. Deshalb stelle bitte **immer** sicherwenn Du Dateien ertellst oder editierst, das alle die Dateien im "Unix Line feed UTF8 without BOM" Format abgespeichert werden.
  
-===== Connect yourself to the central Script Repository ===== +===== Verbinde dich selbst mit dem zentralen Skripte-Aufbewahrungsort (engl. Repository=====
-As soon as several scripts need to be maintained or more as one person is working on the scripts, it's highly recommended to use a central script repository, as we do here in our example with a central [[http://subversion.apache.org/|Subversion]] Server. The usage of subversion as such is out of the scope of this document, but you'll find tons of documentation in the Internet. Please read at last some base tutorials to get a basic understanding about subversion works.+
  
-To become connected to the so called repositoryplease get in contact with your repository adminFrom him you'll get the so called repository-URLyour username and your password.+Sobald mehrere Skripte beibehalten werden müssen oder mehr als eine Person auf den Skripten arbeitenist es sehr empfehlenswert, ein zentrales Skript-Repository zu verwenden, wie wir es hier in unserem Beispiel mit einem zentralen [[http://subversion.apache.org/|Subversion]] Server tun. Die Nutzung von Subversion als solches fällt nicht in den Anwendungsbereich dieses Dokumentsaber Du wirst Tonnen von Unterlagen im Internet zu diesem Thema finden. Bitte lies einige Basis-Tutorials durch die Dir ein grundlegendes Verständnis über Subversion vermitteln.
  
-As next generate an empty directory, wherever you want to store all the script data, e.gon your desktop+Um sich mit dem sogenannten "Repository" zu verbinden nehme bitte Kontakt mit dem Repositoryadministrator (S.K.) auf. Von Ihm erhältst Du die sogenannte Repository-URL, deinen Nutzernamen und dein Passwort.
  
-  cd /cygdrive/c/Users/yourusername/Desktop+Als nächstes erzeuge ein leeres Verzeichnis, in  dem Du deine Skripte z.B auf dem Desktop speichern möchtest 
 + 
 +  cd /cygdrive/c/Nutzer/deinNutzername/Desktop
   mkdir OOBD-Script-Repository   mkdir OOBD-Script-Repository
   cd OOBD-Script-Repository   cd OOBD-Script-Repository
      
-as next create the so called "local working copyof the repository with the command+als nächstes erzeuge eine sogenannte "lokale Arbeitskopiedes Repositorys mit dem Kommando
  
-  svn checkout repository-URL+  svn checkout Repository-URL
      
-You'll be asked for username and password, and then svn (which is the short form for subversionwill transfer the whole content of the central repository into your working directory.+Du wirst nach deinem Nutzernamen und deinem Passwort gefragt und dann transferiert SVN (die Abkürzung für Subversiondas komplette Repository in dein Arbeitsverzeichnis.
  
-You might notice later that a lot of .svn directories have been created. In there subversion stores the metadata for the maintenance. **Do not delete or even edit these directories!**+Du wirst später vielleicht feststellen das eine Menge von .svn Verzeichnisse erzeugt worden sind. In diesen speichert Subversion Metadaten für die Wartung. **Bitte lösche oder verändere diese Verzeichnisse nicht!**
  
  
-===== The Directory Tree =====+===== Der Verzeichnisbaum =====
  
  
  
-To use the available build tools for OOBD, it is essential that you keep the file structure as shownas the tool settings rely on that.+Um die verfügbaren Werkzeuge für OOBD zu nutzenist es wesentlich das Du die Datenstruktur so beläßt wie sie istweil die Werkzeugeinstellungen darauf beruhen.
  
  
-After finishing the initial checkoutyou'll find a directory and file structure like this:+Nach dem Beenden des initialen Auscheckensfindest Du einen Verzeichnis- und Datenstruktur wie folgt vor:
  
  
Line 68: Line 69:
 </code> </code>
  
-So for what all this good for?+So, wofür ist dies nun alles gut?
  
-The **mdx_pool** is the directorywhere all the XML module can be stored in, named by carline_modellyear_moduleshortname+Das **mdx_pool** ist das Verzeichnis, in dem alle XML Module abgespeichert werden könnenimmer nach der Bezeichnung FahrzeugBaureihe_ModellJahr_Modulkurzname
  
-The **tools** directory contains all the necessary oobd related programs and scriptsThe experienced user might need to know that some of the subdirectories are linked as so called "svn:external" to other repositories.+Das **tools** Verzeichnis beinhaltet alle Programme und Skripte die für OOBD notwendig sindDer erfahrene Nutzer möchte vielleicht wissen  das einige der Unterverzeichnisse als sogenannte "svn:external" zu anderen Repositorys verbunden sind.
  
-The **oobd_groups.pub** is a pgp keyring which contains the public keys of the workgroupsby where the execution rights of the different scripts are controlled.+Das **oobd_groups.pub** ist ein pgp Schlüsselbund welcher die öffentlichen Schlüssel der Arbeitsgruppen enthält mit denen die Ausführungsrechte überprüft werden.
  
-Finally there's the **lua** directorywhich contains the lua script files itself and a lot of other stuff:+Letztlich gibt es noch das **lua** Verzeichniswelches die Lua Skripte und noch jede Menge anderes Zeug enthält:
  
 <code> <code>
Line 114: Line 115:
 </code> </code>
  
-Inside the **lua** directory it becomes finally complicated. All these files and directory have their meanings:+Innerhalb des **lua** Verzeichnisses wird alles komplettiert. All diese Dateien haben verschiedene Bedeutungen:
  
-===== The Meanings of the Files and Directories =====+===== Die Bedeutung der Dateien und Verzeichnisse =====
  
  
 ==== car1_my99_r /_t / _s / _w ==== ==== car1_my99_r /_t / _s / _w ====
  
-These directories contain the car-line and model-year related stuffBut also each directory represents a so called workgroupwhich is used if you going to encrypt the scriptsWhen doing soyou grant user access to each workgroup seperatelywhich means you allow the user to use that what you compile inside the related directory.+Diese Verzeichnisse enthalten die Fahrzeugreihe und Modelljahr spezifischen InhalteAber auch jedes Verzeichnis repräsentiert eine so genannte Arbeitsgruppewelche benutzt wird wenn du die verschlüsselten Skripte benutzen möchtestWenn Du das tustermöglichst du den Nutzerzugriff für jede Arbeitsgruppe einzelnddas bedeutet Du erlaubst den Nutzer das zu nutzen was Du in diesem Verzeichnis übersetzt.
  
-To make a clear separation between the different level of riskswhat a user can make wrong by using a script on a vehiclewe use the directory name extensions to define, in which directory a script must be stored to avoid misuseThe extensions are their meanings are:+Um eine klare Trennung zwischen den verschiedenen Niveaus der Risikenwas ein Benutzer mit Hilfe eines Skripts falsch machen kann zu etablierenverwenden wir die Verzeichnisnamen um Erweiterungen zu definieren, in welchem ​​Verzeichnis ein Skript gespeichert werden mussDies geschieht um Missbrauch zu vermeiden. Die Erweiterungen sind ihre Bedeutung sind:
  
-^  Extension  ^  Meaning  ^ +^  Erweiterung  ^  Bedeutung  ^ 
-|  _r  | Only read access no risk of any damage (shall be used for all dummy users) | +|  _r  | Nur lesenden Zugriff Kein Risiko einer nicht sachgemäßen Benutzung (sollte als Grundeinstellung für jeden nicht erfahrenen Erstnutzer erlaubt werden) | 
-|  _t  | Temporary modifications temporary changes like activating outputsbut all changes must disappear without trace when finishing diagnosticsminor risk because of unexpected movement of e.gactuators (for adviced users) | +|  _t  | Zeitlich begrenzte Veränderungen wie z.B. das Aktivieren von Ausgabendie aber wieder in den Grundzustand versetzt werdenwenn die Diagnosesession endetGeringes Risiko durch z.B Bewegen von Scheibenwischern (Ratschlag für Nutzer) | 
-|  _s  | Service - starting testschanging factory modes etc (for service and repair people) | +|  _s  | Service - Zum Starten von Testsequenzenändern von z.B dem Faktorymode des Fahrzeugs oder anderes (für Servicepersonal und andere Personen, die sich im Reparaturbereich eines Automobilbauers befinden) | 
-|  _w  | Write AccessFull control over the system (only for experienced specialists) |+|  _w  | Schreibenden ZugriffVolle Kontrolle über das System Auto (nur für erfahrene Spezialisten) |
  
  
-==== mdx_pool_reference ==== +==== mdx_pool_referenz ==== 
-Whenever you want to compile some module specs out of the module pool for this particular carline and access levelyou list the affected module files name in this mdx_pool_reference- fileBy this reference the module spec only needs to be stored only in the pool directory and be referenced from many different places.+Wann immer Du eine Modulspezifikation aus dem Modulpool für diese bestimmte Fahrzeugbaureihe und Zugriffsebene kompilieren möchtestlistest Du den Namen der betroffenen Moduldateien in dieser mdx_pool_reference- DateiMit dieser Referenz, muß die Modulspezifikation nur in dem Pool-Verzeichnis gespeichert werden und es kann von verschiedenen anderen Orten darauf verwiesen werden.
  
 ==== car1_my99_carcheck.carcheck ==== ==== car1_my99_carcheck.carcheck ====
-Whenever the build process finds a *.carcheck fileit takes the list of modules of this carline out of the mdx_pool_reference and builds a kind of summary scriptwhich collects all modules in it and allows a quick overview through the whole vehicleBy adding some content into these *.carcheck filesome carline specific value outputs can be added to the generic content of the vehicle summary. +Wann immer der Bauprozess ein *.carcheck Skript findetnimmt es eine Liste von Modulen von dieser Fahrzeugbaureihe aus der mdx_pool_referenz und baut daraus eine Art von Summationskript aufwelches alle Module in sich aufnimmt und damit einen schnellen Überblick über das komplette Fahrzeug ermöglichtDurch das Hinzufügen von Inhalt in dieses *.carcheck Skriptkönnen ein paar Fahrzeugbaureihenspezifische Ausgaben zu dem generischen Inhalt der Fahrzeugauflistung hinzugefügt werden"Inhalt"
  
 ==== car1_my99_sw_versions.lua ==== ==== car1_my99_sw_versions.lua ====
-In opposite to all the other automatic generated output this is now a pure handmade scriptWhenever the build process finds a *.lua scriptit just compiles it.+Im Gegensatz zu all den anderen automatisch erzeugten Ausgaben ist dies ein rein manuell hergestelltes SkriptWenn der Bauprozess ein *.lua Skript findetübersetzt er es.
  
-==== lua_reference ==== +==== lua_referenz ==== 
-In conjunction with the seccode files (see further belowyou could compile the same script for different security levelsBy the lua_reference file you can store the original script in a different directoryreference to it and compile it in the actual directory with a different security level.+In Verbindung mit den "seccode" Dateien (siehe weiter untenkannst Du das gleiche Skript für verschiedene Sicherheitsebenen übersetzenMit der lua_referenz Datei kannst Du das Original Skript in einem anderen Verzeichnisauf es referenzieren und es in dem aktuellen Verzeichnis mit einem anderen Sicherheitlevel zu übersetzen.
  
-By convention the original script has to be stored in the workgroup directory with its lowest security level, and the higher level reference to it.+Durch ein Abkommen muss das originale Skript in einem Arbeitsgruppenverzeichnis mit seinem geringsten Sicherheitslevel abgelegt werden und der höhere Sicherheitslevel muss darauf referenzieren.
  
 ==== ABC.seccode ==== ==== ABC.seccode ====
-*.seccode files contains a piece of lua codewhich defines the security access codes of modules. In the lua scripts of the module itself you then can use the pseudo command ''-- optinclude("ABC.seccode")'', which include the seccodes **only** if that file exist, but does not generate an error message if the file does not exist. +*.seccode Dateien enthalten einen Teil des Lua Kodeswelcher den Sicherheitszugriffskode der Module definiert 
- +In den Luaskripten selbst kann dann das Pseudo Kommando ''-- optinclude("ABC.seccode")'', in denen der seccode **nur** enthalten ist wenn das Skript existiertEs erzeugt aber keine Fehlernachricht wenn das Skript nicht existiert.
-For confidential reasons, these *.seccode files are **not included** in the software repository, and it is **forbitten** to upload this or any other format of security codes into the repository, so each script developer has to maintain his personal knowledge about security codes locally and must not publish this into the repository.+
  
 +Aus Geheimhaltungsgründen sind diese *.seccode Dateien in dem Softwarerepository **nicht eingebunden**. Es ist ausserdem **verboten** diese oder andere Formate von Sicherheitskodes in das Repository hochzuladen. Deshalb hat jeder Entwickler sein Wissen über über Sicherheitskodes lokal für sich zu behalten und darf es nicht im Repository publizieren.
  
 ==== files.inc ==== ==== files.inc ====
-Any other filewhich is needed by the script later and which is not already part of the lua compilation processlike e.g. DTC databases can be listed in the files.inc. By that it will be encrypted and copied to the output dir too.+Jede andere Dateiwelche später vom Skript benötigt wird und welche nun nicht Teil des Übersetzungsprozess istwie z.B. DTC Datenbasen, kann in files.inc aufgelistet werdenDadurch wird sie verschlüsselt und auch in das Ausgabeverzeichnis kopiert.
  
 ==== makefile ==== ==== makefile ====
-This makefile don't need to be editedIt's just needed for the build process.+Dieses Makefile muss nicht editiert werdenEs wird nur für den Bauprozess benötigt.
  
  
 ==== presets.rtd ==== ==== presets.rtd ====
-for futher extensions.+für spätere Erweiterungen.
  
  
-==== carcheck.footer, carcheck.header and carcheck.xslt ==== +==== carcheck.footer, carcheck.header und carcheck.xslt ==== 
-These are the templates for the carcheck scripts+Diese sind Vorlagen für die carcheck Skripte
  
 ==== db ==== ==== db ====
-In here database files (*.oodb) are stored to reference to by files.inc, but also the stylesheet (VehInfo_Stylesheet.xsl) for a Vehicle Health report is stored here.+Die hierin enthaltene Datenbasendateien (*.oodb) werden gespeichert um zu files.inc zu referenzierenaber auch das stylesheet (VehInfo_Stylesheet.xsl) für einen Vehicle Health Report wird hier gespeichert.
  
 ==== generic.make ==== ==== generic.make ====
-This file controls the whole build process and must not be modified without very good reasons... +Diese Datei kontrolliert den gesammten Bauprozess und darf aus sehr guten Gründen nicht verändert werden...
  
 ==== Healthfiles ==== ==== Healthfiles ====
-When generating a vehicle report when doing a carcheckthe resulting XML files should saved hereWhen then opening the file in a web browserthe file automatically points to the VehInfo_Stylesheet.xsl in the db folder and present the data with the right style sheet.+Wenn ein Fahrzeugreport erstellt wird durch die Benutzung des Skripts Carchecksollten die dabei entstandenen XML Dateien hier gespeichert werdenWenn diese Datei in einem Webbrouser geöffnet wirdzeigt diese automatisch auf VehInfo_Stylesheet.xsl in dem db Verzeichnis und präsentiert die Daten mit dem richtigen Stylesheet.
  
 ==== lib_lua ==== ==== lib_lua ====
-In here you can find some lua library scripts for generic functions+In dieser findest du einige Lua Bibliotheksskripte für generische Funktionen
  
 ==== lib_protocol ==== ==== lib_protocol ====
-In here you can find some lua library scripts for diagnostic related functions+In dieser hier findest du einige Lua Bibliotheksskripte für diagnosebezogene Funktionen
  
-==== local.make and local_template.make ==== +==== local.make und local_template.make ==== 
-local.make will contain your personal settingsIt is not part of the repository contentas it's content is different for each userTo generate your own local settingscopy the template file local_template.make and make your settings in local.make+local.make enthält deine persönlichen EinstellungenEs ist nicht Teil des Repositorysweil es für jeden Benutzer unterschiedlich istUm die eigenen Einstellungen zu erzeugenkopiere die Templatedatei lokal template.make und mache deine Einstellungen in local.make
  
   cp local_template.make local.make   cp local_template.make local.make
  
-==== makefile ==== +==== Makefile ==== 
-Also here in the lua base directory the makefile is needed for the build processJust don't change it.+Auch in dem lua Basisverzeichnis wird das Makefile für den Bauprozess benötigtÄndere es einfach nicht.
  
  
-===== Running the make process =====+===== Durchlauf des Makeprozesses =====
  
-In opposite to all the complicate setup and explanations abovethe build process is just simple:+Im Gegensatz zu dem komplizierten Setup und den obigen Erklärungenist der eigentliche Bauprozess sehr einfach:
  
-Edit or add the files as you needFor a good startchoose one of the existing *.lua filescopy it to where you need it and give it a clear nameMake sure that the script capabilities do not exceed the security rights of the workgroup folder they are stored in. +Bearbeite oder füge Dateien hinzu wie Du es benötigstFür einen guten Startwähle eins der existierenden *.lua Dateienkopiere es wohin du es benötigst und gib Ihm einen eindeutigen NamenStelle sicher das die Fähigkeiten des Skriptes, nicht die Sicherheitsrechte des Arbeitsgruppenordners überschreiten in dem es abgelegt ist
  
-Then type in the cygwin command line windows the following commands one after the otherIf you do this in a workgroup folderonly the files in that folder will be proceedIf you type the commands in the lua root folderthen all workgroup folderswhich you have listed in the local.make will be proccessed.+Tippe dann die cygwin Kommandozeilenbefehle in das Cygwinterminalfenster, eins nach dem anderen einWenn Du dies in einem Arbeitsgruppenordner machstwerden nur die Dateien in diesem Ordner bearbeitetWenn Du die Kommandos in in einem Lua-Wurzelverzeichnis zur Ausführung bringstwerden alle Arbeitsverzeichnissewelche Du in local.make eingetragen hast, ausgeführt.
  
-  - **make clean**: this will remove all older results and temporary files +  - **make clean**: dies entfernt alle älteren Ergebnisse und temporären Dateien. 
-  - **make**: This will convert all module XML filesall other templates and all *.lua files into Lua source files with the extension .luasource. Although normal *.lua files will only been copied by thisthis renaming is necessary to not accidently delete some handwritten *.lua files when calling "make clean" +  - **make**: Dies konvertiert alle Modul-xml Dateien alle anderen Templates und alle *.lua Dateien in Lua Quelldateien mit der Endung .luasource. Obwohl normale *.lua Dateien damit kopiert werden, ist diese Namensänderung notwendigum nicht ungewollt einige handgeschriebenen *.lua Dateien beim Aufruf von "make clean" zu löschen. 
-  - **make scripts**: This will now start the real compile processwhere the lua- compiler takes all luasource files and translates them into precompiled binaries (*.lbc). HintDuring the compilation of a script all include files are linked together in a temporary file called lua.tmp. If the compiler fails with any error messagethat is the right file to look into why the compiler is complaining+  - **make scripts**: Dies startet den eigentlichen Übersetzungsprozessin dem der lua-Übersetzer alle luasource Daten nimmt und sie in vorübersetzte Binärdateien übersetzt.(*.lbc). HinweisWährend der Übersetzung eines Skripts, werden alle include Dateien mit einer temporären Datei zusammengefasst und unter lua.tmp abgelegt.Wenn der Übersetzer mit einer Fehlernachricht abbrichtist dies die richtige Datei um nachzuschauen woran der Übersetzer gescheitert ist
-  - **make pack**: When enabled and configured in local.make, this call will take all compiled *.lbc files and encrypt them accourding to the workgroup directory in which they are in, make up the folderstructure in the target directorywhich is also configured in local.make, and and copy the results into it.+  - **make pack**: Wenn dies konfiguriert und eingeschaltet ist im local.make wird es die übersetzten *.lbc Dateien nehmen und in Abhängigeit des Verzeichnisses, in dem Sie sich befindenverschlüsseln, eine Ordnerstruktur im Zielverzeichnis erstellen, wie sie in local.make konfiguriert worden ist und dann die Ergebnisse dorthin kopieren.
      
-After that the final output can be found in the configured target directory, encrypted and ready to distribute.+Danach kann das Ergebnis in dem konfigurierten Zielverzeichnis gefunden werden und ist nun bereit zur Verteilung.
de/doc/lua_make.1414341074.txt.gz · Last modified: 2014/10/26 17:31 by wsauer