tpp 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/tpp +1764 -0
- data/examples/ac-am.tpp +406 -0
- data/examples/align-footer.tpp +15 -0
- data/examples/bold.tpp +40 -0
- data/examples/colors.tpp +19 -0
- data/examples/colors2.tpp +24 -0
- data/examples/debian-packaging.tpp +802 -0
- data/examples/exec.tpp +9 -0
- data/examples/horline.tpp +6 -0
- data/examples/huge.tpp +22 -0
- data/examples/list.tpp +26 -0
- data/examples/manyslides.tpp +204 -0
- data/examples/shell.tpp +40 -0
- data/examples/slidein.tpp +51 -0
- data/examples/source.tpp +49 -0
- data/examples/test.tpp +17 -0
- data/examples/tpp-features.tpp +161 -0
- data/examples/wrap.tpp +20 -0
- metadata +98 -0
data/examples/ac-am.tpp
ADDED
@@ -0,0 +1,406 @@
|
|
1
|
+
--title autoconf und automake
|
2
|
+
--author Andreas Krennmair
|
3
|
+
--date today
|
4
|
+
Praktisch jede Software unter Linux wird mit ./configure ; make ; make
|
5
|
+
install konfiguriert, compiliert und installiert. Ich m�chte heute
|
6
|
+
zeigen, wie man selbst mit Autoconf und Automake den Konfigurations- und
|
7
|
+
�bersetzungsprozess automatisieren kann, und was das f�r portable
|
8
|
+
Software bringen kann.
|
9
|
+
--newpage agenda
|
10
|
+
--heading Agenda
|
11
|
+
|
12
|
+
* Einf�hrung
|
13
|
+
|
14
|
+
* Makefiles
|
15
|
+
|
16
|
+
* Autoconf alleine
|
17
|
+
|
18
|
+
* Autoconf und Automake
|
19
|
+
--newpage intro
|
20
|
+
--heading Einf�hrung: Geschichte der automatisierten Compilierung unter Unix
|
21
|
+
|
22
|
+
* Anfangs: Shellskripte namens make im Sourceverzeichnis (bis Unix V6)
|
23
|
+
* Ab Unix V7: Programm make, Information aus Datei makefile
|
24
|
+
* makefile enth�lt Informationen, welchen Dateien (Targets) aus welchen
|
25
|
+
Dateien (Dependencies) erzeugt werden, und welche Kommandos dazu
|
26
|
+
aufgerufen werden m�ssen.
|
27
|
+
* Makefiles funktionierten anfangs ganz gut, bis die ersten Unix-
|
28
|
+
Varianten erschienen, die subtil anders als die bisherigen Unixe waren.
|
29
|
+
Software sollte aber portabel bleiben.
|
30
|
+
* Einfache L�sung: ein Target pro Zielplattform.
|
31
|
+
* Nachteil: bei mehr Plattformen ansteigender Wartungsaufwand
|
32
|
+
--newpage intro-conf
|
33
|
+
--heading Einf�hrung: erste automatisierte Konfiguration
|
34
|
+
|
35
|
+
* Makefile-L�sung h�rte auf zu skalieren, als immer mehr und immer
|
36
|
+
obskurere Unix-Varianten auftauchten, auf die die Entwickler von
|
37
|
+
Software noch dazu keinen Zugriff mehr hatten.
|
38
|
+
* Erste L�sung Mitte bis Ender der 80er Jahre: Configure
|
39
|
+
* Larry Wall wollte, dass seine Software (insbesondere Perl) portabel
|
40
|
+
auf m�glichst vielen Unix-Plattformen l�uft.
|
41
|
+
* Schreib Shellskript Configure, das Informationen �ber das System
|
42
|
+
sammelte, und aus *.SH-Dateien dementsprechende Dateien generierte
|
43
|
+
(Makefile.SH -> Makefile)
|
44
|
+
* Vorteil: Perl konnte ohne grossen Portierungsaufwand auf vielen,
|
45
|
+
tewilweise recht obskuren Unix-Systemen betrieben werden.
|
46
|
+
--newpage intro-gnu
|
47
|
+
--heading Einf�hrung: Konfiguration f�r GNU
|
48
|
+
|
49
|
+
* GNU-Software sollte m�glichst portabel sein
|
50
|
+
* GNU-Projekt griff Larry Wall's Idee auf, und realisierte im
|
51
|
+
wesentlichen zwei Frameworks, um das Konfigurieren und �bersetzen von
|
52
|
+
GNU-Software m�glichst portabel und einfach wartbar zu halten.
|
53
|
+
* Konfiguration: autoconf
|
54
|
+
* �bersetzung: automake
|
55
|
+
* Status heute: Autoconf und Automake sind ein Quasi-Standard bei Freier
|
56
|
+
Software/Open Source
|
57
|
+
--newpage makefiles
|
58
|
+
--heading Einfache Makefiles
|
59
|
+
|
60
|
+
Makefiles bestehen im wesentlichen aus zwei Bereichen:
|
61
|
+
|
62
|
+
* Variablendefinitionen
|
63
|
+
* Zieldefinitionen
|
64
|
+
|
65
|
+
Variablen werden verwendet, um gleiche "Textbausteine", die �fters im
|
66
|
+
Makefile vorkommen, zusammenzufassen und parametrisierbar zu machen, z.B.
|
67
|
+
Compilerkommandos, Compilerflags, Ausgabedatei, ...
|
68
|
+
|
69
|
+
Zieldefinitionen geben an, welche Datei erzeugt werden soll, von welchen
|
70
|
+
Dateien diese Datei abh�ngig ist, und mit welchem Kommando die Datei aus
|
71
|
+
diesen Abh�ngigkeiten erzeugt wird. Diese Zieldefinition definiert ein
|
72
|
+
sog. "Target". Wird ein Target aufgerufen, so wird das Kommando nur
|
73
|
+
ausgef�hrt, wenn die zu generierende Datei noch nicht existiert, oder wenn
|
74
|
+
eine der Abh�ngigkeiten erst generiert werden muss, oder wenn eine der
|
75
|
+
Abh�ngigkeiten neuer ist als die bestehende Datei So werden unn�tige
|
76
|
+
Compile-Vorg�nge vermieden.
|
77
|
+
--newpage example1
|
78
|
+
--heading Beispiel 1: einfaches Makefile
|
79
|
+
|
80
|
+
--beginoutput
|
81
|
+
# Kommentar
|
82
|
+
LATEX=pdflatex # Variablendefinition
|
83
|
+
|
84
|
+
ac-am.pdf: ac-am.tex # Zieldefinition
|
85
|
+
$(LATEX) ac-am.tex # <Tabulator>Kommando
|
86
|
+
--endoutput
|
87
|
+
--newpage example2
|
88
|
+
--heading Beispiel 2: gleichartige Targets zusammenfassen
|
89
|
+
|
90
|
+
--beginoutput
|
91
|
+
LATEX=pdflatex
|
92
|
+
RM=rm -f
|
93
|
+
PDFFILES=ac-am.pdf
|
94
|
+
|
95
|
+
all: $(PDFFILES)
|
96
|
+
|
97
|
+
%.pdf: %.tex
|
98
|
+
$(LATEX) $<
|
99
|
+
|
100
|
+
clean:
|
101
|
+
$(RM) $(PDFFILES) *.aux *.log
|
102
|
+
--endoutput
|
103
|
+
--newpage
|
104
|
+
--heading Beispiel 3: modulares C-Programm �bersetzen
|
105
|
+
|
106
|
+
--beginoutput
|
107
|
+
CC=gcc
|
108
|
+
CFLAGS=-Os -Wall
|
109
|
+
OBJS=foo.o bar.o baz.o quux.o
|
110
|
+
OUTPUT=xyzzy
|
111
|
+
|
112
|
+
all: $(OUTPUT)
|
113
|
+
$(OUTPUT): $(OBJS)
|
114
|
+
$(CC) $(CFLAGS) $(LDFLAGS) -o $(OUTPUT) $(OJBS) $(LIBS)
|
115
|
+
|
116
|
+
%.o: %.c
|
117
|
+
$(CC) $(CFLAGS) $(DEFINES) -c $<
|
118
|
+
|
119
|
+
clean:
|
120
|
+
$(RM) $(OBJS) $(OUTPUT) core *.core
|
121
|
+
.PHONY: all clean
|
122
|
+
--endoutput
|
123
|
+
--newpage limitations
|
124
|
+
--heading Limtationen von Makefiles
|
125
|
+
|
126
|
+
Makefiles funktionieren zwar bei kleineren, einfachen Programmen, wer
|
127
|
+
jedoch gr��ere, portable Software schreiben will, st��t mit make und
|
128
|
+
Makefiles schnell an Grenzen.
|
129
|
+
|
130
|
+
Die Unterschied zwischen den einzelnen Unix-Systemen sind z.B. folgende:
|
131
|
+
|
132
|
+
* Strukturen unterscheiden sich
|
133
|
+
* Funktionen sind unterschiedlich deklariert
|
134
|
+
* #defines sind anders benannt oder existieren nicht
|
135
|
+
* Manche Funktionen sind nicht mehr in der libc, sondern in externe
|
136
|
+
Libraries ausgelagert (z.B. Sockets nach libsocket).
|
137
|
+
|
138
|
+
Auf diese Unterschiede kann make nicht eingehen. Deswegen muss man einen
|
139
|
+
Konfigurationsmechanismus einf�hren, der dies kann.
|
140
|
+
--newpage autoconf1
|
141
|
+
--heading Autoconf, Schritt 1: configure-Skript erzeugen
|
142
|
+
|
143
|
+
Autoconf bietet die M�glichkeit, auf eine gro�e Anzahl von Kommandos und
|
144
|
+
Tests zur�ckzugreifen, um m�glichst alle relevanten Systemparameter
|
145
|
+
abzurufen. Diese Tests werden in einer Datei configure.in abgelegt, aus
|
146
|
+
dem dann mit dem Kommando autoconf die Datei configure erzeugt wird. Mit
|
147
|
+
dem Kommando autoheader wird die Datei config.h.in erzeugt.
|
148
|
+
|
149
|
+
Ruft man ./configure auf, so sammelt das configure-Skript die
|
150
|
+
Konfigurationsinformationen, und generiert aus config.h.in die Datei
|
151
|
+
config.h sowie alle in configure.in angegebenen zu konfigurierenden
|
152
|
+
Dateien, das ist meistens Makefile.in, aus der Makefile erzeugt wird.
|
153
|
+
|
154
|
+
Die configure.in-Datei l�sst sich �brigens erzeugen, indem man autoscan
|
155
|
+
aufruft, und die resultierende Datei configure.scan in configure.in
|
156
|
+
umbenennt.
|
157
|
+
--newpage autoconf2
|
158
|
+
--heading Autoconf, Schritt 2: Makefile.in erstellen
|
159
|
+
|
160
|
+
Die Datei Makefile.in wird wie ein normales Makefile geschrieben,
|
161
|
+
mit dem Unterschied, dass f�r bestimmte Variablen, deren Wert vom
|
162
|
+
configure-Skript bestimmt werden, spezielle Platzhalter eingef�gt
|
163
|
+
werden. Das sieht dann z.B. so aus:
|
164
|
+
--beginoutput
|
165
|
+
CC=@CC@
|
166
|
+
CFLAGS=@CFLAGS@ @DEFS@
|
167
|
+
LDFLAGS=@LDFLAGS@
|
168
|
+
LIBS=@LIBS@
|
169
|
+
--endoutput
|
170
|
+
|
171
|
+
Der Rest des Makefile sieht wie ein normales Makefile aus. Um auf
|
172
|
+
s�mtliche ermittelten Parameter zugreifen zu k�nnen, m�ssen die
|
173
|
+
einzelnen C-Sourcefiles nur noch die Datei config.h inkludieren.
|
174
|
+
Damit ist Autoconf vollst�ndig integriert und das Buildsystem darauf
|
175
|
+
angepasst.
|
176
|
+
--newpage autoconf3
|
177
|
+
--heading Autoconf, Zusammenfassung
|
178
|
+
|
179
|
+
In einer Minute zur Sourcekonfiguration mit Autoconf:
|
180
|
+
--beginshelloutput
|
181
|
+
$ autoscan && mv configure.scan configure.in
|
182
|
+
---
|
183
|
+
$ $EDITOR configure.in
|
184
|
+
---
|
185
|
+
$ autoconf
|
186
|
+
---
|
187
|
+
$ autoheader
|
188
|
+
---
|
189
|
+
$ $EDITOR Makefile.in
|
190
|
+
--endshelloutput
|
191
|
+
|
192
|
+
Fertig!
|
193
|
+
--newpage confex1
|
194
|
+
--heading Beispiel f�r configure.in (1)
|
195
|
+
|
196
|
+
--beginoutput
|
197
|
+
AC_PREREQ(2.57)
|
198
|
+
AC_INIT(akpop3d, 0.7.7, ak@synflood.at)
|
199
|
+
AC_CONFIG_SRCDIR([authenticate.c])
|
200
|
+
AC_CONFIG_HEADER([config.h])
|
201
|
+
|
202
|
+
# Checks for programs.
|
203
|
+
AC_PROG_CC
|
204
|
+
AC_PROG_INSTALL
|
205
|
+
--endoutput
|
206
|
+
--newpage confex2
|
207
|
+
--heading Beispiel f�r configure.in (2)
|
208
|
+
|
209
|
+
--beginoutput
|
210
|
+
# Checks for header files.
|
211
|
+
AC_HEADER_STDC
|
212
|
+
AC_HEADER_SYS_WAIT
|
213
|
+
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netdb.h
|
214
|
+
netinet/in.h shadow.h stdlib.h string.h sys/file.h
|
215
|
+
sys/socket.h sys/time.h syslog.h unistd.h])
|
216
|
+
|
217
|
+
# Checks for typedefs, structures, and compiler
|
218
|
+
# characteristics.
|
219
|
+
AC_C_CONST
|
220
|
+
AC_TYPE_UID_T
|
221
|
+
AC_TYPE_OFF_T
|
222
|
+
AC_TYPE_PID_T
|
223
|
+
AC_TYPE_SIZE_T
|
224
|
+
AC_HEADER_TIME
|
225
|
+
--endoutput
|
226
|
+
--newpage confex3
|
227
|
+
--heading Beispiel f�r configure.in (3)
|
228
|
+
--beginoutput
|
229
|
+
# Checks for library functions.
|
230
|
+
AC_FUNC_ALLOCA
|
231
|
+
AC_FUNC_FORK
|
232
|
+
AC_FUNC_REALLOC
|
233
|
+
AC_FUNC_SELECT_ARGTYPES
|
234
|
+
AC_FUNC_STAT
|
235
|
+
AC_CHECK_FUNCS([atexit dup2 getspnam inet_ntoa
|
236
|
+
memchr memset select socket strchr strerror
|
237
|
+
strncasecmp strrchr])
|
238
|
+
|
239
|
+
AC_CONFIG_FILES([Makefile])
|
240
|
+
AC_OUTPUT
|
241
|
+
--endoutput
|
242
|
+
--newpage functions
|
243
|
+
--heading Weitere n�tzliche Autoconf-Funktionen
|
244
|
+
|
245
|
+
* AC_CHECK_LIB(library,symbol): wenn symbol in Library library
|
246
|
+
gefunden wird, wird -llibrary zu den LDFLAGS hinzugef�gt und
|
247
|
+
HAVE_LIBLIBRARY=1 in config.h definiert.
|
248
|
+
* AC_DEFINE([KEY],[VALUE]): in config.h wird #define KEY VALUE
|
249
|
+
eingetragen.
|
250
|
+
* AC_ARG_WITH(option,[beschreibung]): das configure-Skript um
|
251
|
+
eine --with-option Option erweitern.
|
252
|
+
* AC_ARG_ENABLE(option,[beschreibung]): das configure-Skript um
|
253
|
+
eine --enable-option Option erweitern.
|
254
|
+
--newpage funcex1
|
255
|
+
--heading Beispiele zu n�tzlichen Autoconf-Funktionen
|
256
|
+
|
257
|
+
--beginoutput
|
258
|
+
AC_ARG_WITH(openssl, [ --with-openssl use OpenSSL])
|
259
|
+
if test "$with_openssl" != "no" ; then
|
260
|
+
AC_CHECK_LIB(crypto,BIO_new)
|
261
|
+
AC_CHECK_LIB(ssl,SSL_new)
|
262
|
+
fi
|
263
|
+
AC_ARG_ENABLE(rfc2449, [ --enable-rfc2449 enable RFC 2449 support])
|
264
|
+
if test "$enable_rfc2449" != "no" ; then
|
265
|
+
AC_DEFINE([ENABLE_RFC2449],[1],[rfc2449])
|
266
|
+
fi
|
267
|
+
--endoutput
|
268
|
+
--newpage funcauto
|
269
|
+
--heading Funktionsweise von Autoconf
|
270
|
+
|
271
|
+
* Vorgefertige Tests in Form von m4-Makros verf�gbar
|
272
|
+
* Autoconf l�sst configure.in durch m4 laufen, daraus entsteht
|
273
|
+
configure-Skript, was nicht anders als ein Shellskript ist.
|
274
|
+
* -> man kann durch Einf�gen von eigenem Shellcode eigene Tests
|
275
|
+
durchf�hren.
|
276
|
+
* -> oder man greift auf http://ac-archive.sourceforge.net/ zur�ck,
|
277
|
+
einem umfangreichen Archiv von hunderten Autoconf-Macros.
|
278
|
+
|
279
|
+
--beginoutput
|
280
|
+
if test x`uname -s` = "xDarwin" ; then
|
281
|
+
AC_DEFINE([HAVE_DARWIN],[1],[define whether we have Darwin])
|
282
|
+
fi
|
283
|
+
--endoutput
|
284
|
+
--newpage macroself
|
285
|
+
--heading Autoconf-Makros selbst schreiben
|
286
|
+
|
287
|
+
Autoconf-Makros sind ein Mischmasch aus m4-Skript und Shellskript.
|
288
|
+
|
289
|
+
--beginoutput
|
290
|
+
AC_DEFUN([AC_C_LONG_LONG],
|
291
|
+
[AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
|
292
|
+
[if test "$GCC" = yes; then
|
293
|
+
ac_cv_c_long_long=yes
|
294
|
+
else
|
295
|
+
AC_TRY_COMPILE(,[long long int i;],
|
296
|
+
ac_cv_c_long_long=yes,
|
297
|
+
ac_cv_c_long_long=no)
|
298
|
+
fi])
|
299
|
+
if test $ac_cv_c_long_long = yes; then
|
300
|
+
AC_DEFINE(HAVE_LONG_LONG)
|
301
|
+
fi
|
302
|
+
])
|
303
|
+
--endoutput
|
304
|
+
--newpage automake1
|
305
|
+
--heading Automake: Einf�hrung
|
306
|
+
|
307
|
+
Automake ist daf�r gedacht, den eigentlichen �bersetzungsprozess so weit
|
308
|
+
wie m�glich zu vereinfachen, und dem User das Schreiben von eigenen
|
309
|
+
Makefile.in's abzunehmen. Automake setzt Autoconf voraus.
|
310
|
+
|
311
|
+
Die Makefile.am-Datei besteht wie ein Makefile aus Targets, die quasi
|
312
|
+
beliebig benannt werden k�nnen, und alle Kommandos enthalten wie auch
|
313
|
+
ein Target in einem Makefile oder Makefile.in.
|
314
|
+
|
315
|
+
Zus�tzlich existieren eine Reihe von speziellen Variablen, mit denen das
|
316
|
+
�bersetzen von Software einfacher wird.
|
317
|
+
|
318
|
+
--beginoutput
|
319
|
+
bin_PROGRAMS = hello
|
320
|
+
hello_SOURCES = hello.c main.c
|
321
|
+
EXTRA_DIST = hello.h
|
322
|
+
--endoutput
|
323
|
+
--newpage autocmd
|
324
|
+
--heading Automake: mehr Kommandos
|
325
|
+
|
326
|
+
--beginshelloutput
|
327
|
+
$ $EDITOR Makefile.am
|
328
|
+
---
|
329
|
+
$ autoscan && mv configure.scan configure.in
|
330
|
+
---
|
331
|
+
$ autoheader
|
332
|
+
---
|
333
|
+
$ aclocal
|
334
|
+
---
|
335
|
+
AM_INIT_AUTOMAKE(programname,version) in configure.in eintragen.
|
336
|
+
---
|
337
|
+
$ automake -a
|
338
|
+
---
|
339
|
+
$ autoconf
|
340
|
+
---
|
341
|
+
$ ls -l Makefile.in configure
|
342
|
+
-rw-r--r-- 1 ak staff 16048 16 Mar 20:03 Makefile.in
|
343
|
+
-rwxr-xr-x 1 ak staff 123354 16 Mar 20:03 configure
|
344
|
+
$
|
345
|
+
--endshelloutput
|
346
|
+
--newpage primaries
|
347
|
+
--heading Automake: Primaries
|
348
|
+
|
349
|
+
Die _PROGRAMS; _SOURCES, etc. Suffixe, die vorher gesehen haben, nennen
|
350
|
+
sich �brigen "Primaries". Weitere Primaries sind z.B.:
|
351
|
+
|
352
|
+
* DATA: gibt Datendateien an, die 1:1 mitinstalliert, ansonsten aber
|
353
|
+
ignoriert werden.
|
354
|
+
* HEADER: damit werden Headerfiles spezifiziert, die zusammen mit
|
355
|
+
Libraries installiert werden sollen.
|
356
|
+
* SCRIPTS: ausf�hrbare Skripte, die ebenfalls installiert werden,
|
357
|
+
jedoch nicht compiliert oder gestripped werden.
|
358
|
+
* MANS: gibt Manpages an, die ebenfalls mitinstalliert werden.
|
359
|
+
|
360
|
+
Die Grundbed�rfnisse f�r einfache und problemlose Konfigurations-,
|
361
|
+
�bersetzungs- und Installationsroutinen w�re damit gedeckt.
|
362
|
+
--newpage recam
|
363
|
+
--heading Rekursives Automake
|
364
|
+
|
365
|
+
Um den Inhalt von Unterverzeichnissen in den Automake-Vorgang
|
366
|
+
miteinzubeziehen, muss man lediglich alle relevanten Unterverzeichnisse
|
367
|
+
�ber die SUBDIRS-Variable angeben.
|
368
|
+
|
369
|
+
--beginoutput
|
370
|
+
SUBDIRS = m4 src doc
|
371
|
+
--endoutput
|
372
|
+
|
373
|
+
In jedem Unterverzeichnis muss nat�rlich wiederum eine Makefile.am
|
374
|
+
angelegt und daraus eine Makefile.in erzeugt werden. Ausserdem muss das
|
375
|
+
dann zu erzeugende Makefile in der configure.in angegeben werden, und
|
376
|
+
zwar via AC_CONFIG_FILES.
|
377
|
+
--newpage resumee
|
378
|
+
--heading Res�mee
|
379
|
+
|
380
|
+
* make mag veraltet und eingerostet wirken (wird seit Ende der
|
381
|
+
1970er eingesetzt), bietet aber ein m�chtiges System, um
|
382
|
+
Abh�ngigkeiten zu �berpr�fen, und unn�tige Compilevorg�nge zu
|
383
|
+
minimieren.
|
384
|
+
* Autoconf bietet ein m�chtiges System, um vielerlei systemabh�ngige
|
385
|
+
Konfigurationspunkte in Erfahrung zu bringen, was wiederum einen
|
386
|
+
Eckpfeiler f�r systemnahe und portable Programmierung bildet.
|
387
|
+
* Automake macht es f�r Entwickler besonders einfach, Softwarepakete
|
388
|
+
in eine Form zu bringen, dass sie �bersetzt und installiert werden
|
389
|
+
k�nnen.
|
390
|
+
* Autoconf und Automake m�gen suboptimale L�sungen sein
|
391
|
+
(./configure dauert lange, configure und Makefile.in sind
|
392
|
+
bei Automake extrem gross), stellen jedoch eine frei verf�gbare,
|
393
|
+
einfach anzuwendende und vor allem weit verbreitete L�sung dar.
|
394
|
+
--newpage literacy
|
395
|
+
--heading Literaturempfehlungen
|
396
|
+
|
397
|
+
* Das "Autobook": Autoconf, Automake and Libtool
|
398
|
+
http://sources.redhat.com/autobook/autobook/autobook_toc.html
|
399
|
+
* Autoconf Dokumentation:
|
400
|
+
http://www.delorie.com/gnu/docs/autoconf/autoconf_toc.html
|
401
|
+
* Automake Dokumentation:
|
402
|
+
http://www.delorie.com/gnu/docs/automake/automake_toc.html
|
403
|
+
--newpage end
|
404
|
+
--heading Und jetzt...
|
405
|
+
|
406
|
+
--huge Zum praktischen Teil!
|
@@ -0,0 +1,15 @@
|
|
1
|
+
--author Nico Golde
|
2
|
+
--title Testing Orientation
|
3
|
+
--footer and this is the footer line
|
4
|
+
--header and this is the header line
|
5
|
+
This is oriented left.
|
6
|
+
---
|
7
|
+
--center This is centered.
|
8
|
+
---
|
9
|
+
--right This is oriented right.
|
10
|
+
---
|
11
|
+
--beginoutput
|
12
|
+
It works even here
|
13
|
+
--center as you can see
|
14
|
+
--right in these three lines.
|
15
|
+
--endoutput
|
data/examples/bold.tpp
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
--author Andreas Krennmair
|
2
|
+
--title Boldtest
|
3
|
+
--newpage
|
4
|
+
This is normal text.
|
5
|
+
--boldon
|
6
|
+
This should be bold.
|
7
|
+
--boldoff
|
8
|
+
This should be normal again.
|
9
|
+
--revon
|
10
|
+
--center This should be reverse.
|
11
|
+
--revoff
|
12
|
+
This should be normal.
|
13
|
+
|
14
|
+
jjjjjjjjjjjjjjjjjjjjjjjjjjj
|
15
|
+
--revon
|
16
|
+
asdf jkl�
|
17
|
+
--boldon
|
18
|
+
asdf jkl�
|
19
|
+
--boldoff
|
20
|
+
asdf jkl�
|
21
|
+
--revoff
|
22
|
+
jjjjjjjjjjjjjjjjjjjjjjjjjjj
|
23
|
+
--newpage
|
24
|
+
--heading This is the heading
|
25
|
+
|
26
|
+
This should be normal
|
27
|
+
--ulon
|
28
|
+
This should be underlined
|
29
|
+
--revon
|
30
|
+
This should be underlined and reverse
|
31
|
+
--boldon
|
32
|
+
This should be underlined, reverse and bold
|
33
|
+
--center This should be underlined, reverse, bold and centered
|
34
|
+
--uloff
|
35
|
+
This should be reverse and bold
|
36
|
+
--revoff
|
37
|
+
This should be bold
|
38
|
+
--boldoff
|
39
|
+
This should be normal again
|
40
|
+
--huge This Is Huge!
|