bei-ekke
/ HTML Tidy in Deutsch
/ Einführung zu TidyLib
/ Makefile.vc6 mit deutschen Kommentaren
# Makefile.vc6 - für tidy - HTML Syntaxanalyser und gut Formatierer # Für die Verwendung mit dem Microsoft's Visual C++ 6 nmake Werkzeug # # $Date: 2002/11/08 18:36:13 $ # $Revision: 1.2.2.8 $ # # Verwendung: # nmake /f Makefile.vc6 all # nmake /f Makefile.vc6 clean # nmake /D /f Makefile.vc6 all > nmake_d_all.txt # nmake /D /f Makefile.vc6 clean > nmake_d_clean.txt # oder # nmake /f Makefile.vc6 all DEBUG=1 # nmake /f Makefile.vc6 clean DEBUG=1 # nmake /D /f Makefile.vc6 all DEBUG=1 > nmake_d_all_debug.txt # nmake /D /f Makefile.vc6 clean DEBUG=1 > nmake_d_clean_debug.txt CC=cl RC=rc LD=link BINDIR= .\bin INCLDIR= ./include/ SRCDIR= ./src/ TIDYEXT= /D SUPPORT_ACCESSIBILITY_CHECKS=1 /D SUPPORT_UTF16_ENCODINGS=1 /D SUPPORT_ASIAN_ENCODINGS=1 ## Allgemeine Compilierungs-Einstellungen siehe Index "Compiler-Optionen" == Compiler-Referenz # /nologo == Unterdrückt die Anzeige von Startinformationen # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Anpassen / [X] Startinfo und Informationsnachrichten unterdrücken # /TC == Quellen sind C-Quellen (keine CPP-Quelle oder dergleichen) # /W4 == Warnstufe 4 (die Maximale) # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Allgemein / Wartstufe: Stufe 4 # /Za == ANSI C-Kompatibilität. Sprachkonstrukte, die mit ANSI C nicht kompatibel sind, werden als Fehler gekennzeichnet. # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Anpassen / [X] Spracherweiterungen deaktivieren # /FD == Erzeugt die Dateiabhängigkeiten # /c == Kompiliert ohne Binden # /D == selbiges als waere #define in der Quell-Datei geschrieben wurden # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Allgemein oder =Praeprozezzor / Praeprozessor-Definitionen:=WIN32,_CONSOLE,_MBCS,SUPPORT_ACCESSIBILITY_CHECKS=1,SUPPORT_UTF16_ENCODINGS=1,SUPPORT_ASIAN_ENCODINGS=1 # /I == Sucht in einem Verzeichnis nach Include-Dateien # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Praeprozezzor / Zusätzliche Include-Verzeichnisse:=./include/ # In der folgenden Zeile /D "_CONSOLE" durch /D "_WINDOWS" für Windows-Programme ersetzen. CFLAGS=/nologo /TC /W4 /Za /FD /c /D "WIN32" /D "_CONSOLE" /D "_MBCS" $(TIDYEXT) /I $(INCLDIR) ## Ergaenzende Debug-Compilierungs-Einstellungen siehe Index "Compiler-Optionen" == Compiler-Referenz # /Gm == Aktiviert minimale Neuerstellung # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Anpassen / [X] Minimales Neuerstellen aktivieren # /GZ == Fängt Release-Erstellungsfehler im Debug-Erstellungsvorgang ab # /Zi == Erzeugt vollständige Debug-Informationen # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Allgemein / Debug-Info:=Programmdatenbank # /Od == Deaktiviert Optimierung # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Optimierungen / Optimierungen:=Deaktivieren (Debug) # /MTd == Erstellt eine ausführbare Multithreading-Datei mit LIBCMTD.LIB für den Debugger # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Code Generation / Laufzeit-Bibliothek:=Multithreaded debuggen # /MDd == Erstellt eine Multithreading-DLL mit MSVCRTD.LIB für den Debugger # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Code Generation / Laufzeit-Bibliothek:=Multithreaded DLL debuggen # /MD == Erstellt eine Multithreading-DLL mit MSVCRT.LIB # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Code Generation / Laufzeit-Bibliothek:=Multithreaded DLL # /D == selbiges als waere #define in der Quell-Datei geschrieben wurden # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Allgemein oder =Praeprozezzor / Praeprozessor-Definitionen:=WIN32,_CONSOLE,_MBCS,SUPPORT_ACCESSIBILITY_CHECKS=1,SUPPORT_UTF16_ENCODINGS=1,SUPPORT_ASIAN_ENCODINGS=1,DEBUG,_DEBUG CDEBUG=/Gm /GZ /Zi /Od /MD /D "DEBUG" /D "_DEBUG" ## Ergaenzende Release-Compilierungs-Einstellungen siehe Index "Compiler-Optionen" == Compiler-Referenz # /O1 == Erstellt kompakten Code # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Optimierungen / Optimierungen:=Groesse minimieren # /O2 == Erstellt schnellen Code # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Optimierungen / Optimierungen:=Geschwindigkeit erhoehen # /Ox == Verwendet maximale Optimierung # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Optimierungen / Optimierungen:=Anpassen # /O1 /O2 /Ox nur in Professional und Enterprise Editionen verfügbar, sonst muessen alle folgenden angegeben werden: # /O1 == /Ob1 /Og /Oy /Gs /Gf /Gy /Os # /O2 == /Ob1 /Og /Oy /Gs /Oi /Ot /Gf /Gy # /Ox == /Ob1 /Og /Oy /Gs /Oi /Ot # /Ob1 == In-line-Funktionserweiterung # /Og == Globale Optimierungen # /Oy == Keine Rahmenzeiger # /Gs == Stack-Überprüfungen steuern # /Oi == Intrinsic-Funktionen generieren # /Ot == Schnellen Code bevorzugen # /Gf == Aktiviert Zeichenfolgenzusammenfassung # /Gy == Aktiviert Binden auf Funktionsebene # /Os == Optimiert für kompakten Code (/Ot wird durch /Os ausser Kraft gesetzt) # /MT == Erstellt eine ausführbare Multithreading-Datei mit LIBCMT.LIB # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Code Generation / Laufzeit-Bibliothek:=Multithreaded # /MD == Erstellt eine Multithreading-DLL mit MSVCRT.LIB # Menues: Projekt / Einstellungen... / "C/C++" / Kategorie=Code Generation / Laufzeit-Bibliothek:=Multithreaded DLL # CNDEBUG=/Ox /MD /D "NDEBUG" CNDEBUG=/Ob1 /Og /Oy /Gs /Oi /Ot /Gf /Gy /MD /D "NDEBUG" # /FoDateinamen == benennt oder erstellt .OBJ-Datei(en) in einem anderen Verzeichnis; Leerzeichen nach /Fo nicht zulaessig NAMEFLAG=/Fo ## Allgemeine Linker-Einstellungen siehe Index "Linker" -> "Referenz" == Linker-Referenz # /nologo == Unterdrückt die Anzeige von Startinformationen # Menues: Projekt / Einstellungen... / Linker / Kategorie:=Anpassen / [X] Startinfo unterdrücken # /subsystem: == Teilt dem Betriebssystem mit, wie die .EXE-Datei auszuführen ist # /subsystem:console == Subsystem CONSOLE wird für eine zeichenorientierte Win32-Anwendung verwendet. # Konsolen-Anwendungen erhalten vom Betriebssystem eine Konsole, wenn main oder wmain definiert wurde. # /subsystem:windows == Subsystem WINDOWS bezieht sich auf eine Anwendung, die keine Konsole benötigt. # Win32-Betriebssysteme können nur WINDOWS-Anwendungen ausführen, wenn WinMain oder wWinMain definiert wurde # /machine:I386 == Legt die Zielplattform fest # /libpath:"." == Bibliothekspfad hinzufügen # Menues: Projekt / Einstellungen... / Linker / Kategorie:=Eingabe / Zusätzlicher Bibliothekpfad:="." # /incremental:no == Steuert inkrementelles Binden # sonst erscheint "...oder nicht durch den letzten inkrementellen Bindevorgang erstellt;..." # In der folgenden Zeile /subsystem:console durch /subsystem:windows für Windows-Programme ersetzen. # "/subsystem:windows" verursacht "error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16" # ==> nach Q125750 = http://support.microsoft.com/default.aspx?scid=kb;en-us;125750 # "PRB: Error LNK2001: '_WinMain@16': Unresolved External Symbol" # muesste ergaenzt werden ==> /entry:wWinMainCRTStartup ==> hilft aber auch nicht # ==> nach Q100639 = http://support.microsoft.com/default.aspx?scid=kb;en-us;100639 # "INFO: Unicode Support in the Microsoft Foundation Class Library" # ist irgendwas mit den "MFC*U.LIB MFC*UD.LIB" und /D "_USRDLL" soll man in der # Compiler-Zeile (CFLAGS=...) ergaenzen. Hilft aber auch nicht, also bleibe bei CONSOLE! LDFLAGS= /nologo /subsystem:console /machine:I386 /libpath:"." /incremental:no # "LIB.EXE ist eine Hülle für link -lib" --> also der "Schalter", um libtidy.lib zu erstellen LIBFLAGS= -lib ## Ergaenzende Debug-Linker-Einstellungen siehe Index "Linker" -> "Referenz" == Linker-Referenz # /debug == Erstellt Testinformationen # Menues: Projekt / Einstellungen... / Linker / Kategorie:=Debug / [X] Debug-Info # /pdbtype:sept == Typinformationen für den Testlauf in den .PDB-Quell-(Compiler)-Dateien verteilt belassen # Menues: Projekt / Einstellungen... / Linker / Kategorie:=Debug / [X] Typen Trennen # /nodefaultlib:LIBC == Bibliothek LIBC wird beim Auflösen von externen Verweisen nicht durchsucht. # Menues: Projekt / Einstellungen... / Linker / Kategorie:=Eingabe / Bibliotheken ignorieren:= LIBC LDDEBUG=/debug /pdbtype:sept /nodefaultlib:LIBC ## Ergaenzende Release-Linker-Einstellungen siehe Index "Linker" -> "Referenz" == Linker-Referenz # /opt:nowin98 == ??? # /opt:ref == Funktionen und/oder Daten eliminieren, auf die kein Verweis existiert. # /pdb:none == keine Programmdatenbank verwenden # Menues: Projekt / Einstellungen... / Linker / Kategorie:=Anpassen / [ ] Programmdatenbank verwenden LDNDEBUG=/opt:nowin98 /opt:ref /pdb:none #LIBS=KERNEL32.lib USER32.lib GDI32.lib COMDLG32.lib COMCTL32.lib ADVAPI32.lib IMM32.lib SHELL32.LIB OLE32.LIB LIBS= DEBUGLIBS= !IFDEF DEBUG CFLAGS=$(CFLAGS) $(CDEBUG) LDFLAGS=$(LDFLAGS) $(LDDEBUG) OBJDIR= .\debug !ELSE CFLAGS=$(CFLAGS) $(CNDEBUG) LDFLAGS=$(LDFLAGS) $(LDNDEBUG) OBJDIR= .\release !ENDIF OBJFILES=$(OBJDIR)\access.obj $(OBJDIR)\attrs.obj $(OBJDIR)\istack.obj\ $(OBJDIR)\parser.obj $(OBJDIR)\tags.obj $(OBJDIR)\entities.obj\ $(OBJDIR)\lexer.obj $(OBJDIR)\pprint.obj $(OBJDIR)\clean.obj\ $(OBJDIR)\localize.obj $(OBJDIR)\config.obj $(OBJDIR)\alloc.obj\ $(OBJDIR)\attrask.obj $(OBJDIR)\attrget.obj $(OBJDIR)\buffio.obj\ $(OBJDIR)\tagask.obj $(OBJDIR)\fileio.obj $(OBJDIR)\streamio.obj\ $(OBJDIR)\tmbstr.obj $(OBJDIR)\utf8.obj $(OBJDIR)\tidylib.obj CFILES= $(SRCDIR)access.c $(SRCDIR)attrs.c $(SRCDIR)istack.c \ $(SRCDIR)parser.c $(SRCDIR)tags.c $(SRCDIR)entities.c \ $(SRCDIR)lexer.c $(SRCDIR)pprint.c $(SRCDIR)clean.c \ $(SRCDIR)localize.c $(SRCDIR)config.c $(SRCDIR)alloc.c \ $(SRCDIR)attrask.c $(SRCDIR)attrget.c $(SRCDIR)buffio.c \ $(SRCDIR)tagask.c $(SRCDIR)fileio.c $(SRCDIR)streamio.c\ $(SRCDIR)tmbstr.c $(SRCDIR)utf8.c $(SRCDIR)tidylib.c HFILES= $(INCLDIR)platform.h $(INCLDIR)buffio.h \ $(INCLDIR)fileio.h $(INCLDIR)tidy.h $(INCLDIR)tidyenum.h LIBHFILES= \ $(SRCDIR)access.h \ $(SRCDIR)attrs.h $(SRCDIR)clean.h \ $(SRCDIR)config.h $(SRCDIR)entities.h \ $(SRCDIR)forward.h $(SRCDIR)lexer.h $(SRCDIR)message.h \ $(SRCDIR)parser.h $(SRCDIR)pprint.h $(SRCDIR)streamio.h \ $(SRCDIR)tags.h \ $(SRCDIR)tmbstr.h $(SRCDIR)utf8.h $(SRCDIR)tidy-int.h $(OBJDIR) : if not exist $(OBJDIR) mkdir $(OBJDIR) $(BINDIR) : if not exist $(BINDIR) mkdir $(BINDIR) $(OBJDIR)/libtidy.lib: $(OBJFILES) $(LD) $(LIBFLAGS) $(OBJFILES) /OUT:$(OBJDIR)/libtidy.lib $(BINDIR)/tidy.exe: ./console/tidy.c $(HFILES) $(OBJDIR)/libtidy.lib $(BINDIR) $(CC) $(CFLAGS) ./console/tidy.c $(NAMEFLAG)$(OBJDIR)/ $(LD) $(LDFLAGS) $(OBJDIR)/tidy.obj $(LIBS) $(OBJDIR)/libtidy.lib /OUT:$(BINDIR)/tidy.exe $(OBJFILES): $(HFILES) $(LIBHFILES) $(CFILES) Makefile.vc6 $(OBJDIR) $(CC) $(CFLAGS) $(CFILES) $(NAMEFLAG)$(OBJDIR)/ $(BINDIR)/tab2space.exe: ./console/tab2space.c $(BINDIR) $(CC) $(CFLAGS) ./console/tab2space.c $(NAMEFLAG)$(OBJDIR)/ $(LD) $(LDFLAGS) $(OBJDIR)/tab2space.obj $(LIBS) /OUT:$(BINDIR)/tab2space.exe clean: # Folgendes lieferte "Zu viele Parameter - ..." also wurde es gesplittet # -del $(OBJFILES) $(OBJDIR)\tab2space.obj $(OBJDIR)\tidy.obj $(OBJDIR)\libtidy.lib $(BINDIR)\tidy.exe $(BINDIR)\tab2space.exe -del $(OBJDIR)\access.obj -del $(OBJDIR)\attrs.obj -del $(OBJDIR)\istack.obj -del $(OBJDIR)\parser.obj -del $(OBJDIR)\tags.obj -del $(OBJDIR)\entities.obj -del $(OBJDIR)\lexer.obj -del $(OBJDIR)\pprint.obj -del $(OBJDIR)\clean.obj -del $(OBJDIR)\localize.obj -del $(OBJDIR)\config.obj -del $(OBJDIR)\alloc.obj -del $(OBJDIR)\attrask.obj -del $(OBJDIR)\attrget.obj -del $(OBJDIR)\buffio.obj -del $(OBJDIR)\tagask.obj -del $(OBJDIR)\fileio.obj -del $(OBJDIR)\streamio.obj -del $(OBJDIR)\tmbstr.obj -del $(OBJDIR)\utf8.obj -del $(OBJDIR)\tidylib.obj -del $(OBJDIR)\tab2space.obj -del $(OBJDIR)\tidy.obj -del $(OBJDIR)\libtidy.lib -del $(BINDIR)\tidy.exe -del $(BINDIR)\tab2space.exe !IFDEF DEBUG # -del $(BINDIR)\tab2space.ilk # NUR wenn /incremental:yes -del $(BINDIR)\tab2space.pdb # -del $(BINDIR)\tidy.ilk # NUR wenn /incremental:yes -del $(BINDIR)\tidy.pdb !ENDIF -rd $(OBJDIR) -rd $(BINDIR) all: $(OBJDIR)/libtidy.lib $(BINDIR)/tidy.exe $(BINDIR)/tab2space.exe