www.digitalmars.com         C & C++   DMDScript  

c++.command-line - MSVC Workspace/Project 2 SMAKE converter

reply =?iso-8859-15?Q?=22Robert_M._M=FCnch=22?= <robert.muench robertmuench.de> writes:
Hi, I'm currently writing a MSVC Workspace/Project 2 SMAKE convert, so it's 
easier to use such a setup with DMC++.

Anyway, so far I'm mostly done, SMAKE starts and seems to understand the 
generated makefile, but I have a problem:

This is the beginning of my generated makefile:

CC=cl
CFLAGS= /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /I "../dbinc" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
CPPFLAGS= /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /I "../dbinc" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c


BTW: Walter, the option /FD isn't known/handled by CL, maybe you can fix 
this.


    ..\btree\bt_compare.c       [03-0+-02 04:30://]
    db_config.h [0,-/--02 /*:.0:14]
    db_int.h    [0)-13-02 //:-0:0,]
    db.h        [0,-/--02 /*:.0:14]
SMAKE fatal error: don't know how to make dbinc\queue.h
Stopping.

The rule looks like this (generated from MAKEDEP):

..\btree\bt_compare.obj : ..\btree\bt_compare.c db_config.h db_int.h db.h \
 dbinc\queue.h dbinc\shqueue.h dbinc\globals.h dbinc\debug.h dbinc\mutex.h 
\
 dbinc\region.h dbinc_auto\mutex_ext.h dbinc_auto\env_ext.h dbinc\os.h \
 dbinc_auto\clib_ext.h dbinc_auto\common_ext.h dbinc\db_page.h \
 dbinc\btree.h

All include files without a path are in the current directory and don't 
make any problems. The include files with a directory are actually located 
in ..\<directory-name> It seem that the /I option for CFLAGS/CPPFLAGS don't 
aplly here.

So, what's the problem with this?

-- 
Robert M. Münch
Mar 08 2003
next sibling parent reply "Walter" <walter digitalmars.com> writes:
I have no idea what's going wrong for you - does the .h file in question
exist?

"Robert M. Münch" <robert.muench robertmuench.de> wrote in message
news:oprlp7skzvr6w2gz news.digitalmars.com...
 Hi, I'm currently writing a MSVC Workspace/Project 2 SMAKE convert, so

 easier to use such a setup with DMC++.

 Anyway, so far I'm mostly done, SMAKE starts and seems to understand the
 generated makefile, but I have a problem:

 This is the beginning of my generated makefile:

 CC=cl
 CFLAGS= /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /I "../dbinc" /D
 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 CPPFLAGS= /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /I "../dbinc" /D
 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c


 BTW: Walter, the option /FD isn't known/handled by CL, maybe you can fix
 this.


     ..\btree\bt_compare.c       [03-0+-02 04:30://]
     db_config.h [0,-/--02 /*:.0:14]
     db_int.h    [0)-13-02 //:-0:0,]
     db.h        [0,-/--02 /*:.0:14]
 SMAKE fatal error: don't know how to make dbinc\queue.h
 Stopping.

 The rule looks like this (generated from MAKEDEP):

 ..\btree\bt_compare.obj : ..\btree\bt_compare.c db_config.h db_int.h db.h

  dbinc\queue.h dbinc\shqueue.h dbinc\globals.h dbinc\debug.h dbinc\mutex.h
 \
  dbinc\region.h dbinc_auto\mutex_ext.h dbinc_auto\env_ext.h dbinc\os.h \
  dbinc_auto\clib_ext.h dbinc_auto\common_ext.h dbinc\db_page.h \
  dbinc\btree.h

 All include files without a path are in the current directory and don't
 make any problems. The include files with a directory are actually located
 in ..\<directory-name> It seem that the /I option for CFLAGS/CPPFLAGS

 aplly here.

 So, what's the problem with this?

 --
 Robert M. Münch

Mar 09 2003
next sibling parent reply "Robert M. Münch" <robert.muench robertmuench.de> writes:
"Walter" <walter digitalmars.com> schrieb im Newsbeitrag
news:b4eud6$1c4p$1 digitaldaemon.com...

 I have no idea what's going wrong for you - does the .h file in question
 exist?

Hi, yes the file exists. Hmm... now I'm stuck. Is it a problem that the include file is referenced as dbinc\queue.h instead of ..\dbinc\queue.h? Does it make sense that I send you the makefile? The makefile uses several dependencies of the form: dll_all: mylib dblib ..\sources\source_file.cpp Maybe it's a problem of mixing dependencies and source files even I don't think so but who knows... Robert
Mar 09 2003
parent reply =?iso-8859-15?Q?=22Robert_M._M=FCnch=22?= <robert.muench robertmuench.de> writes:
On Sun, 9 Mar 2003 11:22:05 +0100, Robert M. Münch 
<robert.muench robertmuench.de> wrote:

 Is it a problem that the
 include file is referenced as dbinc\queue.h instead of ..\dbinc\queue.h?

I change some entries by hand in that I added the ..\ stuff and than it works :-|. Does this makes sense to you? I'm calling MAKEDEP from inside a script and than use the returned output. What I have found out is that MAKEDEP issues full-qualified-paths if used on the command line: [d:\develop\db-4.1.25\build_win32]makedep -s ..\btree\bt_compare.c ..\btree\bt_compare.obj : ..\btree\bt_compare.c db_config.h db_int.h db.h \ d:\develop\db-4.1.25\dbinc\queue.h d:\develop\db-4.1.25\dbinc\shqueue.h \ ...... But not if used from the scripting environment:
 call/output "makedep -s ..\btree\bt_compare.c" test


 ?? test


db.h \ dbinc\queue.h dbinc\shqueue.h dbinc\globals.h dbinc\debug.h dbinc\mutex.h \ dbinc\region.h dbinc_auto\mutex_ext.h dbinc_auto\env_ext.h dbinc\os.h \ dbinc_auto\clib_ext.h dbinc_auto\common_ext.h dbinc\db_page.h \ dbinc\btree.h } It looks like the -t option is applied. Any idea? -- Robert M. Münch
Mar 09 2003
parent "Walter" <walter digitalmars.com> writes:
"Robert M. Münch" <robert.muench robertmuench.de> wrote in message
news:oprlrx05lkr6w2gz news.digitalmars.com...
 On Sun, 9 Mar 2003 11:22:05 +0100, Robert M. Münch
 <robert.muench robertmuench.de> wrote:

 Is it a problem that the
 include file is referenced as dbinc\queue.h instead of ..\dbinc\queue.h?

I change some entries by hand in that I added the ..\ stuff and than it works :-|. Does this makes sense to you?

Yes. x\file.h and ..\x\file.h are different files.
Mar 09 2003
prev sibling next sibling parent =?iso-8859-15?Q?=22Robert_M._M=FCnch=22?= <robert.muench robertmuench.de> writes:
On Sun, 9 Mar 2003 00:29:51 -0800, Walter <walter digitalmars.com> wrote:

 I have no idea what's going wrong for you - does the .h file in question
 exist?

Hi, could it be that SMAKE isn't using the INCLUDE variabel specified in the environment and/or in SC.INI? Robert
Mar 09 2003
prev sibling next sibling parent reply =?iso-8859-15?Q?=22Robert_M._M=FCnch=22?= <robert.muench robertmuench.de> writes:
On Sun, 9 Mar 2003 00:29:51 -0800, Walter <walter digitalmars.com> wrote:

 I have no idea what's going wrong for you - does the .h file in question
 exist?

Further, investigating: 1. makedep needs the INLCUDE environment variable set to issue full path information. Using -t or not in this case always results in a full path information. 2. makedep seems not to handle #defines, this means stuff like: #ifdef HAVE_VXWORKS #include "semLib.h" #endif get's included even this platform to build for wasn't set. Is this right? If so, there should be a switch that makedep skips include files that it can't find. Here is an example run: [d:\develop\db-4.1.25\build_win32]makedep -d -s -t ..\btree\bt_compare.c Processing file '..\btree\bt_compare.c' Processing file 'db_config.h' Processing file 'db_int.h' Processing file 'd:\develop\db-4.1.25\dbinc\db_page.h' Processing file 'd:\develop\db-4.1.25\dbinc\btree.h' Processing file 'db.h' Processing file 'd:\develop\db-4.1.25\dbinc\queue.h' Processing file 'd:\develop\db-4.1.25\dbinc\shqueue.h' Processing file 'd:\develop\db-4.1.25\dbinc\globals.h' Processing file 'd:\develop\db-4.1.25\dbinc\debug.h' Processing file 'd:\develop\db-4.1.25\dbinc\mutex.h' Processing file 'd:\develop\db-4.1.25\dbinc\region.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\mutex_ext.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\env_ext.h' Processing file 'd:\develop\db-4.1.25\dbinc\os.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\clib_ext.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\common_ext.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\btree_auto.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\btree_ext.h' Processing file 'd:\develop\db-4.1.25\dbinc\db_am.h' Processing file 'semLib.h' Can't open file 'semLib.h' Processing file 'taskLib.h' Can't open file 'taskLib.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\os_ext.h' Processing file 'd:\develop\db-4.1.25\dbinc\db_dispatch.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\db_auto.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\crdel_auto.h' Processing file 'd:\develop\db-4.1.25\dbinc_auto\db_ext.h' bt_compare.obj : ..\btree\bt_compare.c db_config.h db_int.h db.h \ d:\develop\db-4.1.25\dbinc\queue.h d:\develop\db-4.1.25\dbinc\shqueue.h \ d:\develop\db-4.1.25\dbinc\globals.h semLib.h \ d:\develop\db-4.1.25\dbinc\debug.h d:\develop\db-4.1.25\dbinc\mutex.h \ taskLib.h d:\develop\db-4.1.25\dbinc\region.h \ d:\develop\db-4.1.25\dbinc_auto\mutex_ext.h \ d:\develop\db-4.1.25\dbinc_auto\env_ext.h d:\develop\db-4.1.25\dbinc\os.h \ d:\develop\db-4.1.25\dbinc_auto\os_ext.h \ d:\develop\db-4.1.25\dbinc_auto\clib_ext.h \ d:\develop\db-4.1.25\dbinc_auto\common_ext.h \ d:\develop\db-4.1.25\dbinc\db_page.h d:\develop\db-4.1.25\dbinc\btree.h \ d:\develop\db-4.1.25\dbinc_auto\btree_auto.h \ d:\develop\db-4.1.25\dbinc_auto\btree_ext.h \ d:\develop\db-4.1.25\dbinc\db_am.h d:\develop\db- 4.1.25\dbinc\db_dispatch.h \ d:\develop\db-4.1.25\dbinc_auto\db_auto.h \ d:\develop\db-4.1.25\dbinc_auto\crdel_auto.h \ d:\develop\db-4.1.25\dbinc_auto\db_ext.h -- Robert M. Münch
Mar 09 2003
parent "Walter" <walter digitalmars.com> writes:
"Robert M. Münch" <robert.muench robertmuench.de> wrote in message
news:oprlryum0br6w2gz news.digitalmars.com...
 2. makedep seems not to handle #defines, this means stuff like:
 #ifdef HAVE_VXWORKS
 #include "semLib.h"
 #endif
 get's included even this platform to build for wasn't set. Is this right?

Yes. Makedep doesn't have a macro preprocessor in it. It's a pretty simple program.
Mar 09 2003
prev sibling parent mjs NOSPAM.hannover.sgh-net.de (Mark Junker) writes:
 2. makedep seems not to handle #defines, this means stuff like:
 	#ifdef HAVE_VXWORKS
 	#include "semLib.h"
 	#endif
 get's included even this platform to build for wasn't set. Is this right?

I get quite good results using makedepend/sed from UnxUtils + update when generation dependencies automatically. It seems to me that it has something like a C preprocessor in it but you have to add some defines like __DMC__ to the makedepend command line yourself. Best regards, Mark Junker
Mar 16 2003
prev sibling parent reply Gerhard Wiesinger <gerhard.wiesinger atc.co.at> writes:
Hello!

Did you have a look at
http://jrfonseca.dyndns.org/projects/gnu-win32/software/msds/

BTW: How far did you get?

Ciao,
Gerhard

""Robert M. Münch"" wrote:
 
 Hi, I'm currently writing a MSVC Workspace/Project 2 SMAKE convert, so it's
 easier to use such a setup with DMC++.
 
 Anyway, so far I'm mostly done, SMAKE starts and seems to understand the
 generated makefile, but I have a problem:
 
 This is the beginning of my generated makefile:
 
 CC=cl
 CFLAGS= /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /I "../dbinc" /D
 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 CPPFLAGS= /nologo /MDd /W3 /GX /Z7 /Od /I "." /I ".." /I "../dbinc" /D
 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 
 BTW: Walter, the option /FD isn't known/handled by CL, maybe you can fix
 this.
 
     ..\btree\bt_compare.c       [03-0+-02 04:30://]
     db_config.h [0,-/--02 /*:.0:14]
     db_int.h    [0)-13-02 //:-0:0,]
     db.h        [0,-/--02 /*:.0:14]
 SMAKE fatal error: don't know how to make dbinc\queue.h
 Stopping.
 
 The rule looks like this (generated from MAKEDEP):
 
 ..\btree\bt_compare.obj : ..\btree\bt_compare.c db_config.h db_int.h db.h \
  dbinc\queue.h dbinc\shqueue.h dbinc\globals.h dbinc\debug.h dbinc\mutex.h
 \
  dbinc\region.h dbinc_auto\mutex_ext.h dbinc_auto\env_ext.h dbinc\os.h \
  dbinc_auto\clib_ext.h dbinc_auto\common_ext.h dbinc\db_page.h \
  dbinc\btree.h
 
 All include files without a path are in the current directory and don't
 make any problems. The include files with a directory are actually located
 in ..\<directory-name> It seem that the /I option for CFLAGS/CPPFLAGS don't
 aplly here.
 
 So, what's the problem with this?
 
 --
 Robert M. Münch

Mar 24 2003
parent =?iso-8859-15?Q?=22Robert_M._M=FCnch=22?= <robert.muench robertmuench.de> writes:
Am Mon, 24 Mar 2003 10:25:38 +0100 hat Gerhard Wiesinger 
<gerhard.wiesinger atc.co.at> geschrieben:

 Did you have a look at
 http://jrfonseca.dyndns.org/projects/gnu-win32/software/msds/

Hi, sorry for answering that late but I didn't had time to get back to the project. Thanks for the link, I have a look.
 BTW: How far did you get?

The script works quite OK. Not perfect but it lets you start very fast. I will add it to my homepage soon. Robert
Apr 06 2003