![]() |
Blitz Support : |
From: Julian C. Cummings (cummings_at_[hidden])
Date: 2004-06-07 21:12:02
Hi Toby,
Sorry for the lengthy delay in replying to your question. I'm not so
familiar with the VC++ toolkit that you describe. Does it use the Microsoft
nmake.exe program or does it use a bona-fide Unix make utility? I think
there are some subtle differences in the syntax accepted by nmake and make.
I vaguely recall what you mentioned about checking off a box to tell a VC++
project to dump out a Makefile suitable for nmake.exe to run. But I think
this feature may have been discontinued in the move to VS.NET. At least, I
don't see this feature in the VS.NET IDE that I have. They do have a
"Makefile project", but all this is is a VS.NET project that will run an
nmake command for you. It does not create the Makefile for you.
In any case, I have an idea of what the Makefile for the blitz library would
look like. The default target is lib/blitz.lib, which depends on
Release/globals.obj and is created using the lib.exe command. In turn,
Release/globals.obj depends on src/globals.cpp and is created using the
cl.exe command along with all your compiler options. I'm sorry that I don't
have a simple way to generate the nmake Makefile for you, but I think it's
fairly simple to write it manually.
As for the IEEE math library issue, I think it is OK to leave this as
undefined in the config.h file. Please see the blitz/config-VS.NET2003.h
file for an example of config.h contents that have been known to work with
the MS VC++ compiler in the past.
Regards, Julian C.
Dr. Julian C. Cummings
Staff Scientist, CACR/Caltech
(626) 395-2543
cummings_at_[hidden]
> -----Original Message-----
> From: blitz-support-bounces_at_[hidden]
> [mailto:blitz-support-bounces_at_[hidden]] On Behalf Of Toby Walsh
> Sent: Monday, May 10, 2004 1:40 AM
> To: blitz-support_at_[hidden]
> Subject: [Blitz-support] Visual C++ Toolkit Makefile?
>
>
> Hi all,
>
> I've got a favour to ask. I'm trying to port a project across
> to Windows
> and I'm using the Visual C++ Toolkit (the VC++ 7.1 free
> download). Problem
> is, it's a command line compiler and it only has support for
> Makefiles. So,
> I can compile all the compiler tests no problem. I also generated a
> config.h with bzconfig (attached below). But I can't compile
> the Blitz++
> sources because there's no Visual C++ friendly Makefile. It
> should be easy
> to do for people with the Visual C++ IDE. There's an option
> that allows
> creation of Makefiles from a project. It's a matter of
> checking a box IIRC.
> Then you could add that to your distribution along with the
> other Visual
> C++.NET files.
>
> One more thing - I don't know how this affects the build
> process - bzconfig
> detects no IEEE math library. AFAIK, Visual C++ has it built in. So,
> instead of -lm for Unix flavours to compile, you don't need
> to specify a
> library at the command line. If someone provides a Makefile I'll try
> changing the HAVE_IEEE_MATH flag to see if it changes compilation
> success/failure.
>
> #ifndef BZ_CONFIG_H
> #define BZ_CONFIG_H
>
> #define BZ_COMPILER_NAME "cl"
> #define BZ_COMPILER_OPTIONS "/GR /EHsc /G7 /O2 /arch:SSE2"
> #define BZ_OS_NAME "CYGWIN_NT-5.1 1.3.22(0.78/3/2)"
> #define BZ_BZCONFIG_DATE "Mon May 10 15:57:06 WAST 2004"
> #define BZ_PLATFORM "i686-pc-cygwin"
>
> #define BZ_NAMESPACES
> #define BZ_EXCEPTIONS
> #define BZ_RTTI
> #define BZ_MEMBER_CONSTANTS
> #define BZ_OLD_FOR_SCOPING
> #define BZ_EXPLICIT
> #define BZ_MUTABLE
> #define BZ_TYPENAME
> #undef BZ_NCEG_RESTRICT
> #undef BZ_NCEG_RESTRICT_EGCS
> #define BZ_BOOL
> #define BZ_CONST_CAST
> #define BZ_STATIC_CAST
> #define BZ_REINTERPRET_CAST
> #define BZ_DYNAMIC_CAST
> #define BZ_TEMPLATES
> #define BZ_PARTIAL_SPECIALIZATION
> #define BZ_PARTIAL_ORDERING
> #define BZ_DEFAULT_TEMPLATE_PARAMETERS
> #define BZ_MEMBER_TEMPLATES
> #define BZ_MEMBER_TEMPLATES_OUTSIDE_CLASS
> #define BZ_FULL_SPECIALIZATION_SYNTAX
> #define BZ_FUNCTION_NONTYPE_PARAMETERS
> #define BZ_TEMPLATE_QUALIFIED_BASE_CLASS
> #define BZ_TEMPLATE_QUALIFIED_RETURN_TYPE
> #define BZ_EXPLICIT_TEMPLATE_FUNCTION_QUALIFICATION
> #define BZ_TEMPLATES_AS_TEMPLATE_ARGUMENTS
> #define BZ_TEMPLATE_KEYWORD_QUALIFIER
> #define BZ_TEMPLATE_SCOPED_ARGUMENT_MATCHING
> #define BZ_TYPE_PROMOTION
> #define BZ_USE_NUMTRAIT
> #define BZ_ENUM_COMPUTATIONS
> #define BZ_ENUM_COMPUTATIONS_WITH_CAST
> #define BZ_HAVE_COMPLEX
> #define BZ_HAVE_NUMERIC_LIMITS
> #define BZ_HAVE_CLIMITS
> #define BZ_HAVE_VALARRAY
> #define BZ_HAVE_COMPLEX_MATH
> #undef BZ_HAVE_IEEE_MATH
> #undef BZ_HAVE_SYSTEM_V_MATH
> #define BZ_MATH_FN_IN_NAMESPACE_STD
> #define BZ_COMPLEX_MATH_IN_NAMESPACE_STD
> #define BZ_HAVE_STD
> #define BZ_HAVE_STL
> #undef BZ_HAVE_RUSAGE
>
> #endif // BZ_CONFIG_H
>
> Thanks in advance,
> Toby
>
>
> _______________________________________________
> Blitz-support mailing list
> Blitz-support_at_[hidden]
> http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support
>