OpenCores
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

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.