Skip to content

Can't build with NMAKE #4

Open
Open

Description

@Kazmirchuk

I'm following TIP477:

c:\playground\parse_args\win>nmake /nologo /f makefile.vc INSTALLDIR=c:\software\ActiveTcl_8.6.12
*** Using c:\software\ActiveTcl_8.6.12\lib\nmake\rules.vc

c:\playground\parse_args\win>echo 0,3,3,0  1>>versions.vc
*** Building against Tcl at 'c:\software\ActiveTcl_8.6.12\lib\..'
*** Intermediate directory will be 'c:\playground\parse_args\win\Release_AMD64_VC1932\parse_args_ThreadedDynamic'
*** Output directory will be 'c:\playground\parse_args\win\Release_AMD64_VC1932'
*** Installation, if selected, will be in 'c:\software\ActiveTcl_8.6.12\lib'
*** Suffix for binaries will be 't'
*** Compiler version 1932. Target AMD64, host AMD64.
  0 '@PACKAGE_VERSION@' => '0.3.3'
  1 '@PACKAGE_NAME@' => 'parse_args'
  2 '@PACKAGE_TCLNAME@' => 'parse_args'
  3 '@PKG_LIB_FILE@' => 'parse_args033t.dll'
  4 '@PKG_LIB_FILE8@' => 'parse_args033t.dll'
  5 '@PKG_LIB_FILE9@' => 'tcl9parse_args033t.dll'
NMAKE : fatal error U1073: don't know how to make 'c:\playground\parse_args\win\Release_AMD64_VC1932\parse_args_ThreadedDynamic\main.obj'
Stop.

c:\playground\parse_args\win>

It must be something trivial, but I can't see what's wrong.

I've just build rl_json using the same Tcl and compiler with (almost) no problems.

Activity

  1. cyanogilvie commented on Dec 9, 2022

    @cyanogilvie
    Member

    The relevant aspects of the build system should be essentially the same as rl_json, but I don't think as much effort (any?) has been put into building parse_args on windows. I have updated and unified some aspects of it (TIP445 handing) for the version 0.3.4.1 release so maybe it works now?

    Eyeballing it, win/makefile.vc in rl_json seems to have configuration for the correct build targets (rl_json.obj, etc), whereas parse_args doesn't look right (there is no main.c in this project). Taking a wild guess I'd say:

    PRJ_OBJS = $(TMP_DIR)\main.obj
    

    should be

    PRJ_OBJS = $(TMP_DIR)\parse_args.obj
    

    Patches welcome :)

  2. cyanogilvie commented on Dec 9, 2022

    @cyanogilvie
    Member

    Looking back, apnadkarni did get it building on windows, but back then the main file was called main.c I think, so hopefully changing the makefile.vc will just work.

    Not sure how to handle the TIP445 test in there though - it needs to be feature tested against the target Tcl version to see if the compatibility shims need to be defined. The code to do that is in aclocal.m4, but I don't know what the equivalent would be using the TIP477 approach.

  3. Kazmirchuk commented on Dec 14, 2022

    @Kazmirchuk
    Author

    at the moment I can't build parse_args even on Linux:

    ./generic/tip445.h: In function ‘Tcl_FreeInternalRep’:
    ./generic/tip445.h:42:36: error: ‘Tcl_ObjType {aka const struct Tcl_ObjType}’ has no member named ‘freeInternalRepProc’; did you mean ‘freeIntRepProc’?

    My tcl.h:

    $ rpm -qf /usr/include/tcl.h
    tcl-devel-8.6.12-150300.14.3.1.x86_64
  4. cyanogilvie commented on Dec 14, 2022

    @cyanogilvie
    Member
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions