Kommentering af makefile

Vi har valgt at lave en makefile til Svendsk, da der compileres og linkes en hel del filer.

Der bruges fire værktøjer til generering af svendsk.exe (compileren): BISON, FLEX, Borland C++ (BCC) og MAKE. Vi vil beskrive de to første værktøjer i detaljer andetsteds i dette dokument, hvorimod BCC og MAKE kun beskrives overfladisk.

Følgende er første version af vores makefile og i forhold til den endelige version (se bilag) mangler den ting som linkning af symbol-tabellen.

# Makefile for Svendsk.exe - en Svendsk->Java Compiler

svendsk.exe : svendsk.obj lexyy.obj
	bcc -esvendsk.exe svendsk.obj lexyy.obj

svendsk.obj : svendsk.c svendsk.h
	bcc -c -w-ccc -w-rch -w-pro -Ic:\borlandc\classlib\include -Lc:\borlandc\classlib\lib svendsk.c

svendsk.c : svendsk.y
	c:\flex_bis\bison -v -d -Hc:\flex_bis\bison.h -Sc:\flex_bis\bison.cc -o svendsk.c svendsk.y

lexyy.obj : lexyy.c svendsk.h
	bcc  -c -w-ccc -w-rch -w-pro lexyy.c

lexyy.c : svendsk.l
	c:\flex_bis\flex -I -8 -Hc:\flex_bis\flexskel.h -Sc:\flex_bis\flexskel.cc svendsk.l
Eksempel 7-1: Makefile, første udgave


BISON

Version 1.21-5, tilpasset fra GNU BISON af coetmeur@icdc.fr.

I nedenstående tabel redegøres for betydningen af de valgte parametre i BISON.

-d Beder BISON producere header-filen svendsk.h der indeholder bl.a. #define's af brugte tokens. Headerfilen kan derefter bruges i andre programmer, fx i den leksikalske analyse, dvs. FLEX.
-o Angiver navnet på output-filen (svendsk.c), dvs. den genererede BISON parser.
-H Angiver den fulde sti til filen bison.h
-S Angiver den fulde sti til filen bison.cc
Tabel 7-1: Brugte parametre i BISON


FLEX
Version 3.0.2, baseret på 2.3.8 og ændret af coetmeur@icdc.fr til C++.

I nedenstående tabel redegøres for betydningen af de valgte parametre i FLEX.

-8 Fortæller FLEX, at den skal generere en 8-bit scanner, dvs en scanner der kan forstå 8-bit karakterer (fx æ, ø og å). Hvis man ikke medtager denne parameter, vil man i stedet få genereret en 7-bit scanner, dvs en scanner der kun forstår 128 tegn. Giver man den en 8-bit karakter, kan det resultere i uendelige løkker.
-H Angiver stien til FLEXs header-skelet fil, dvs. den fil FLEX bruger til at generere scanneren med.
-S Angiver stien til FLEXs C-skelet fil.
Tabel 7-2: Brugte parametre i FLEX


Borland C++ (BCC)
Version 3.1 - Copyright (c) 1992 Borland International

I nedenstående tabel redegøres for betydningen af de valgte parametre i BCC.


-c

Filerne skal kun compileres, dvs ingen linkning.
-e Angiver et navn til den producerede eksekverbare fil.
-w Bruges til at fjerne diverse warnings som kan forekomme når de BISON og FLEX genererede filer (hhv. svendsk.c og lexyy.c) skal kompileres.
-I Stien til include-filerne.
-L Stien til include-bibliotekerne.
Tabel 7-3: Brugte parametre i BCC


MAKE

Version 5.1 Copyright (c) 1987, 1998 Borland International

En makefile er en avanceret batch-fil, dvs en fil der letter trivielle opgaver.

MAKE bruges til at køre vores makefile og behøver kun parametre, hvis den skal lave en speciel aktion; fx en 'clean'.