|
Makefile |
# Makefile fuer MinMax
# Nummer der aktuellen Aufgabe (1-5), bekommt der C-Compiler als #define
# (wird bisher nur von PDVIXtest.c benoetigt)
AUFGABE = 1
# hier muessen alle Objektdateien fuer MinMax stehen
# bitte im Laufe der Aufgaben anpassen!
MXOBJS = mxInit.o MinMax.o mxAbbruch.o mxAusgabe.o \
mxCPUVerwaltung.o mxInterrupt.o mxKontrolle.o mxLader.o mxListe.o \
mxProzess.o mxSeriell.o mxSystem.o mxSystemDienst.o mxUhr.o \
mxUnterbrechung.o mxVT.o mxVektor.o mxLED.o \
mxUnterbrechungAsm.o mxTrap.o mxLib.o \
mxSystemAufruf.o mxBenutzer.o mxInterpreter.o
# hier stehen die zu uebersetzenden Benutzerprogramme
# in der 5. Aufgabe -- bitte vervollstaendigen!
EXES =
# hier stehen *alle* Benutzerprogramme (auch fertige aus dem apps-Verzeichnis),
# die in die Standard-Ramdisk sollen -- ggf. vervollstaendigen!
# ACHTUNG: wenn PDVIXtest.mxe *nicht* uebersetzt werden soll, muss der
# komplette Pfad angegeben werden, z. B. als $(APPDIR)/PDVIXtest.mxe
DISK = $(EXES)
# hier steht der make-Suchpfad fuer Quelldateien
# am besten die Arbeitsverzeichnisse der vorangegangenen Aufgaben
# nachtragen: SRCPATH = ../aufg4 ../aufg3 ../aufg2 ../aufg1
SRCPATH =
# ------ab hier sind "normalerweise" keine Aenderungen erforderlich --------
ROOTDIR = /home/pdv/info4
MINMAXDIR = $(ROOTDIR)/minmax99
TOOLDIR = $(ROOTDIR)/mx
MXINIT = mxInit.o
USEROBJS = mxSystemAufruf.o mxLib.o mxTrap.o
USERINIT = mxUserInit.o
MXSRCDIR = $(MINMAXDIR)/src
APPDIR = $(MINMAXDIR)/apps
CC = $(TOOLDIR)/bin/mx-gcc
LD = $(TOOLDIR)/bin/mx-ld
STRIP = $(TOOLDIR)/bin/mx-strip
NM = $(TOOLDIR)/bin/mx-nm
DISASM = $(TOOLDIR)/bin/mx-objdump --disassemble
BOOT = $(TOOLDIR)/bin/mxBoot
DISKER = $(TOOLDIR)/bin/mxMkFs
LINKER = $(TOOLDIR)/bin/mxLink
SCRIPT = $(TOOLDIR)/lib/std.ld
SCRIPT0 = $(TOOLDIR)/lib/mxe.0.ld
SCRIPT1 = $(TOOLDIR)/lib/mxe.1.ld
CFLAGS = -m68000 -Wall -O -ffreestanding -fomit-frame-pointer -DAUFGABE=$(AUFGABE)
CPPFLAGS = -I. $(SRCPATH:%=-I%) -I$(MXSRCDIR) -I-
LDFLAGS = -n -L$(TOOLDIR)/lib -L$(TOOLDIR)/lib/gcc/m68k-aout/4.1.1/m68000
ASFLAGS = -m68000 -c
BINAME = MinMax
BISYMS = $(BINAME).syms
SYMBOL = $(BINAME).map
DISKFILE = Standard.disk
DEPEND = $(MXOBJS:%.o=%.d) $(MXINIT:%.o=%.d) \
$(USEROBJS:%.o=%.d) $(USERINIT:%.o=%.d) \
$(EXES:%.mxe=%.d)
vpath %.c $(SRCPATH) $(MXSRCDIR)
vpath %.S $(SRCPATH) $(MXSRCDIR)
vpath %.mxe $(SRCPATH) $(APPDIR)
.PHONY: clean distclean all Image dump boot diskboot programs disk dep dep2 help
all: $(BINAME) $(DISK)
help:
@echo "** MinMax99-Makefile -- Kurzanleitung **"
@echo "1) make-Ziele mit Sonderfunktionen:"
@echo " clean* alle Objekt-Files und Muell loeschen"
@echo " distclean alle erzeugbaren Dateien loeschen"
@echo " boot* alles uebersetzen und booten"
@echo " dump MinMax.syms erzeugen und disassemblieren"
@echo " dep* Datei-Abhaengigkeiten neu ermitteln"
@echo " help diese Hilfe anzeigen"
@echo "2) Uebersetzung bestimmter Dateigruppen:"
@echo " all alles, MinMax und evtl. eingetragene EXES"
@echo " Image MinMax-Kern"
@echo " programs alle unter EXES eingetragenen Programme"
@echo " disk eine ladbare RAM-Disk aus den EXES"
@echo "(Die Ziele mit * reichen fuers Praktikum prinzipiell aus.)"
Image: $(BINAME)
dump: $(BISYMS)
$(DISASM) $(BISYMS)
boot: $(BINAME) $(DISK)
$(BOOT) $^
diskboot: boot
clean:
rm -f *.o *.d *.syms *.map *.mx0 *.mx1 *~
distclean: clean
rm -f $(EXES) $(BINAME) $(DISKFILE) syslog.out
programs: $(DISK)
disk: $(DISKFILE)
$(DISKFILE): $(DISK)
$(DISKER) $^ > $@
$(BINAME) $(BISYMS) $(SYMBOL): $(MXINIT) $(MXOBJS)
$(LD) $(LDFLAGS) -T$(SCRIPT) -Map $(SYMBOL) -o $@ $^ -lgcc
chmod 644 $@
cp -f $@ $(BISYMS)
$(STRIP) $@
# Zeug fuer die automatischen Abhaengigkeiten
dep:
rm -f *.d
$(MAKE) dep2
dep2: $(DEPEND)
%.d: %.c
$(CC) -MM $(CPPFLAGS) $^ > $@
%.d: %.S
$(CC) -MM $(CPPFLAGS) $^ > $@
include $(DEPEND)
# Pattern Rules fuer Benutzer-Programme (5. Aufgabe)
%.mxe: %.mx0 %.mx1
$(LINKER) $*
%.mx0 %.map: $(USERINIT) %.o $(USEROBJS)
$(LD) $(LDFLAGS) -T$(SCRIPT0) -Map $*.map -o $@ $^ -lgcc
%.mx1: $(USERINIT) %.o $(USEROBJS)
$(LD) $(LDFLAGS) -T$(SCRIPT1) -o $@ $^ -lgcc
Bei Problemen mit der Seite bitte eine Mail an Marek
Converted with C2HTML V0.669 by Iluvatar
Prozeßdatenverarbeitung