1###################################################################### 2# 3# XOTclExpat Makefile for Visual C++ 4# 5###################################################################### 6 7# Be sure to adapt the "configs.vc" file in the toplevel directory 8# to your system settings. 9!include "..\..\..\win\configs.vc" 10 11BINROOT = . 12ROOT = .. 13NAMEPREFIX = lib 14NAME = xotclexpat 15XOTCL_DIR = ..\..\.. 16GENERICDIR = . 17WINDIR = . 18 19###################################################################### 20 21!if $(DEBUG) 22TMPNAME = Debug 23DBGX = d 24!else 25TMPNAME = Release 26DBGX = 27!endif 28 29TMP_DIR = $(BINROOT)\$(TMPNAME) 30OUT_DIR = $(TMP_DIR) 31 32!if $(STATIC_BUILD) 33OUTNAME = $(NAMEPREFIX)$(NAME)$(XOTCL_VERSION)$(DBGX) 34TARGET = "$(OUT_DIR)\$(OUTNAME).lib" 35!else 36OUTNAME = $(NAMEPREFIX)$(NAME)$(XOTCL_VERSION)$(DBGX) 37IMPLIB = "$(OUT_DIR)\$(OUTNAME).lib" 38TARGET = "$(OUT_DIR)\$(OUTNAME).dll" 39!endif 40 41TCLSTUBLIB = "$(TCLROOT)\win\Release\tclstub$(TCL_VERSION).lib" 42TCLIMPLIB = "$(TCLROOT)\win\$(OUT_DIR)\tcl$(TCL_VERSION)$(DBGX).lib" 43TCLSH = "$(TCLROOT)\win\$(OUT_DIR)\tclsh$(TCL_VERSION)$(DBGX).exe" 44 45XOTCLSTUBLIB = "$(XOTCL_DIR)\win\Release\libxotclstub$(XOTCL_VERSION).lib" 46XOTCLIMPLIB = "$(XOTCL_DIR)\win\$(OUT_DIR)\libxotcl$(XOTCL_VERSION)$(DBGX).lib" 47 48LIB_INSTALL_DIR = $(INSTALLDIR)\lib 49BIN_INSTALL_DIR = $(INSTALLDIR)\bin 50SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\xotcl$(XOTCL_VERSION) 51INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include 52 53OBJS = $(TMP_DIR)\xmltok.obj \ 54 $(TMP_DIR)\xmlrole.obj \ 55 $(TMP_DIR)\xmlwf.obj \ 56 $(TMP_DIR)\codepage.obj \ 57 $(TMP_DIR)\xmlparse.obj \ 58 $(TMP_DIR)\hashtable.obj \ 59 $(TMP_DIR)\win32filemap.obj \ 60 $(TMP_DIR)\tclexpat.obj \ 61!if $(STATIC_BUILD) == 0 62 $(TMP_DIR)\dllEntryPoint.obj 63!endif 64 65###################################################################### 66# Link flags 67###################################################################### 68 69!if $(DEBUG) 70ldebug = -debug:full -debugtype:cv -pdb:none 71!else 72ldebug = -release -opt:ref 73!endif 74 75# declarations common to all linker options 76lcommon = -nologo -link50compat -machine:$(MACHINE) 77 78LFLAGS = $(lcommon) -subsystem:windows -dll 79 80!if $(USE_TCL_STUBS) == 0 81LLIBS = $(TCLIMPLIB) $(XOTCLIMPLIB) 82!else 83### should be: 84### LLIBS = $(TCLSTUBLIB) $(XOTCLSTUBLIB) when xotcl stub lib is mature 85### LLIBS = $(TCLSTUBLIB) $(XOTCLIMPLIB) 86LLIBS = $(TCLSTUBLIB) $(XOTCLSTUBLIB) 87!endif 88 89###################################################################### 90# Compile flags 91###################################################################### 92 93!IF $(DEBUG) == 0 94!IF "$(MACHINE)" == "ALPHA" 95# MSVC on Alpha doesn't understand -Ot 96cdebug = -O2i 97!ELSE 98cdebug = -Ox 99!ENDIF 100!ELSE 101!if $(MSDEV_VER) < 6 102cdebug = -Zi -Od -WX 103!else 104cdebug = -ZI -Od -WX 105!endif 106!ENDIF 107 108!if $(STATIC_BUILD) 109cdll = 110!else 111cdll = -GD 112!endif 113 114# declarations common to all compiler options 115ccommon = -nologo -c -W3 -YX \ 116 117 118!if $(STATIC_BUILD) && $(NOMSVCRT) 119crt = -MT$(DBGX) 120!else 121crt = -MD$(DBGX) 122!endif 123 124INCLUDES = -I"$(TCLROOT)\generic" -I"$(XOTCL_DIR)\generic" -I"." 125 126DEFINES = -DBUILD_$(NAME) -DTCL_THREADS=1 \ 127 -DXOLIBPKG=$(INST_XOLIBPKG) \ 128 -DXOTCLVERSION=$(XOTCLVERSION) \ 129 -DPACKAGE_VERSION=$(XOTCLVERSION) \ 130 -DVERSION=$(XOTCLVERSION) \ 131 -DXOTCLPATCHLEVEL=$(XOTCLPATCHLEVEL) \ 132 -D__WIN32__ -DVISUAL_CC 133 134EXE_CFLAGS = $(ccommon) $(cdebug) $(crt) $(cdll) $(INCLUDES) $(DEFINES) 135 136!if $(USE_TCL_STUBS) 137#CFLAGS = $(EXE_CFLAGS) -DUSE_TCL_STUBS 138CFLAGS = $(EXE_CFLAGS) -DUSE_TCL_STUBS -DUSE_XOTCL_STUBS 139!else 140CFLAGS = $(EXE_CFLAGS) 141!endif 142 143###################################################################### 144# Project specific targets 145###################################################################### 146 147all : libs 148 149libs : setup $(TARGET) 150 copy $(TARGET) .. 151 152setup : 153 @$(vcvars) > nul 154 @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR) &\ 155 echo Created directory '$(TMP_DIR)' 156 @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR) &\ 157 echo Created directory '$(OUT_DIR)' 158 159$(TARGET) : $(OBJS) 160!if $(STATIC_BUILD) 161 $(lib32) -nologo -machine:$(MACHINE) -out:$@ @<< 162!else 163 $(link32) $(LFLAGS) -base:@$(XOTCL_DIR)\win\dllBase.txt,$@ -out:$@ $(LLIBS) @<< 164!endif 165 $(OBJS) 166<< 167 168 169install : all 170 if not exist "$(INSTALLDIR)" mkdir "$(INSTALLDIR)" 171 if not exist "$(BIN_INSTALL_DIR)" mkdir "$(BIN_INSTALL_DIR)" 172 if not exist "$(LIB_INSTALL_DIR)" mkdir "$(LIB_INSTALL_DIR)" 173 if not exist "$(SCRIPT_INSTALL_DIR)" mkdir "$(SCRIPT_INSTALL_DIR)" 174 if not exist "$(INCLUDE_INSTALL_DIR)" mkdir "$(INCLUDE_INSTALL_DIR)" 175 copy $(TARGET) "$(SCRIPT_INSTALL_DIR)" 176 177###################################################################### 178# Inference rules. Use batch-mode when supported. 179###################################################################### 180 181!if $(_NMAKE_VER) < 162 182{$(WINDIR)}.c{$(TMP_DIR)}.obj : 183!else 184{$(WINDIR)}.c{$(TMP_DIR)}.obj :: 185!endif 186 $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$(TMP_DIR)\ @<< 187$< 188<< 189 190!if $(_NMAKE_VER) < 162 191{$(GENERICDIR)}.c{$(TMP_DIR)}.obj : 192!else 193{$(GENERICDIR)}.c{$(TMP_DIR)}.obj :: 194!endif 195 $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$(TMP_DIR)\ @<< 196$< 197<< 198 199#$(TMP_DIR)\xmltok.obj : expat\xmltok\xmltok.c 200# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 201#$(TMP_DIR)\xmlrole.obj : expat\xmltok\xmlrole.c 202# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 203#$(TMP_DIR)\xmlwf.obj : expat\xmlwf\xmlwf.c 204# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 205#$(TMP_DIR)\readfilemap.obj : expat\xmlwf\readfilemap.c 206# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 207#$(TMP_DIR)\codepage.obj : expat\xmlwf\codepage.c 208# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 209#$(TMP_DIR)\xmlparse.obj : expat\xmlparse\xmlparse.c 210# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 211#$(TMP_DIR)\hashtable.obj : expat\xmlparse\hashtable.c 212# $(cc32) -DDLL_BUILD $(CFLAGS) -Fo$@ $? 213 214#{$(RCDIR)}.rc{$(TMP_DIR)}.res : 215# $(rc32) -fo $@ -DDEBUG=$(DEBUG) $(XOTCL_VERSION_DEFINES) $(XOTCL_INCLUDES) $(TCL_INCLUDES) $(XOTCL_DEFINES) $< 216 217###################################################################### 218# Clean up 219###################################################################### 220 221tidy : 222 -del $(TMP_DIR)\*.pch 223 -del $(TMP_DIR)\*.obj 224 -del $(TMP_DIR)\*.res 225 -del .\*.pch 226 -del .\*.pdb 227 228clean : tidy 229 -del $(OUT_DIR)\*.exp 230 -del $(OUT_DIR)\*.lib 231 -del $(OUT_DIR)\*.dll 232 -del ..\*.exp 233 -del ..\*.lib 234 -del ..\*.dll 235 236distclean : clean 237 -rmdir $(OUT_DIR) 238 -rmdir $(TMP_DIR) 239 240