OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [itcl/] [itk/] [win/] [makefile.vc] - Rev 1765

Compare with Previous | Blame | View Log

# Visual C++ 2.x and 4.0 makefile
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
# 
# Copyright (c) 1995-1996 Sun Microsystems, Inc.
# SCCS: @(#) makefile.vc 1.8 98/07/29 13:14:52

# Does not depend on the presence of any environment variables in
# order to compile tcl; all needed information is derived from 
# location of the compiler directories.
#
# NOTE: Be sure to modify the "makefile.vc" file in the toplevel directory
#   for the itcl distribution.  Include the location of your VC++ development
#   tools and the installation directory.

!include "..\..\makefile.vc"


# ROOT    = top of source tree
#
# TMPDIR  = location where .obj files should be stored during build

ROOT            = ..
ITCLDIR     = ..\..\itcl

######################################################################
# Do not modify below this line
######################################################################

ITKNAMEPREFIX  = itk
WISHNAMEPREFIX = itkwish
VERSION        = 30
DOTVERSION     = 3.0

BINROOT         = .
!IF "$(NODEBUG)" == "1"
TMPDIR          = $(BINROOT)\Release
DBGX            =
!ELSE
TMPDIR          = $(BINROOT)\Debug
DBGX            = d
!ENDIF
OUTDIR          = $(TMPDIR)

ITKDLLNAME      = $(ITKNAMEPREFIX)$(VERSION)$(DBGX).dll
ITKDLL          = $(OUTDIR)\$(ITKDLLNAME)
ITKLIB          = $(OUTDIR)\$(ITKNAMEPREFIX)$(VERSION)$(DBGX).lib

ITKWISH         = $(OUTDIR)\$(WISHNAMEPREFIX)$(VERSION)$(DBGX).exe
DUMPEXTS        = $(TMPDIR)\dumpexts.exe

LIB_INSTALL_DIR = $(INSTALLDIR)\lib
BIN_INSTALL_DIR = $(INSTALLDIR)\bin
SCRIPT_INSTALL_DIR      = $(INSTALLDIR)\lib\itk$(DOTVERSION)
INCLUDE_INSTALL_DIR     = $(INSTALLDIR)\include

ITKWISHOBJS = \
        $(TMPDIR)\winMain.obj \
        $(TMPDIR)\tkConsole.obj

ITKOBJS = \
        $(TMPDIR)\itk_archetype.obj \
        $(TMPDIR)\itk_cmds.obj \
        $(TMPDIR)\itk_option.obj \
        $(TMPDIR)\itk_util.obj \
        $(TMPDIR)\dllEntryPoint.obj

cc32            = $(TOOLS32)\bin\cl.exe
link32          = $(TOOLS32)\bin\link.exe
rc32            = $(TOOLS32_rc)\bin\rc.exe
include32       = -I$(TOOLS32)\include

WINDIR      = $(ROOT)\win
GENERICDIR      = $(ROOT)\generic
RCDIR       = $(WINDIR)\rc

TCLBUILDDIR     = $(TCLDIR)\win\$(OUTDIR)
TCLLIB      = $(TCLBUILDDIR)\tcl80$(DBGX).lib
TCLDLL      = $(TCLBUILDDIR)\tcl80$(DBGX).dll
TKBUILDDIR      = $(TKDIR)\win\$(OUTDIR)
TKLIB       = $(TKBUILDDIR)\tk80$(DBGX).lib
TKDLL       = $(TKBUILDDIR)\tk80$(DBGX).dll
ITCLBUILDDIR = $(ITCLDIR)\win\$(OUTDIR)
ITCLLIB      = $(ITCLBUILDDIR)\itcl$(VERSION)$(DBGX).lib
ITCLDLL      = $(ITCLBUILDDIR)\itcl$(VERSION)$(DBGX).dll

ITK_INCLUDES    = -I$(WINDIR) -I$(GENERICDIR) \
                        -I$(TCLDIR)\generic -I$(TKDIR)\generic -I$(TKDIR)\xlib -I$(ITCLDIR)\generic
ITK_DEFINES     = -DBUILD_itk $(DEBUGDEFINES)

ITK_CFLAGS      = $(cdebug) $(cflags) $(cvarsdll) $(include32) \
                        $(ITK_INCLUDES) $(ITK_DEFINES) 

######################################################################
# Link flags
######################################################################

!IF "$(NODEBUG)" == "1"
ldebug = /RELEASE
!ELSE
ldebug = -debug:full -debugtype:cv
!ENDIF

# declarations common to all linker options
lcommon = /NODEFAULTLIB /RELEASE /NOLOGO

# declarations for use on Intel i386, i486, and Pentium systems
!IF "$(MACHINE)" == "IX86"
DLLENTRY = @12
lflags   = $(lcommon) -align:0x1000 /MACHINE:$(MACHINE)
!ELSE
lflags   = $(lcommon) /MACHINE:$(MACHINE)
!ENDIF

conlflags = $(lflags) -subsystem:console -entry:mainCRTStartup
guilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartup
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll

!IF "$(MACHINE)" == "PPC"
libc = libc.lib
libcdll = crtdll.lib
!ELSE
libc = libc.lib oldnames.lib
libcdll = msvcrt.lib oldnames.lib
!ENDIF

baselibs   = kernel32.lib $(optlibs) advapi32.lib
winlibs    = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib
guilibs    = $(libc) $(winlibs)

guilibsdll = $(libcdll) $(winlibs)

######################################################################
# Compile flags
######################################################################

!IF "$(NODEBUG)" == "1"
!IF "$(MACHINE)" == "ALPHA"
# MSVC on Alpha doesn't understand -Ot
cdebug = -O2i -Gs -GD
!ELSE
cdebug = -Oti -Gs -GD
!ENDIF
!ELSE
cdebug = -Z7 -Od -WX
!ENDIF

# declarations common to all compiler options
ccommon = -c -W3 -nologo -Fp$(TMPDIR)\ -YX

!IF "$(MACHINE)" == "IX86"
cflags = $(ccommon) -D_X86_=1
!ELSE
!IF "$(MACHINE)" == "MIPS"
cflags = $(ccommon) -D_MIPS_=1
!ELSE
!IF "$(MACHINE)" == "PPC"
cflags = $(ccommon) -D_PPC_=1
!ELSE
!IF "$(MACHINE)" == "ALPHA"
cflags = $(ccommon) -D_ALPHA_=1
!ENDIF
!ENDIF
!ENDIF
!ENDIF

cvars      = -DWIN32 -D_WIN32
cvarsmt    = $(cvars) -D_MT
cvarsdll   = $(cvarsmt) -D_DLL

!IF "$(NODEBUG)" == "1"
cvarsdll   = $(cvars) -MD
!ELSE
cvarsdll   = $(cvars) -MDd
!ENDIF

CON_CFLAGS      = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE

######################################################################
# Project specific targets
######################################################################

all:    setup $(ITKWISH)
test:   setup $(ITKWISH)
        -@copy $(TCLDLL) $(TMPDIR)
        -@copy $(TKDLL) $(TMPDIR)
        -@copy $(ITCLDLL) $(TMPDIR)
        $(ITKWISH)

setup:
        if not exist $(TMPDIR) mkdir $(TMPDIR)
        if not exist $(OUTDIR) mkdir $(OUTDIR)

$(ITKLIB): $(ITKDLL)

$(ITKDLL): $(ITKOBJS) $(TMPDIR)\itk.res $(TMPDIR)\itkvc.def
        set LIB=$(TOOLS32)\lib
       $(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\itkvc.def \
                -out:$@ $(TMPDIR)\itk.res $(TCLLIB) $(TKLIB) $(ITCLLIB) \
                $(guilibsdll) @<<
                        $(ITKOBJS)
<<

$(ITKWISH): $(ITKWISHOBJS) $(ITKLIB) $(TMPDIR)\itkwish.res
        set LIB=$(TOOLS32)\lib
        $(link32) $(ldebug) $(guilflags) $(TMPDIR)\itkwish.res -out:$@ \
                $(guilibsdll) $(TCLLIB) $(TKLIB) $(ITCLLIB) $(ITKLIB) $(ITKWISHOBJS) 

$(TMPDIR)\itkvc.def: $(DUMPEXTS) $(ITKOBJS)
        $(DUMPEXTS) -o $@ $(ITKDLLNAME) @<<
                $(ITKOBJS)
<<

$(DUMPEXTS): $(TCLDIR)\win\winDumpExts.c
        $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $?
        set LIB=$(TOOLS32)\lib
        $(link32) $(ldebug) $(conlflags) $(guilibs) -out:$@ \
                $(TMPDIR)\winDumpExts.obj 

install: all
        if not exist $(INSTALLDIR) mkdir $(INSTALLDIR)
        if not exist $(BIN_INSTALL_DIR) mkdir $(BIN_INSTALL_DIR)
        if not exist $(LIB_INSTALL_DIR) mkdir $(LIB_INSTALL_DIR)
        if not exist $(SCRIPT_INSTALL_DIR) mkdir $(SCRIPT_INSTALL_DIR)
        if not exist $(INCLUDE_INSTALL_DIR) mkdir $(INCLUDE_INSTALL_DIR)
        copy $(ITKWISH) "$(BIN_INSTALL_DIR)"
        copy $(ITKDLL) "$(BIN_INSTALL_DIR)"
        copy $(ROOT)\generic\itk.h "$(INCLUDE_INSTALL_DIR)"
        copy $(ROOT)\library\*.* "$(SCRIPT_INSTALL_DIR)"
        copy $(ROOT)\win\*.tcl "$(SCRIPT_INSTALL_DIR)"

#
# Special case object file targets
#

$(TMPDIR)\winMain.obj: $(ROOT)\win\winMain.c
        $(cc32) -DBUILD_tcl -DBUILD_tk $(ITK_CFLAGS) -Fo$@ $?

$(TMPDIR)\tkConsole.obj: $(TKDIR)\generic\tkConsole.c
        $(cc32) -DBUILD_tcl -DBUILD_tk $(ITK_CFLAGS) -Fo$@ $?

#
# Implicit rules
#

{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
        $(cc32) -DDLL_BUILD $(ITK_CFLAGS) -Fo$(TMPDIR)\ $<

{$(WINDIR)}.c{$(TMPDIR)}.obj:
        $(cc32) -DDLL_BUILD $(ITK_CFLAGS) -Fo$(TMPDIR)\ $<

{$(ROOT)\unix}.c{$(TMPDIR)}.obj:
        $(cc32) -DDLL_BUILD $(ITK_CFLAGS) -Fo$(TMPDIR)\ $<

{$(RCDIR)}.rc{$(TMPDIR)}.res:
        $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(TCLDIR)\generic -i $(ITCLDIR)\generic $<

clean:
        -@del $(OUTDIR)\*.exp 
        -@del $(OUTDIR)\*.lib 
        -@del $(OUTDIR)\*.dll 
        -@del $(OUTDIR)\*.exe
        -@del $(OUTDIR)\*.pdb
        -@del $(TMPDIR)\*.pch
        -@del $(TMPDIR)\*.obj
        -@del $(TMPDIR)\*.res
        -@del $(TMPDIR)\*.def
        -@del $(TMPDIR)\*.exe
        -@rmdir $(OUTDIR)
        -@rmdir $(TMPDIR)

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.