# datei: makefile
# ͻ
#  MAKEFILE                                                                                                                       
#                                                                                                                                 
#  Aufruf: mk166        // Generierung aller Dateien laut Toolkette                                                               
#          mk166 clean  // Lschen aller erzeugten Dateien                                                                        
#                                                                                                                                 
# ͼ
# ͻ
#  Hinweis_1:                                                                                                                     
#                                                                                                                                 
#  Wird das MAKEFILE mit "mk166 clean" von MS-DOS oder von MS-WINDOWS (Codewright) aufgerufen, dann werden alle unter dem Label   
#  clean angegebenen Dateien gelscht.                                                                                            
#                                                                                                                                 
# ͼ
# ͻ
#  Hinweis_2:                                                                                                                     
#                                                                                                                                 
#  Wird das MAKEFILE mit "mk166" von MS-DOS oder von MS-WINDOWS (Codewright) aufgerufen, dann werden alle Dateien laut Toolkette  
#  erzeugt.                                                                                                                       
#  Bereits bersetzte und noch aktuelle Dateien werden nicht nochmals bersetzt -> Zeitersparnis !!!                              
#                                                                                                                                 
# ͼ
# ͻ
#  Hinweis_3:                                                                                                                     
#                                                                                                                                 
#  Ein MAKEFILE liest man am besten von unten nach oben.                                                                          
#  Wichtig fr make ist die vom Betriebssystem fr die zu bearbeitenden Dateien gesetzte Uhrzeit.                                 
#                                                                                                                                 
#  Es wird nur dann der Compiler, Assembler, Linker, Locater oder Objekt-Hex-Wandler aufgerufen, wenn die "Ergebnisdatei"         
#  lteren Datums als die "Ursprungsdatei(en)" ist (sind) oder die "Ergebnisdatei" nicht vorhanden ist (Vorteil: Zeitersparnis).  
#                                                                                                                                 
#  In den ersten beiden Zeilen des Makefile (Leserichtung von unten nach oben) steht:                                             
#                                                                                                                                 
#  serio.src: serio.c serio.h                                                                                                     
#   C166 -x -s -g -Ms serio.c                                                                                                     
#                                                                                                                                 
#  Diese beiden Zeilen werden von mk166 folgendermaen interpretiert:                                                             
#  serio.src ist die "Ergebnisdatei" der "Ursprungsdateien" serio.c und serio.h                                                   
#  Ist serio.src nicht vorhanden oder hat serio.src ein lteres Datum als serio.c oder serio.h dann wird serio.src (neu) erzeugt. 
#  Wie das "Erzeugen" aussieht steht in der nchsten Zeile (mit TAB oder BLANK) eingerckt.                                       
#  In unserem Beispiel ist es ein Compileraufruf C166.                                                                            
#  -x bedeutet Mikrocontroller = C167                                                                                             
#  -s bedeutet Assemblercode in der Protokolldatei anfhren                                                                       
#  -g erzeugt HLL-Debug-Information                                                                                               
#  -Ms selektiert das verwendete Speichermodell (s...small)                                                                       
#                                                                                                                                 
# ͼ



# OBJEKT-HEX-WANDLER:
# Verwandelt den OUTPUT vom Locater in ein Format, welches von EEPROM-Programmern oder in unserem Beispiel vom Monitor verstanden
# wird.
sport.h86: sport.out
 IHEX166 sport.out -i32 -o sport.h86

# LOCATER:
# Der Locater wandelt verschiebbare Programm/Datensegmente in ablauffaehige Segmente mit festen Adressen (er verteilt sie dabei
# auf den verfuegbaren Speicher.
sport.out: sport.lno cmd_loc.e_e
 L166 LOCATE @cmd_loc.e_e TO sport.out

# LINKER:
# Der Linker fuegt nach gewissen Regeln Programm-  und Daten-Segmente zusammen.
sport.lno: cstart.obj serio.obj _doprint.obj fehler.obj sport.obj cmd_link c:\bso_v5\lib\ext\c166s.lib c:\bso_v5\lib\ext\f166s.lib
 L166 LINK @cmd_link

# ASSEMBLER
# Der Assembler uebersetzt den vom Compiler/Makroassembler erzeugten mnemonischen Code in Maschinenkode
sport.obj: sport.src
 A166 sport.src TO sport.obj
fehler.obj: fehler.src
 A166 fehler.src TO fehler.obj
_doprint.obj:  _doprint.src
 A166 _doprint.src  TO _doprint.obj
serio.obj:  serio.src
 A166 serio.src  TO serio.obj
cstart.obj: cstart.src
 A166 cstart.src TO cstart.obj

# MAKROASSEMBLER
cstart.src: cstart.asm
 m166 cstart.asm

# COMPILER
sport.src: sport.c
 C166 -x -s -g -Ms sport.c
fehler.src: fehler.c
 C166 -x -s -g -Ms fehler.c
_doprint.src:  _doprint.c
 C166 -x -s -g -Ms _doprint.c
serio.src:  serio.c serio.h
 C166 -x -s -g -Ms serio.c


clean:
       $(exist sport.src del sport.src)
       $(exist sport.obj del sport.obj)
       $(exist sport.lst del sport.lst)
       $(exist sport.lno del sport.lno)
       $(exist sport.out del sport.out)
       $(exist sport.map del sport.map)
       $(exist sport.h86 del sport.h86)
       $(exist fehler.src del fehler.src)
       $(exist fehler.obj del fehler.obj)
       $(exist fehler.lst del fehler.lst)
       $(exist _doprint.src del _doprint.src)
       $(exist _doprint.obj del _doprint.obj)
       $(exist _doprint.lst del _doprint.lst)
       $(exist serio.src del serio.src)
       $(exist serio.obj del serio.obj)
       $(exist serio.lst del serio.lst)
       $(exist cstart.src del cstart.src)
       $(exist cstart.obj del cstart.obj)
       $(exist cstart.lst del cstart.lst)
