URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [tags/] [start/] [insight/] [itcl/] [itcl/] [win/] [makefile.bc] - Rev 1765
Compare with Previous | Blame | View Log
# Borland C++ 4.52 makefile
#
# Copyright (c) 1993-1996 Lucent Technologies
# based on original from
# Copyright (c) 1995-1996 Sun Microsystems, Inc.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
!include "..\..\Makefile.bc"
#
# Project directories
#
# ROOT = top of source tree
# TMPDIR = location where .obj files should be stored during build
ROOT = ..
TMPDIR = .
TARGET_LIB_ITCL = $(TARGET_LIB)\Itcl2.2
TARGET_DOC_ITCL = $(TARGET_DOC)\Itcl
# uncomment the following line to compile with symbols
#DEBUG=1
# uncomment the following two lines to compile with TCL_MEM_DEBUG
#DEBUGDEFINES =TCL_MEM_DEBUG
INCLUDES =$(BORLAND)\include;$(ROOT)\generic;$(ROOT)\win;$(TCLDIR)\generic
LIBDIRS =$(BORLAND)\lib;$(ROOT)\win
!ifndef DEBUG
# these macros cause maximum optimization and no symbols
DEBUGLDFLAGS =
DEBUGCCFLAGS = -v- -vi- -O2
DEBUGLDFLAGS16 = -Oc -Oi -Oa -Or
!else
# these macros enable debugging
DEBUGLDFLAGS = -v
DEBUGCCFLAGS = -k -Od -v
DEBUGLDFLAGS16 =
!endif
DEFINES = _RTLDLL;USE_TCLALLOC=0;$(DEBUGDEFINES);NO_DLFCN_H=1;ITCL_NAMESPACES=1
PROJECTCCFLAGS = $(DEBUGCCFLAGS) -w-par -w-stu
CFLAGS16_dll = $(PROJECTCCFLAGS) -I$(INCLUDES) -D$(DEFINES) -WD -ml -c -3 -d -w
LNFLAGS_exe = -Tpe -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0w32
LNFLAGS_CONSOLE_exe = -Tpe -ap -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0x32
LNFLAGS_dll = -Tpd -aa -c $(DEBUGLDFLAGS) $(BORLAND)\lib\c0d32
LNFLAGS16_dll = -Twd -c -C -A=16 $(DEBUGLDFLAGS16) $(BORLAND)\lib\c0dl.obj
LNLIBS_exe = $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) import32 cw32i
LNLIBS_dll = $(TCLLIBDIR)\$(TCLLIB) import32 cw32i
LNLIBS16_dll = import cwl
#
# Global makefile settings
#
.AUTODEPEND
.CACHEAUTODEPEND
.suffixes: .c .dll .lib .obj .exe
.path.c=$(ROOT)\win;$(ROOT)\generic
.path.obj=$(TMPDIR)
.path.dll=$(ROOT)\win;$(WINDIR);$(WINDIR)\SYSTEM32;$(WINDIR)\SYSTEM
ITCLSHOBJS = \
$(TMPDIR)\tclAppInit.obj
ITCLOBJS = \
$(TMPDIR)\itcl_bicmds.obj \
$(TMPDIR)\itcl_class.obj \
$(TMPDIR)\itcl_cmds.obj \
$(TMPDIR)\itcl_linkage.obj \
$(TMPDIR)\itcl_methods.obj \
$(TMPDIR)\itcl_objects.obj \
$(TMPDIR)\itcl_obsolete.obj \
$(TMPDIR)\itcl_parse.obj \
$(TMPDIR)\itcl_util.obj \
$(TMPDIR)\dllEntryPoint.obj
DUMPEXTS = $(TCLLIBDIR)\dumpexts.exe
ITCLSH = itclsh.exe
#
# Targets
#
all: cfgcln cfgdll $(ITCLDLL) cfgexe $(ITCLSH) cfgcln
test: $(ITCLSH)
$(CP) $(TCLLIBDIR)\*.dll
$(ITCLSH) <<|
cd ../tests
source all
|
install: all
$(MKDIR) "$(TARGET_ROOT)"
$(MKDIR) "$(TARGET_BIN)"
$(MKDIR) "$(TARGET_LIB_ROOT)"
$(MKDIR) "$(TARGET_LIB)"
$(MKDIR) "$(TARGET_LIB_ITCL)"
$(MKDIR) "$(TARGET_INCLUDE_ROOT)"
$(MKDIR) "$(TARGET_INCLUDE)"
$(MKDIR) "$(TARGET_DOC)"
$(MKDIR) "$(TARGET_DOC_ITCL)"
$(CP) $(TMPDIR)\$(ITCLSH) "$(TARGET_BIN)"
$(CP) $(TMPDIR)\$(ITCLDLL) "$(TARGET_BIN)"
$(CP) $(ROOT)\generic\itcl.h "$(TARGET_INCLUDE)"
$(CP) $(ROOT)\library\*.* "$(TARGET_LIB_ITCL)"
$(CP) $(ROOT)\win\*.tcl "$(TARGET_LIB_ITCL)"
$(CP) $(ROOT)\..\html\Itcl\*.* "$(TARGET_DOC_ITCL)"
# Implicit Targets
.c.obj:
@$(BCC32) {$< }
.dll.lib:
$(IMPLIB) -c $@ $<
#.rc.res:
# $(RC) -i$(INCLUDES) -d__WIN32__;$(DEFINES) $<
.rc.res:
$(RC) -i$(INCLUDES) -d__WIN32__; $<
#
# Configuration file targets - these files are implicitly used by the compiler
#
cfgdll:
@$(CP) &&|
-n$(TMPDIR) -I$(INCLUDES) -c -WD
-D$(DEFINES) -3 -d -w $(PROJECTCCFLAGS)
| bcc32.cfg >NUL
cfgexe:
@$(CP) &&|
-n$(TMPDIR) -I$(INCLUDES) -c -W
-D$(DEFINES) -3 -d -w $(PROJECTCCFLAGS)
| bcc32.cfg >NUL
cfgcln:
-@$(RM) *.cfg
#
# Executable targets
#
$(ITCLDLL): $(ITCLOBJS) itcl.def itcl.res
$(TLINK32) $(LNFLAGS_dll) @&&|
$(ITCLOBJS)
$@
-x
$(LNLIBS_dll)
|, itcl.def, itcl.res
$(ITCLSH): $(ITCLSHOBJS) $(ITCLLIB) itclsh.res
$(TLINK32) $(LNFLAGS_CONSOLE_exe) @&&|
$(ITCLSHOBJS)
$@
-x
$(LNLIBS_exe)
|, &&|
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
|, itclsh.res
# The following rule automatically generates a tcl.def file containing
# an export entry for every public symbol in the tcl.dll library.
itcl.def: $(ITCLOBJS)
$(DUMPEXTS) -o itcl.def $(ITCLDLL) @&&|
$(ITCLOBJS)
|
# debugging rules, the .dll and .exe files must be in the same
# directory as the object files for debugging purposes
$(TMPDIR)\$(ITCLDLL): $(ITCLDLL)
$(CP) $(ITCLDLL) $(TMPDIR)
$(TMPDIR)\$(TCLDLL): $(TCLLIBDIR)\$(TCLDLL)
$(CP) $(TCLLIBDIR)\$(TCLDLL) $(TMPDIR)
$(TMPDIR)\$(ITCLSH): $(ITCLSH)
$(CP) $(ITCLSH) $(TMPDIR)
debug: $(TMPDIR)\$(ITCLDLL) $(TMPDIR)\$(TCLDLL)
# remove all generated files
clean:
-@$(RM) *.exe
-@$(RM) *.lib
-@$(RM) *.dll
-@$(RM) *.res
-@$(RM) itcl.def
-@$(RM) $(TMPDIR)\*.obj
-@$(RM) *.cfg