1# Borland C++ 4.52 makefile 2# 3# Copyright (c) 1993-1996 Lucent Technologies 4# based on original from 5# Copyright (c) 1995-1996 by Sun Microsystems, Inc. 6# 7# See the file "license.terms" for information on usage and redistribution 8# of this file, and for a DISCLAIMER OF ALL WARRANTIES. 9 10!include "..\..\Makefile.bc" 11 12# 13# Project directories 14# 15# ROOT = top of source tree 16# TMPDIR = location where .obj files should be stored during build 17 18ROOT = .. 19TMPDIR = . 20TARGET_LIB_ITK = $(TARGET_LIB)\Itk2.2 21TARGET_DOC_ITK = $(TARGET_DOC)\Itk 22 23# uncomment the following line to compile with symbols 24#DEBUG=1 25 26# uncomment the following two lines to compile with TCL_MEM_DEBUG 27#DEBUGDEFINES =TCL_MEM_DEBUG 28 29 30INCLUDES =$(BORLAND)\include;$(ROOT)\generic;$(ROOT);$(TCLDIR)\generic;$(ITCLDIR)\generic;$(TKDIR)\generic;$(TKDIR)\xlib;$(TKDIR)\bitmaps 31LIBDIRS =$(BORLAND)\lib;$(ROOT)\win 32 33!ifndef DEBUG 34 35# these macros cause maximum optimization and no symbols 36DEBUGLDFLAGS = 37DEBUGCCFLAGS = -v- -vi- -O2 38 39!else 40 41# these macros enable debugging 42DEBUGLDFLAGS = -v 43DEBUGCCFLAGS = -k -Od -v 44 45!endif 46 47DEFINES = _RTLDLL;USE_TCLALLOC=0;STRICT;$(DEBUGDEFINES);ITCL_NAMESPACES=1 48PROJECTCCFLAGS= $(DEBUGCCFLAGS) -w-par -w-stu 49 50LNFLAGS_exe = -Tpe -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0w32 51LNFLAGS_dll = -Tpd -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0d32 52 53LNLIBS_exe = $(ITKLIB) $(ITCLLIBDIR)\$(ITCLLIB) $(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB) import32 cw32i 54LNLIBS_dll = $(ITCLLIBDIR)\$(ITCLLIB) $(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB) import32 cw32i 55 56# 57# Global makefile settings 58# 59 60.AUTODEPEND 61.CACHEAUTODEPEND 62 63.suffixes: .c .dll .lib .obj .exe 64 65.path.c=$(ROOT)\win;$(ROOT)\generic; 66.path.obj=$(TMPDIR) 67 68ITKWISHOBJS = \ 69 $(TMPDIR)\winMain.obj 70 71ITKOBJS = \ 72 $(TMPDIR)\itk_archetype.obj \ 73 $(TMPDIR)\itk_cmds.obj \ 74 $(TMPDIR)\itk_option.obj \ 75 $(TMPDIR)\itk_util.obj \ 76 $(TMPDIR)\dllEntryPoint.obj 77 78ITKWISH = itkwish.exe 79 80 81# 82# Targets 83# 84 85all: cfgdll $(ITKDLL) cfgexe $(ITKWISH) cfgcln 86test: $(ITKWISH) 87 $(CP) $(TCLLIBDIR)\*.dll 88 $(CP) $(TKLIBDIR)\*.dll 89 $(CP) $(ITCLLIBDIR)\*.dll 90#set ITK_ 91 $(ITKWISH) <<| 92 cd ..\tests 93 source all 94 exit 95| 96 97install: all 98 $(MKDIR) "$(TARGET_ROOT)" 99 $(MKDIR) "$(TARGET_BIN)" 100 $(MKDIR) "$(TARGET_LIB_ROOT)" 101 $(MKDIR) "$(TARGET_LIB)" 102 $(MKDIR) "$(TARGET_LIB_ITK)" 103 $(MKDIR) "$(TARGET_INCLUDE_ROOT)" 104 $(MKDIR) "$(TARGET_INCLUDE)" 105 $(MKDIR) "$(TARGET_DOC)" 106 $(MKDIR) "$(TARGET_DOC_ITK)" 107 $(CP) $(TMPDIR)\$(ITKWISH) "$(TARGET_BIN)" 108 $(CP) $(TMPDIR)\$(ITKDLL) "$(TARGET_BIN)" 109 $(CP) $(ROOT)\generic\itk.h "$(TARGET_INCLUDE)" 110 $(CP) $(ROOT)\library\*.* "$(TARGET_LIB_ITK)" 111 $(CP) $(ROOT)\win\*.tcl "$(TARGET_LIB_ITK)" 112 $(CP) $(ROOT)\..\html\Itk\*.* "$(TARGET_DOC_ITK)" 113 114# Implicit Targets 115 116.c.obj: 117 @$(BCC32) {$< } 118 119.dll.lib: 120 $(IMPLIB) -c $@ $< 121 122.rc.res: 123 $(RC) -i$(ROOT)\generic;$(ITCLDIR)\generic;$(TCLDIR)\generic;$(TKDIR)\generic $< 124 125# 126# Special case object file targets 127# 128 129# 130# Configuration file targets - these files are implicitly used by the compiler 131# 132 133cfgdll: 134 @$(CP) &&| 135 -n$(TMPDIR) -I$(INCLUDES) -c -WD 136 -D$(DEFINES) -3 -d $(PROJECTCCFLAGS) 137| bcc32.cfg >NUL 138 139cfgexe: 140 @$(CP) &&| 141 -n$(TMPDIR) -I$(INCLUDES) -c -W 142 -D$(DEFINES) -3 -d $(PROJECTCCFLAGS) 143| bcc32.cfg >NUL 144 145cfgtest: 146 @$(CP) &&| 147 -n$(TMPDIR) -I$(INCLUDES) -c -W 148 -D$(DEFINES);TCL_TEST -3 -d $(PROJECTCCFLAGS) 149| bcc32.cfg >NUL 150 151cfgcln: 152 @$(RM) bcc32.cfg 153 154# 155# Executable targets 156# 157 158$(ITKDLL): $(ITKOBJS) itk.def rc\itk.res 159 $(TLINK32) @&&| 160$(LNFLAGS_dll) $(ITKOBJS) 161$@ 162-x 163$(LNLIBS_dll) 164itk.def 165rc\itk.res 166| 167 168$(ITKWISH): $(ITKWISHOBJS) $(ITKLIB) rc\itkwish.res 169 $(TLINK32) @&&| 170$(LNFLAGS_exe) $(ITKWISHOBJS) 171$@ 172-x 173$(LNLIBS_exe) 174|, &&| 175EXETYPE WINDOWS 176CODE PRELOAD MOVEABLE DISCARDABLE 177DATA PRELOAD MOVEABLE MULTIPLE 178|, rc\itkwish.res 179 180# 181# Other dependencies 182# 183 184 185# The following rule automatically generates a tk.def file containing 186# an export entry for every public symbol in the $(TKDLL) library. 187 188itk.def: $(ITKOBJS) 189 $(TCLLIBDIR)\dumpexts.exe -o $@ $(ITKDLL) @&&| 190 $(ITKOBJS) 191| 192 193# Dependencies for .rc files: 194rc\itk.res: rc\*.cur rc\itk.ico 195rc\itkwish.res: rc\*.cur rc\itk.ico 196 197# debugging rules, the .dll and .exe files must be in the same 198# directory as the object files for debugging purposes 199 200$(TMPDIR)\$(ITKDLL): $(ITKDLL) 201 $(CP) $(ITKDLL) $(TMPDIR) 202 203$(TMPDIR)\$(ITCLDLL): $(ITCLLIBDIR)\$(ITCLDLL) 204 $(CP) $(ITCLLIBDIR)\$(ITCLDLL) $(TMPDIR) 205 206$(TMPDIR)\$(TKDLL): $(TKLIBDIR)\$(TKDLL) 207 $(CP) $(TKLIBDIR)\$(TKDLL) $(TMPDIR) 208 209$(TMPDIR)\$(TCLDLL): $(TCLLIBDIR)\$(TCLDLL) 210 $(CP) $(TCLLIBDIR)\$(TCLDLL) $(TMPDIR) 211 212$(TMPDIR)\$(ITKWISH): $(ITKWISH) 213 $(CP) $(ITKWISH) $(TMPDIR) 214 215debug: $(TMPDIR)\$(ITKDLL) $(TMPDIR)\$(ITCLDLL) $(TMPDIR)\$(TKDLL) $(TMPDIR)\$(TCLDLL) 216 217 218# remove all generated files 219 220clean: 221 -@$(RM) $(ITKWISH) 222 -@$(RM) $(ITKLIB) 223 -@$(RM) $(ITKDLL) 224 -@$(RM) itk.def 225 -@$(RM) $(TMPDIR)\Rc\*.res 226 -@$(RM) $(TMPDIR)\*.obj 227 -@$(RM) *.cfg 228