LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 665|回复: 2

VDKBuilder不能make

[复制链接]
发表于 2003-11-5 10:48:36 | 显示全部楼层 |阅读模式
安装vdkbuilder时,
make
出现以下错误,有哪位大侠能告诉我如何解决?

-I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_plugin.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_prj.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_prjman.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_prjopt.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_prjpref.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_PWizard.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_prop.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_radiobutton.ccg++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_spinbutton.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_rbgroup.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_replace.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_sbar.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_scrolled.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_search.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_separator.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_signal.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_slider.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_tabledlg.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_tabledlg_gui.cc
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/vdk2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -s -O2 -I../include  -Wall -c vdkb_templates.cc
vdkb_templates.cc:859:13: missing terminating " character
vdkb_templates.cc: In member function `bool VDKBProject::WriteMakefile(FILE*)':
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: syntax error before `:' token
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: stray '\' in program
vdkb_templates.cc:877: error: parse error before `##' token
vdkb_templates.cc:877: error: parse error before `##' token
vdkb_templates.cc:877: error: parse error before `##' token
vdkb_templates.cc:877: error: parse error before `#' token
vdkb_templates.cc:887:1: missing terminating " character
vdkb_templates.cc:637: warning: unused variable `char*c_ext'
make[3]: *** [vdkb_templates.o] 错误 1
make[3]: Leaving directory `/tmp/vdkbuilder2-2.0.5/vdkbuilder'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/vdkbuilder'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/tmp/vdkbuilder2-2.0.5'
make: *** [all-recursive-am] 错误 2
 楼主| 发表于 2003-11-5 10:58:56 | 显示全部楼层

vdkb_templates.cc的内容如下:

/*
* ===========================
* VDK Builder
* Version 0.1
* Revision 0.0
* November 1998
* ===========================
*
* Copyright (C) 1998,1999 Mario Motta
* Developed by Mario Motta <mmotta@guest.net>
*
* Based on VDK Library
* Copyright (C) 1998, Mario Motta
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
*/

#if !HAVE_GNOME
  #if ENABLE_NLS
    #include <libintl.h>
//#define _(str) gettext(str)
#define _(str) \
    ( g_utf8_validate(gettext(str),-1,NULL) ? \
    gettext(str) : \
    g_locale_to_utf8(gettext(str),-1,NULL,NULL,NULL) )
#define N_(str) str
  #else
    #define _(str) str
    #define N_(str) str
  #endif
#else
#include <gnome.h>
#endif

#include <vdkb2/vdkb_prj.h>
#include <vdkb2/vdkb.h>
#include <vdkb2/vdkb_utils.h>
#include <vdkb2/vdkb_types.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <vdkb2/vdkb_editor.h>
#include <sys/param.h>

static char buff[1024];
extern char *ext_types[];
extern VDKBuilder* TheApp;
static void WriteDependencies(FILE* fp, char* complete_name, char* avoid = NULL);
extern char *source_prompts[];
/////////////////////////
bool
VDKBProject::WriteMainHForConsole(FILE* fp)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  int len = strlen(Name);
  char* name = new char[len+1];
  strcpy(name, Name);
  char* p = get_extension(name);
  if(p)
    *p = '\0';
  // write developer header / gpl license
  // write file header
  time_t ltime;
  time(&ltime);
  struct tm * lct = localtime(&ltime);
  fprintf(fp,source_prompts[34],(char*)options.author);
  fprintf(fp,source_prompts[35],(char*)options.email);
  if(options.gpld)
      fprintf(fp,source_prompts[36]);
  fprintf(fp,source_prompts[37],(char*)options.author,1900+lct->tm_year);

  fprintf(fp,source_prompts[11],name);
  fprintf(fp,source_prompts[12],name,h_ext);
  fprintf(fp,"\n*/");
  fprintf(fp,"\n#ifndef _%s_main_h_",name);
  fprintf(fp,"\n#define _%s_main_h_",name);
  fprintf(fp,"\n#include <stdlib.h>");
  fprintf(fp,"\n");
  fprintf(fp,"\n");
  fprintf(fp,"\n#endif\n");
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name, h_ext);
  fclose(fp);
  delete[] name;
  return true;
}
/*
*/
bool
VDKBProject::WriteMainH(FILE* fp, int type)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  int len = strlen(Name);
  char* name = new char[len+1];
  strcpy(name, Name);
  char* p = get_extension(name);
  bool isUpper = false;
  if(p)
    *p = '\0';
  // write developer header / gpl license
  // write file header
  time_t ltime;
  time(&ltime);
  struct tm * lct = localtime(&ltime);
  fprintf(fp,source_prompts[34],(char*)options.author);
  fprintf(fp,source_prompts[35],(char*)options.email);
  if(options.gpld)
      fprintf(fp,source_prompts[36]);
  fprintf(fp,source_prompts[37],(char*)options.author,1900+lct->tm_year);

  fprintf(fp,source_prompts[13],
          name,
          type == vdk_project ?
          source_prompts[14]:
          source_prompts[15]
          );
  fprintf(fp,source_prompts[12],name,h_ext);
  fprintf(fp,"\n*/");
  fprintf(fp,"\n#ifndef _%s_main_form_h_",name);
  fprintf(fp,"\n#define _%s_main_form_h_",name);
  fprintf(fp,"\n#ifdef HAVE_CONFIG_H");
  fprintf(fp,"\n#include <config.h>");
  fprintf(fp,"\n#endif");
#if USE_XDB
  fprintf(fp,"\n// vdkxdb support");
  fprintf(fp,"\n#ifdef VDKXDB_SUPPORT");
  fprintf(fp,"\n#include <vdkxdb2/vdkxdb_support.h>");
  fprintf(fp,
                "\n/*\n\
Note: all tables and indexes files names\n\
are relative to XDB_DATA_PATH symbolic constant,\n\
change it if you need a path other than default ,\n\
however all data and index files should be\n\
contained into a single directory\n*/\n");
      fprintf(fp,"\n#define XDB_DATA_PATH \"./\"");
  fprintf(fp,"\n#endif");
#endif
  fprintf(fp,"\n// vdk support");
  fprintf(fp,"\n#include <vdk/vdk.h>");
  isUpper = isupper(name[0]);
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,"\n// %s FORM  CLASS",name);
  fprintf(fp,"\nclass %sForm: public %s", name,
          type == vdk_project ? "VDKForm" : "VDKGnomeForm");
  fprintf(fp,"\n{");
  fprintf(fp,source_prompts[16]);
  fprintf(fp,"\nprivate:");
  fprintf(fp,source_prompts[16]);
  fprintf(fp,"\n\tvoid GUISetup(void);");
  fprintf(fp,"\n");
  fprintf(fp,"\npublic:");
  fprintf(fp,"\n\t%sForm(%s* app, char* title);",
          name,
          type == vdk_project ? "VDKApplication" : "VDKGnomeApplication"
          );
  fprintf(fp,"\n\t~%sForm();", name);
  fprintf(fp,"\n\tvoid Setup(void);");
  fprintf(fp,source_prompts[18]);
  fprintf(fp,source_prompts[19]);
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,"\n#include <%s_gui.%s>",name,h_ext);
  fprintf(fp,"\n};");
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,"\n\n\n// %s APPLICATION  CLASS",name);
  fprintf(fp,"\nclass %sApp: public %s", name,
          type == vdk_project ? "VDKApplication" : "VDKGnomeApplication");
  fprintf(fp,"\n{");
#if USE_XDB
  fprintf(fp,"\n#ifdef VDKXDB_SUPPORT");
  fprintf(fp,"\nVDKXDatabase* xdb;");
  fprintf(fp,"\n#endif");
#endif
  fprintf(fp,"\npublic:");
  fprintf(fp,"\n%sApp(int* argc, char** argv, char* rc = NULL, bool have_locale = false);", name);
  fprintf(fp,"\n~%sApp();", name);
#if USE_XDB
  fprintf(fp,"\n#ifdef VDKXDB_SUPPORT");
  fprintf(fp,"\nvoid XDBSetup(void);");
  fprintf(fp,"\nVDKXDatabase* TheXdb() { return xdb; }");
  fprintf(fp,"\n#endif");
#endif
  fprintf(fp,"\nvoid Setup(void);");

  fprintf(fp,"\n};\n");
  fprintf(fp,"\n#endif\n");
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name, h_ext);
  fclose(fp);
  delete[] name;
  return true;
}
/*
bool
VDKBProject::WriteGUISetup(FILE* fp, int type)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  char* cc_ext  = (char*) VDKBuilder::ideDefaults.unit.cc_ext;
  int len = strlen(Name);
  char* name = new char[len+1];
   bool nls_support = options.nls_support == VDKString("yes");
// write developer header / gpl license
  // write file header
  fprintf(fp,source_prompts[34],(char*)options.author);
  fprintf(fp,source_prompts[35],(char*)options.email);
  if(options.gpld)
      fprintf(fp,source_prompts[36]);
  if(nls_support)
    fprintf(fp,"#if HAVE_CONFIG_H\n\
#include <config.h>\n#endif\n#if !HAVE_GNOME\n#if ENABLE_NLS\n\
#include <libintl.h>\n#define _(str) gettext(str)\n#define N_(str) str\n\
#else\n#define _(str) str\n#define N_(str) str\n#endif\n#endif\n");
  strcpy(name, Name);
  bool isUpper = isupper(name[0]);
  char* p = get_extension(name);
  if(p)
    *p = '\0';
  fprintf(fp,"\n#include <%s.%s>",name,h_ext);
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,source_prompts[20]);
  fprintf(fp,"\nvoid\n%sForm::GUISetup(void)\n{",name);
  if(nls_support)
    fprintf(fp,"\n\tTitle = _(\"%s\");",name);
  else
    fprintf(fp,"\n\tTitle = \"%s\";",name);
  fprintf(fp,"\n\tthis->SetSize(400,300);");
  fprintf(fp,"\n}\n");
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name, cc_ext);
  fclose(fp);
  delete[] name;
  return true;
}
*/
/*
*/
bool
VDKBEditor::WriteFormCC(char* fname, FILE* fp)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  char* cc_ext  = (char*) VDKBuilder::ideDefaults.unit.cc_ext;
  char* name;
  char* memname = new char[strlen(fname)+1];
  VDKBMainForm* owner = dynamic_cast<VDKBMainForm*> (Owner());
  VDKBProjectManager* prjman = NULL;
  if(owner)
    prjman = owner->rjManager();
  strcpy(memname,fname);
  char* p = get_shortfilename(memname);
  bool isUpper = false;
  if(p)
    name = p;
  else
    {
      delete[] memname;
      return false;
    }
  // write developer header / gpl license
  // write file header
  if(prjman)
    {
      /*
      fprintf(fp,source_prompts[34],(char*) prjman->roject()->Options()->author);
      fprintf(fp,source_prompts[35],(char*) prjman->roject()->Options()->email);
      if(prjman->roject()->Options()->gpld)
        fprintf(fp,source_prompts[36]);
      */
      time_t ltime;
      time(&ltime);
      struct tm * lct = localtime(&ltime);
      fprintf(fp,source_prompts[34],(char*)prjman->roject()->Options()->author);
      fprintf(fp,source_prompts[35],(char*)prjman->roject()->Options()->email);
      if(prjman->roject()->Options()->gpld)
        fprintf(fp,source_prompts[36]);
      fprintf(fp,source_prompts[37],
              (char*)prjman->roject()->Options()->author,1900+lct->tm_year);
    }
  fprintf(fp,"/*\n%s Form",name);
  fprintf(fp,source_prompts[21],name,cc_ext);
  fprintf(fp,"\n*/");
  fprintf(fp,"\n#include <%s.%s>",name,h_ext);
  isUpper = isupper(name[0]);
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,"\n// %s FORM  CLASS",name);
  fprintf(fp,source_prompts[22]);
  fprintf(fp,"\n%sForm::%sForm(VDKForm* owner, char* title):",
          name,name);
  fprintf(fp,"\n\tVDKForm(owner,title,v_box,%s)\n{\n}\n",DISPLAY_TYPE);
  fprintf(fp,source_prompts[23]);
  fprintf(fp,"\n%sForm::~%sForm()\n{\n}\n",
          name,name);
  fprintf(fp,source_prompts[24]);
  fprintf(fp,"\nvoid\n%sForm::Setup(void)\n{",
          name);
  fprintf(fp,"\n\tGUISetup();");
  fprintf(fp,source_prompts[25]);
  fprintf(fp,"\n");
  fprintf(fp,"\n}\n");
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name, cc_ext);
  fclose(fp);
  delete memname;
  return true;
}

/*
*/
bool
VDKBEditor::WriteFormH(char* fname,FILE* fp)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  char* name;
  VDKBMainForm* owner = dynamic_cast<VDKBMainForm*> (Owner());
  VDKBProjectManager* prjman = NULL;
  if(owner)
    prjman = owner->rjManager();
  char* memname = new char[strlen(fname)+1];
  strcpy(memname,fname);
  char* p = get_shortfilename(memname);
  if(p)
    name = p;
  else
    {
      delete[] memname;
      return false;
    }
  bool isUpper = isupper(name[0]);
// write developer header / gpl license
  // write file header
  if(prjman)
    {
      /*
      fprintf(fp,source_prompts[34],(char*) prjman->roject()->Options()->author);
      fprintf(fp,source_prompts[35],(char*) prjman->Project()->Options()->email);
      if((char*) prjman->Project()->Options()->gpld)
        fprintf(fp,source_prompts[36]);
      */
      time_t ltime;
      time(&ltime);
      struct tm * lct = localtime(&ltime);
      fprintf(fp,source_prompts[34],(char*)prjman->Project()->Options()->author);
      fprintf(fp,source_prompts[35],(char*)prjman->Project()->Options()->email);
      if(prjman->Project()->Options()->gpld)
        fprintf(fp,source_prompts[36]);
      fprintf(fp,source_prompts[37],
              (char*)prjman->Project()->Options()->author,1900+lct->tm_year);
    }
  fprintf(fp,"/*\n%s Form",name);
  fprintf(fp,source_prompts[26],name,h_ext);
  fprintf(fp,"\n*/");
  fprintf(fp,"\n#ifndef _%s_form_h_",name);
  fprintf(fp,"\n#define _%s_form_h_",name);
  fprintf(fp,"\n#ifdef HAVE_CONFIG_H");
  fprintf(fp,"\n#include <config.h>");
  fprintf(fp,"\n#endif");
#if USE_XDB
  fprintf(fp,"\n#ifdef VDKXDB_SUPPORT");
  fprintf(fp,"\n#include <vdkxdb2/vdkxdb_support.h>");
  fprintf(fp,"\n#endif");
#endif
  fprintf(fp,"\n#include <vdk/vdk.h>");
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,"\n// %s FORM  CLASS",name);
  fprintf(fp,"\nclass %sForm: public VDKForm", name);
  fprintf(fp,"\n{");
  fprintf(fp,source_prompts[16]);
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,"\nprivate:");
  fprintf(fp,source_prompts[17]);
  fprintf(fp,"\n\tvoid GUISetup(void);");
  fprintf(fp,"\n");
  fprintf(fp,"\npublic:");
  fprintf(fp,"\n\t%sForm(VDKForm* owner, char* title);", name);
  fprintf(fp,"\n\t~%sForm();", name);
  fprintf(fp,"\n\tvoid Setup(void);");
  fprintf(fp,"\n/*\n gui setup include ");
  fprintf(fp,source_prompts[19]);
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,"\n#include <%s_gui.%s>",name,h_ext);
  fprintf(fp,"\n};");
  fprintf(fp,"\n#endif\n");
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name,
          h_ext);
  fclose(fp);
  delete[] memname;
  return true;
}
/*
*/
bool
VDKBProject::WriteMainCC(FILE* fp, int type)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  char* cc_ext  = (char*) VDKBuilder::ideDefaults.unit.cc_ext;
  int len = strlen(Name);
  char* name = new char[len+1];
  strcpy(name, Name);
  bool isUpper = isupper(name[0]);
  char* p = get_extension(name);
  if(p)
    *p = '\0';
// write developer header / gpl license
  // write file header
  time_t ltime;
  time(&ltime);
  struct tm * lct = localtime(&ltime);
  fprintf(fp,source_prompts[34],(char*)options.author);
  fprintf(fp,source_prompts[35],(char*)options.email);
  if(options.gpld)
      fprintf(fp,source_prompts[36]);
  fprintf(fp,source_prompts[37],(char*)options.author,1900+lct->tm_year);

  fprintf(fp,"/*\n%s %s Application",
          name,
          type == vdk_project ?
          source_prompts[14] :
          source_prompts[15]);
  fprintf(fp,source_prompts[27],name,cc_ext);
  fprintf(fp,"\n*/");
  fprintf(fp,"\n#include <%s.%s>",name,h_ext);
  if(!isUpper)
    name[0] = toupper(name[0]);
  fprintf(fp,source_prompts[28]);
  fprintf(fp,"\nint main (int argc, char *argv[])");
  fprintf(fp,"\n{");
  fprintf(fp,"\n// makes application");
  fprintf(fp,"\n\%sApp app(&argc, argv);",name);
  fprintf(fp,"\n// runs application");
  fprintf(fp,"\napp.Run();");
  fprintf(fp,"\nreturn 0;");
  fprintf(fp,"\n}\n");

  fprintf(fp,"\n// %s MAIN FORM  CLASS",name);
  fprintf(fp,source_prompts[29]);
  fprintf(fp,"\n%sForm::%sForm(%s* app, char* title):",
          name,
          name,
          type == vdk_project ? "VDKApplication" : "VDKGnomeApplication");
  fprintf(fp,"\n\t%s(app,title,v_box,%s)\n{\n}\n",
          type == vdk_project ? "VDKForm" : "VDKGnomeForm",DISPLAY_TYPE);
  fprintf(fp,"\n/*\nmain form destructor\n*/");
  fprintf(fp,"\n%sForm::~%sForm()\n{\n}\n",
          name,name);
  fprintf(fp,"\n/*\nmain form setup\n*/");
  fprintf(fp,"\nvoid\n%sForm::Setup(void)\n{",
          name);
  fprintf(fp,"\n\tGUISetup();");
  fprintf(fp,source_prompts[25]);
  fprintf(fp,"\n");
  fprintf(fp,"\n}\n");

  fprintf(fp,"\n// %s APPLICATION  CLASS",name);
  fprintf(fp,source_prompts[30]);
  fprintf(fp,"\n%sApp::%sApp(int* argc, char** argv, char* rc, bool have_locale):",
          name,name);
  if(type == vdk_project)
      fprintf(fp,"\n\tVDKApplication(argc,argv, rc, have_locale)\n{");
  else
      fprintf(fp,"\n\tVDKGnomeApplication(\"%s\",\"%s\",argc,argv, rc, have_locale)\n{",
              name,name);
#if USE_XDB
  fprintf(fp,"\n#ifdef VDKXDB_SUPPORT");
  fprintf(fp,"\nxdb = new VDKXDatabase;");
  fprintf(fp,"\n#endif");
#endif  
    fprintf(fp,"\n}\n");

  fprintf(fp,source_prompts[31]);
#if USE_XDB
  fprintf(fp,
"\n%sApp::~%sApp()\n{ \n#ifdef VDKXDB_SUPPORT\nif(xdb) delete xdb; \n#endif\n}\n",
          name,name);
#else
  fprintf(fp,"\n%sApp::~%sApp()\n{ }\n",
          name,name);
#endif
  fprintf(fp,"\n/*\napplication setup\n*/\n");
  fprintf(fp,"\nvoid\n%sApp::Setup(void)\n{",
          name);
#if USE_XDB
  fprintf(fp,"\n#ifdef VDKXDB_SUPPORT");
  fprintf(fp,"\n\tXDBSetup();");
  fprintf(fp,"\n#endif");
#endif
  fprintf(fp,"\n\tMainForm = new %sForm(this,NULL);",name);
  fprintf(fp,"\n\tMainForm->Setup();");
  fprintf(fp,"\n\tMainForm->Show(%sForm::%s);",name,WINPOS);
  fprintf(fp,"\n}\n");
  if(!isUpper)
    name[0] = tolower(name[0]);
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name, cc_ext);
  fclose(fp);
  delete[] name;
  return true;
}

/*
*/
bool
VDKBProject::WriteMainCCForConsole(FILE* fp)
{
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  char* cc_ext  = (char*) VDKBuilder::ideDefaults.unit.cc_ext;
  int len = strlen(Name);
  char* name = new char[len+1];
  strcpy(name, Name);
  char* p = get_extension(name);
  if(p)
    *p = '\0';
  // write developer header / gpl license
  // write file header
  time_t ltime;
  time(&ltime);
  struct tm * lct = localtime(&ltime);
  fprintf(fp,source_prompts[34],(char*)options.author);
  fprintf(fp,source_prompts[35],(char*)options.email);
  if(options.gpld)
      fprintf(fp,source_prompts[36]);
  fprintf(fp,source_prompts[37],(char*)options.author,1900+lct->tm_year);

  fprintf(fp,source_prompts[32],name);
  fprintf(fp,source_prompts[33],name,cc_ext);
  fprintf(fp,"\n*/");
  fprintf(fp,"\n#include <%s.%s>",name,h_ext);
  fprintf(fp,source_prompts[28]);
  fprintf(fp,"\nint main (int argc, char *argv[])");
  fprintf(fp,"\n{");
  fprintf(fp,"\n");
  fprintf(fp,"\n\treturn 0;");
  fprintf(fp,"\n");
  fprintf(fp,"\n}\n");
  fprintf(fp,source_prompts[1], SOURCE_END_MARK, name, cc_ext);
  fclose(fp);
  delete name;
  return true;
}
/*
*/
#define THIS "this"
bool
VDKBEditor::WriteFrm(char* fname,FILE* fp)
{
  char* name;
  char* memname = new char[strlen(fname)+1];
  strcpy(memname,fname);
  char* p = get_shortfilename(memname);
  if(p)
    name = p;
  else
    {
      delete[] memname;
      return false;
    }
  fprintf(fp,"[%s]\
\n{\
\n\tclass:form;\
\n\t%s.this:%s;\
\n\t%s.NormalBackground:nihil;\
\n\t%s.Foreground:nihil;\
\n\t%s.Font:nihil;\
\n\t%s.Cursor:nihil;\
\n\t%s.Usize: 400, 300;\
\n\t%s.Title:\"%s Form\";\
\n}",
          name,
          name,name,name,name,name,name,name,name,
          name);
  fclose(fp);
  delete[] memname;
  return true;
}
/*
*/
bool
VDKBProject::WriteDfmFile(FILE* fp, int type)
{
  int len = strlen(Name);
  char* name = new char[len+1];
  strcpy(name, Name);
  char* p = get_extension(name);
  if(p)
    *p = '\0';
  fprintf(fp,"[%s]\
\n{\
\n\tclass:%s;\
\n\t%s.this:%s;\
\n\t%s.NormalBackground:nihil;\
\n\t%s.Foreground:nihil;\
\n\t%s.Font:nihil;\
\n\t%s.Cursor:nihil;\
\n\t%s.Usize: 400, 300;\
\n\t%s.Title:\"%s Main Form\";\
\n}",
          name,
          type == vdk_project ? "form" : "gnomeform",
          name,name,name,name,name,name,name,name,
          name);
  fclose(fp);
  delete[] name;
  return true;
}
/*
*/
bool
VDKBProject::WriteMakefile(FILE* fp)
{
  VDKString pathname = PathName;
  VDKString path = Path;
  VDKString name = Name;
  char* cc_ext  = (char*) VDKBuilder::ideDefaults.unit.cc_ext;
  char* h_ext  = (char*) VDKBuilder::ideDefaults.unit.h_ext;
  char* c_ext   = "c";
  // check if some tables are in use
  /*
#ifdef USE_XDB
  VDKXDatabase* xdb = TheApp->theXdb;
  TableList* tlist = xdb->TList();
  if( (tlist->size() > 0) &&
      (strstr((char*) options.defines,"VDKXDB_SUPPORT") == NULL)
      )
      options.defines += " -DVDKXDB_SUPPORT";
#endif
  */
  fprintf(fp,"# Makefile for building\n# %s\n\n####### Compiler, tools and options\
", (char*) pathname);

  fprintf(fp,"\
\nC        =  %s\
\nCC       =  %s\
\nCFLAGS   =  %s\
",
          (char*) options.c_compiler ? (char*) options.c_compiler : " ",
          (char*) options.cc_compiler ? (char*) options.cc_compiler : " ",
          (char*) options.c_flags ? (char*) options.c_flags : " ");

  fprintf(fp,"\nINCPATH  = %s",
          (char*) options.includes ? (char*) options.includes : " ");

  fprintf(fp,"\
\nDEFD     = %s\
",
(char*) options.defines ? (char*) options.defines : " " );

fprintf(fp,"\
\nLINK     =  %s\
\nLIBS     =  %s\
\n\
\n####### Files\
",
         options.link.isNull() ? " " : (char*) options.link ,
         options.libs.isNull() ? " " : (char*) options.libs );
  /*
    DIRS
  */
//  char* p;
  fprintf(fp,"\nPRJ_DIR =\t%s\n", (char*) path);
  /*
    HEADERS
  */
  fprintf(fp,"\
\nHEADERS =");
  int t = 0;
  UnitListIterator li(units);
  for(;li && t < units.size();li++,t++)
    {
      VDKBUnit * unit = li.current();
      char* complete_name = new char[ strlen(unit->Header()) + 1];
      strcpy(complete_name,unit->Header());
      char* namepath = NULL;
      if(! access(complete_name,F_OK) )
        {
        namepath =  get_path(complete_name);
        if(namepath && !strcmp(namepath,(char*) path))
           fprintf(fp,"\t$(PRJ_DIR)/%s\\\n",get_shortfilename(complete_name));
        else
          fprintf(fp,"\t%s\\\n",complete_name);
        }
      if(namepath)
        delete[] namepath;
      delete[] complete_name;

      char* gui = unit->DfmHeader();
      complete_name = new char[ strlen(gui) + 1];
      strcpy(complete_name,gui);
      namepath = NULL;
      if(! access(gui,F_OK))
        {
        namepath =  get_path(complete_name);
        if(namepath && !strcmp(namepath,(char*) path))
           fprintf(fp,"\t$(PRJ_DIR)/%s\\\n",get_shortfilename(complete_name));
        else
          fprintf(fp,"\t%s\\\n",complete_name);
        }
      if(namepath)
        delete[] namepath;
      delete[] complete_name;
    }

  fprintf(fp,"\n\n");
  /*
    SOURCES
  */
  fprintf(fp,"\
\nSOURCES = ");
  t = 0;
  li.restart();
  for(;li && t < units.size();li++,t++)
    {
      if(li.current()->IsSource())
        {
           char* complete_name = new char[ strlen(li.current()->Source()) + 1];
           strcpy(complete_name,li.current()->Source());
           char* namepath =  get_path(complete_name);
           if(namepath && !strcmp(namepath,(char*) path))
             fprintf(fp,"\t$(PRJ_DIR)/%s\\\n",
                     get_shortfilename(complete_name));
           else
             fprintf(fp,"\t%s\\\n",li.current()->Source());
           if(namepath)
             delete[] namepath;
           delete[] complete_name;


           char* gui = li.current()->GuiSource();
           complete_name = new char[ strlen(gui) + 1];
           strcpy(complete_name,gui);
           namepath = NULL;
           if(! access(gui,F_OK))
             {
               namepath =  get_path(complete_name);
               if(namepath && !strcmp(namepath,(char*) path))
                 fprintf(fp,"\t$(PRJ_DIR)/%s\\\n",
                         get_shortfilename(complete_name));
               else
                 fprintf(fp,"\t%s\\\n",gui);
             }
           if(namepath)
             delete[] namepath;
           delete[] complete_name;
        }
    }
  fprintf(fp,"\n\n");
/*
    OBJECTS
  */
  fprintf(fp,"\
\nOBJECTS =");
  t = 0;
  li.restart();
  for(;li && t < units.size();li++,t++)
    if(li.current()->IsSource())
      {
        char* complete_name = new char[ strlen(li.current()->Name()) + 1];
        strcpy(complete_name,li.current()->Name());
        char* namepath =  get_path(complete_name);
        if(namepath && !strcmp(namepath,(char*) path))
          fprintf(fp,"\t$(PRJ_DIR)/%s.o\\\n",
                    get_shortfilename(complete_name));
        else
          fprintf(fp,"\t%s.o\\\n",li.current()->Name());

        if(namepath)
          delete[] namepath;
        delete[] complete_name;

        char* gui = li.current()->Name();
        complete_name = new char[ strlen(gui) + 1];
        strcpy(complete_name,gui);
        namepath = NULL;
        if(! access(li.current()->GuiSource(),F_OK))
          {
            namepath =  get_path(complete_name);
            if(namepath && !strcmp(namepath,(char*) path))
              fprintf(fp,"\t$(PRJ_DIR)/%s_gui.o\\\n",
                      get_shortfilename(complete_name));
            else
              fprintf(fp,"\t%s_gui.o\\\n",li.current()->Name());
          }
        if(namepath)
          delete[] namepath;
        delete[] complete_name;
      }
  fprintf(fp,"\n\n");
  /*
    OTHERS OBJECTS
  */
  fprintf(fp,"\nOTHERS_OBJECTS =");
  t = 0;
  li.restart();
  for(;li && t < units.size();li++,t++)
    {
      if(li.current()->Type() == object_unit ||
         li.current()->Type() == staticlib_unit )
        {
          char* complete_name = new char[ strlen(li.current()->Name()) + 1];
          strcpy(complete_name,li.current()->Name());
          char* namepath =  get_path(complete_name);
          if(namepath && !strcmp(namepath,(char*) path))
            fprintf(fp,"\t$(PRJ_DIR)/%s.%s\\\n",
                    get_shortfilename(complete_name),
                    ext_types[li.current()->Type()]);
          else
            fprintf(fp,"\t%s.%s\\\n",
                    li.current()->Name(),
                    ext_types[li.current()->Type()]);
          if(namepath)
            delete[] namepath;
          delete[] complete_name;
        }
    }
  fprintf(fp,"\n\n");
  /*
    TARGET
  */
  VDKString executable = /* path + "/" + */  name;
  VDKString builder_exe = "./";
  builder_exe+=name;
  char* p = get_extension ( (char*) executable);
  if(p) *p = '\0';
  fprintf(fp,"\nTARGET =\t%s", (char*) executable);
  p = get_extension ( (char*) builder_exe);
  if(p)  *p = '\0';
  /*
    program args
   */
  fprintf(fp,"\n\nPRG_ARGS =\t%s\n", (char*) options.runargs);
  /*
    RULES
  */
VDKString cwd;
char* pw = getcwd(NULL,MAXPATHLEN);
if(pw)
   {  cwd = pw; free(pw);  }
fprintf(fp,"\
\n####### Implicit rules\
\n.SUFFIXES: .%s .%s\
\n\
\n.%s.o:\
\n\t$(CC) -c   $(CFLAGS) $(INCPATH) $(DEFD) -o $@ $<\
\n\
\n.%s.o:\
\n\t$(C)  -c   $(CFLAGS) $(INCPATH) $(DEFD) -o $@ $<\
\n\
\n####### Build rules\
\n\
\nall: $(TARGET)\
\n\
\n$(TARGET): $(OBJECTS)\
\n\t$(LINK)  -o $(TARGET) $(OBJECTS) $(OTHERS_OBJECTS) $(LIBS)\
\n\
\n####### Running (used by builder)
\nrun: $(TARGET)\
\n\tcd %s\
\n\t%s $(PRG_ARGS)\
\n\tcd %s\
\n\
\nclean:\
\n\t-rm -f $(OBJECTS) $(TARGET)\
\n\t-rm -f *~ core\
\n\
\n####### Compile\
",
cc_ext,c_ext,cc_ext,c_ext,(char*) path, (char*) builder_exe,(char*) cwd);

char* dependFile;

fprintf(fp,"\n");
  li.restart();
  for(;li ;li++)
    {
      char* complete_name;
      char* namepath;
      fprintf(fp,"\n\n");
      if(li.current()->IsSource())
        {
          complete_name = new char[ strlen(li.current()->Name()) + 1];

          strcpy(complete_name,li.current()->Name());
          namepath =  get_path(complete_name);
          if(namepath && !strcmp(namepath,(char*) path))
            sprintf(buff,"$(PRJ_DIR)/%s.o : ",
                    get_shortfilename(complete_name));
          else
            sprintf(buff,"%s.o : ",li.current()->Name());
          fprintf(fp,buff);
          if(namepath)
            delete[] namepath;
          delete[] complete_name;

          complete_name = new char[ strlen(li.current()->Source()) + 1];
          strcpy(complete_name,li.current()->Source());
          // for WriteDependencies()
          dependFile = new char[ strlen(li.current()->Source()) + 1];
          strcpy(dependFile,li.current()->Source());
          namepath =  get_path(complete_name);
          if(namepath && !strcmp(namepath,(char*) path))
            sprintf(buff,"$(PRJ_DIR)/%s",get_shortfilename(complete_name));
          else
            sprintf(buff,"%s",li.current()->Source());
          fprintf(fp,buff);
          if(namepath)
            delete[] namepath;
          delete[] complete_name;
          
          if(! access(li.current()->Header(),F_OK))
            {
              complete_name = new char[ strlen(li.current()->Header()) + 1];
              strcpy(complete_name,li.current()->Header());
              namepath =  get_path(complete_name);
              if(namepath && !strcmp(namepath,(char*) path))
                ;
              else
                {
                  sprintf(buff,"\\\n\t%s", li.current()->Header());
                  fprintf(fp,buff);
                }
              // dependencies
              WriteDependencies(fp,dependFile);
              WriteDependencies(fp,complete_name);
              delete[] dependFile;
              if(namepath)
                delete[] namepath;
              delete[] complete_name;
            }

          if(! access(li.current()->Dfm(),F_OK))
            {
              complete_name = new char[ strlen(li.current()->Name()) + 1];
              strcpy(complete_name,li.current()->Name());
              namepath =  get_path(complete_name);
              if(namepath && !strcmp(namepath,(char*) path))
                {
                sprintf(buff,"\n\n$(PRJ_DIR)/%s_gui.o : ",
                        get_shortfilename(complete_name));
                fprintf(fp,buff);
                sprintf(buff,"$(PRJ_DIR)/%s_gui.%s",
                        get_shortfilename(complete_name),cc_ext);
                fprintf(fp,buff);
                sprintf(buff,"\\\n\t$(PRJ_DIR)/%s_gui.%s\n",
                        get_shortfilename(complete_name),h_ext);
                sprintf(buff,"\\\n\t$(PRJ_DIR)/%s.%s\\\n",
                        get_shortfilename(complete_name),h_ext);
                fprintf(fp,buff);
                }
              else
                {
                  sprintf(buff,"\n%s_gui.o : ", li.current()->Name());
                  fprintf(fp,buff);
                  sprintf(buff,"%s_gui.%s",li.current()->Name(),cc_ext);
                  fprintf(fp,buff);
                  sprintf(buff,"\\\n\t%s_gui.%s\n",
                          li.current()->Name(),h_ext);
                  sprintf(buff,"\\\n\t%s.%s\\\n",
                          li.current()->Name(),h_ext);
                  fprintf(fp,buff);
                }
              sprintf(buff,"%s_gui.%s",complete_name,cc_ext);
              WriteDependencies(fp,buff);             
              if(namepath)
                delete[] namepath;
              delete[] complete_name;
            }
        }
    }
return true;
}

void
WriteDependencies(FILE* fp, char* complete_name, char* avoid)
{
FILE* sfp = fopen(complete_name,"r");
char local[512];
char localbuff[512];
if(!sfp)
    return;
while(fgets(local,511,sfp))
  {
    if(strstr(local,"include"))
      {
        char tgt[256];
        if( (ExtractWord(local,tgt,"<",">") ||
             ExtractWord(local,tgt,"\"","\""))
            &&
            (!access(tgt,F_OK))
            )
          {
            if( (!avoid) || (avoid && strcmp(tgt,avoid)) )
              {
                sprintf(localbuff,"\\\n\t$(PRJ_DIR)/%s",tgt);
                fprintf(fp,localbuff);
                //
                WriteDependencies(fp,tgt);
              }
          }
      }
  }
fclose(sfp);
}

/*
*/
bool
VDKBProject::WriteSourcesForAutomake(FILE* fp)
{
  VDKString tmp;
  UnitListIterator li(units);
  for(;li;li++)
    {
      VDKBUnit * unit = li.current();
      tmp = get_shortfilename((char*) unit->Header());
      if(! access(unit->Header(),F_OK) )
        fprintf(fp,"\\\n\t%s",(char*) tmp);
      tmp = get_shortfilename((char*) unit->DfmHeader());
      if(! access(unit->DfmHeader(),F_OK))
        fprintf(fp,"\\\n\t%s",(char*) tmp);
    }
  li.restart();
  for(;li;li++)
    {
      if(li.current()->IsSource())
        {
          if(! access(li.current()->Source(),F_OK))
            {
              tmp = get_shortfilename((char*) li.current()->Source());
              fprintf(fp,"\\\n\t%s",(char*) tmp);
              char* gui = li.current()->GuiSource();
              tmp = get_shortfilename(li.current()->GuiSource());
              if(! access(gui,F_OK))
                fprintf(fp,"\\\n\t%s",(char*) tmp);
            }
        }
    }
  fprintf(fp,"\n\n");
  return true;
}
 楼主| 发表于 2003-11-5 14:25:04 | 显示全部楼层
修改了一下vdkb_templates.cc  make和make instll可以完成,但输入vdkbuilder时提示找不到这个命令,在make时出现以下信息,为什么会这样呢,哪位大侠有办法解决吗?

make[3]: Leaving directory `/tmp/vdkbuilder2-2.0.5/vdkbuilder/pixmaps'
make[3]: Entering directory `/tmp/vdkbuilder2-2.0.5/vdkbuilder'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/tmp/vdkbuilder2-2.0.5/vdkbuilder'
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/vdkbuilder'
Making all in data
make[2]: Entering directory `/tmp/vdkbuilder2-2.0.5/data'
Making all in res
make[3]: Entering directory `/tmp/vdkbuilder2-2.0.5/data/res'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/tmp/vdkbuilder2-2.0.5/data/res'
make[3]: Entering directory `/tmp/vdkbuilder2-2.0.5/data'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/tmp/vdkbuilder2-2.0.5/data'
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/data'
Making all in example
make[2]: Entering directory `/tmp/vdkbuilder2-2.0.5/example'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/example'
Making all in po
make[2]: Entering directory `/tmp/vdkbuilder2-2.0.5/po'
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/po'
Making all in intl
make[2]: Entering directory `/tmp/vdkbuilder2-2.0.5/intl'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/intl'
Making all in doc
make[2]: Entering directory `/tmp/vdkbuilder2-2.0.5/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5/doc'
make[2]: Entering directory `/tmp/vdkbuilder2-2.0.5'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/tmp/vdkbuilder2-2.0.5'
make[1]: Leaving directory `/tmp/vdkbuilder2-2.0.5'
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表